From 2182933986afd7e17cf9072d8f2e3333fa110cd4 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 8 Nov 2008 10:59:47 +0000 Subject: docking, join menu --- src/core/commandbuffer.cc | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src/core') diff --git a/src/core/commandbuffer.cc b/src/core/commandbuffer.cc index 71ad37f..4addd10 100644 --- a/src/core/commandbuffer.cc +++ b/src/core/commandbuffer.cc @@ -307,11 +307,26 @@ void CommandBuffer::exec() if (cmdbuf.eof()) return; - char line[MAXCMDSIZE]; - - while (core::cmd().getline(line, MAXCMDSIZE-1)) { - exec(std::string(line)); + std::string line; + char c; + bool quote = false; + + while ( core::cmd().read(&c , 1) && c) { + if ( c =='\n') { + exec(line); + line.clear(); + } else if (c == '"') { + quote = !quote; + } else if ((c == ';') && !quote) { + exec(line); + line.clear(); + } else { + line +=c; + } } + + if (line.size()) + exec(line); cmdbuf.clear(); } -- cgit v1.2.3