summaryrefslogtreecommitdiff
path: root/src/command_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/command_manager.cc')
-rw-r--r--src/command_manager.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc
index b1722f3f..cbe2a1cb 100644
--- a/src/command_manager.cc
+++ b/src/command_manager.cc
@@ -27,17 +27,26 @@ static TokenList split(const std::string& line)
TokenList result;
size_t pos = 0;
- while (pos != line.length())
+ while (pos < line.length())
{
while(line[pos] == ' ' and pos != line.length())
++pos;
+ char delimiter = ' ';
+ if (line[pos] == '"' or line[pos] == '\'')
+ {
+ delimiter = line[pos];
+ ++pos;
+ }
+
size_t token_start = pos;
- while((line[pos] != ' ' or line[pos-1] == '\\') and pos != line.length())
+ while((line[pos] != delimiter or line[pos-1] == '\\') and pos != line.length())
++pos;
result.push_back(std::make_pair(token_start, pos));
+
+ ++pos;
}
return result;
}