summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Suhr Christensen <jsc@umbraculum.org>2012-06-14 11:55:15 +0200
committerJonas Suhr Christensen <jsc@umbraculum.org>2012-06-14 11:55:15 +0200
commiteb8b23218f73f7ac92ea0fa3bcef71d40c355bf0 (patch)
treee9f4dcb0450c2f268313b848dd8168df871cc6e1
parent3f8addaa8d545eda8f8030d1e44d90137f24b8a0 (diff)
Fixed quoting.
-rw-r--r--src/messageparser.cc34
-rw-r--r--src/muniacli.cc8
2 files changed, 22 insertions, 20 deletions
diff --git a/src/messageparser.cc b/src/messageparser.cc
index ea5e615..5714c88 100644
--- a/src/messageparser.cc
+++ b/src/messageparser.cc
@@ -49,37 +49,35 @@ inline static void parse_into_msg_tokens(std::string& data,
if(prev_ch != '\\')
inside_quote = !inside_quote;
else {
-// printf("Appending %c\n", ch);
token += ch;
}
break;
case ' ':
if(inside_quote) {
-// printf("Appending %c\n", ch);
+ //printf("Appending %c\n", ch);
token += ch;
- break;
}
- if(token.empty()) continue; // skip multiple white spaces and pre white space
+ else {
+ if(token.empty()) continue; // skip multiple white spaces and pre white space
// printf("Adding token %s\n", token.c_str());
- tokenVector.push_back(token);
- token.clear();
+ tokenVector.push_back(token);
+ token.clear();
+ }
break;
case ';':
if(inside_quote) {
-// printf("Appending %c\n", ch);
token += ch;
- break;
- }
-// printf("Adding msg...\n");
- if(!token.empty()) {
- tokenVector.push_back(token);
}
- msgTokensList.push_back(tokenVector);
- tokenVector.clear();
- token.clear();
+ else {
+ if(!token.empty()) {
+ tokenVector.push_back(token);
+ }
+ msgTokensList.push_back(tokenVector);
+ tokenVector.clear();
+ token.clear();
+ }
break;
default:
-// printf("Appending %c\n", ch);
token += ch;
break;
}
@@ -123,7 +121,7 @@ inline static void create_msg_list(MsgTokensList& msgTokensList,
else if(t[origin] == "create") m.cmd = cmd::create;
else if(t[origin] == "remove") m.cmd = cmd::remove;
else if(t[origin] == "move") m.cmd = cmd::move;
- else if(t[origin] == "update") m.cmd = cmd::update;
+ else if(t[origin] == "update") m.cmd = cmd::update;
else m.cmd = cmd::error;
// printf("Number of tokens %d\n", t.size());
@@ -131,7 +129,7 @@ inline static void create_msg_list(MsgTokensList& msgTokensList,
switch(m.cmd) {
case cmd::observe: {
if(t.size() != origin+1+1) {
- printf("W1: rong number of parameters\n");
+ printf("Wrong number of parameters\n");
continue;
}
m.observe.id = atoi(t[origin+1].c_str());
diff --git a/src/muniacli.cc b/src/muniacli.cc
index 14f543e..b6e5bbf 100644
--- a/src/muniacli.cc
+++ b/src/muniacli.cc
@@ -340,21 +340,25 @@ int main(int argc, char** argv)
switch(cmd) {
case CREATE:
msgs = "create " + taskbyid + ";";
+ msgs += "observe " + taskbyid + ";";
break;
case LIST:
- msgs = "observe " + taskbyid; //+
+ msgs = "observe " + taskbyid + ";"; //+
// "; unobserve " + task + ";";
break;
case REMOVE:
msgs = "remove " + taskbyid + ";";
break;
case UPDATE:
- msgs = "update " + taskbyid + " " + cmd_opts;
+ msgs = "update " + taskbyid + " \"" + cmd_opts + "\"; ";
+ msgs += "observe " + taskbyid + ";";
break;
case DEFAULT:
break;
}
+// printf("msgs: %s\n", msgs.c_str());
+
/*
if(!interactive && argc - optionscount < 3) {
fprintf(stderr, "%s", USAGE);