void Console::exec(std::string cmd) { StrVec args; if(cmd.find(' ') != std::string::npos) { args.push_back(cmd.substr(cmd.find(' ') + 1, cmd.size() - cmd.find(' '))); cmd = cmd.substr(0, cmd.find(' ')); while(args.back().find(' ') != std::string::npos) { args.push_back(args.back().substr(args.back().find(' ') + 1 , args.size() - args.back().find(' '))); args.at(args.size() - 1) = args.at(args.size() - 1).substr(0, args.at(args.size() - 1).find(' ') - 1); } } if(commands.find(cmd) == commands.end()) { addString("Command '" + cmd + "' not found"); return; } if(!commands[cmd].exec(args)) addString("Wrong number of arguments for command '" + cmd + "'."); }