/* core/commandbuffer.cc This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #include "core/commandbuffer.h" #include "sys/sys.h" // C++ headers #include #include namespace core { std::stringstream cmd(std::stringstream::in | std::stringstream::out); namespace commandbuffer { void exec(const char *text) { std::stringstream cmdstream(text); std::string cmdname; cmdstream >> cmdname; Func f = func_find(cmdname); if (f) { f(cmdstream); return; } con_print << "unknown command '" << cmdname << "'" << std::endl; } void execute() { if (core::cmd.eof()) return; char line[MAXCMDSIZE]; while(core::cmd.getline(line, MAXCMDSIZE-1)) { exec(line); } cmd.clear(); } void clear() { char line[MAXCMDSIZE]; while(core::cmd.getline(line, MAXCMDSIZE-1)); } } }