]> git.sur5r.net Git - i3/i3/blobdiff - src/ipc.c
parser: return a proper JSON reply on parse errors
[i3/i3] / src / ipc.c
index 7c0a0f375f190d7aa014ad20342a942992e915f5..eed63bd4e0072820095561d5b044b1feb19b9f81 100644 (file)
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -115,13 +115,13 @@ IPC_HANDLER(command) {
         char *command = scalloc(message_size + 1);
         strncpy(command, (const char*)message, message_size);
         LOG("IPC: received: *%s*\n", command);
-        parse_cmd((const char*)command);
+        const char *reply = parse_cmd((const char*)command);
         tree_render();
         free(command);
 
-        /* For now, every command gets a positive acknowledge
-         * (will change with the new command parser) */
-        const char *reply = "{\"success\":true}";
+        /* If no reply was provided, we just use the default success message */
+        if (reply == NULL)
+                reply = "{\"success\":true}";
         ipc_send_message(fd, (const unsigned char*)reply,
                          I3_IPC_REPLY_TYPE_COMMAND, strlen(reply));
 }
@@ -146,6 +146,9 @@ void dump_node(yajl_gen gen, struct Con *con, bool inplace_restart) {
         ystr("layout");
         y(integer, con->layout);
 
+        ystr("border");
+        y(integer, con->border_style);
+
         ystr("rect");
         y(map_open);
         ystr("x");
@@ -193,13 +196,13 @@ void dump_node(yajl_gen gen, struct Con *con, bool inplace_restart) {
 
         if (inplace_restart) {
                 if (con->window != NULL) {
-                ystr("swallows");
-                y(array_open);
-                y(map_open);
-                ystr("id");
-                y(integer, con->window->id);
-                y(map_close);
-                y(array_close);
+                       ystr("swallows");
+                       y(array_open);
+                       y(map_open);
+                       ystr("id");
+                       y(integer, con->window->id);
+                       y(map_close);
+                       y(array_close);
                 }
         }