diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/application.cc | 9 | ||||
-rw-r--r-- | src/core/commandbuffer.cc | 10 | ||||
-rw-r--r-- | src/core/commandbuffer.h | 1 | ||||
-rw-r--r-- | src/core/gameserver.cc | 4 |
4 files changed, 12 insertions, 12 deletions
diff --git a/src/core/application.cc b/src/core/application.cc index f21dcad..15179c9 100644 --- a/src/core/application.cc +++ b/src/core/application.cc @@ -371,11 +371,8 @@ void Application::load_config() char line[MAXCMDSIZE]; while (ifs.getline(line, MAXCMDSIZE - 1)) { if (line[0] && line[0] != '#' && line[0] != ';') - cmd() << line << '\n'; + CommandBuffer::exec(line); } - - // execute commands in the buffer - CommandBuffer::exec(); } void Application::load_autoexec() @@ -409,10 +406,8 @@ void Application::load_autoexec() char line[MAXCMDSIZE]; while (ifs.getline(line, MAXCMDSIZE - 1)) { if (line[0] && line[0] != '#' && line[0] != ';') - cmd() << line << '\n'; + CommandBuffer::exec(line); } - - CommandBuffer::exec(); } } diff --git a/src/core/commandbuffer.cc b/src/core/commandbuffer.cc index 40971cc..58fe6be 100644 --- a/src/core/commandbuffer.cc +++ b/src/core/commandbuffer.cc @@ -316,7 +316,15 @@ void CommandBuffer::exec(std::string const &cmdline) if (!cmdline.size()) return; - std::istringstream cmdstream(cmdline); + std::string cleaned; + + for (size_t i = 0; i < cmdline.size(); i++) { + if (cmdline[i] != '"') { + cleaned += cmdline[i]; + } + } + + std::istringstream cmdstream(cleaned); std::string command; if (!(cmdstream >> command)) diff --git a/src/core/commandbuffer.h b/src/core/commandbuffer.h index c8024ba..5ecfeee 100644 --- a/src/core/commandbuffer.h +++ b/src/core/commandbuffer.h @@ -43,7 +43,6 @@ public: /// the global command buffer static std::stringstream cmdbuf; -private: static void exec(std::string const & cmdline); }; diff --git a/src/core/gameserver.cc b/src/core/gameserver.cc index e07774d..cb1e66d 100644 --- a/src/core/gameserver.cc +++ b/src/core/gameserver.cc @@ -684,11 +684,9 @@ void GameServer::load_config() char line[MAXCMDSIZE]; while (ifs.getline(line, MAXCMDSIZE - 1)) { if (line[0] && line[0] != '#' && line[0] != ';') - cmd() << line << '\n'; + CommandBuffer::exec(line); } - // execute commands in the buffer - CommandBuffer::exec(); } } |