]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: check symbol for NULL in binding json dump
authorTony Crisci <tony@dubstepdish.com>
Sun, 5 Oct 2014 18:50:30 +0000 (14:50 -0400)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 5 Oct 2014 19:06:11 +0000 (21:06 +0200)
When dumping a binding, as is done during the binding event, check
symbol for NULL. If it is, dump json null. This prevents a crash when
running a binding that was configured with bindcode.

fixes #1379

docs/ipc
src/ipc.c

index c95bcd57a4185070a195d084045099d92611b719..3cf66368ece51361d09d7a010478e28f1dc8a45e 100644 (file)
--- a/docs/ipc
+++ b/docs/ipc
@@ -769,9 +769,9 @@ input_code (integer)::
        If the binding was configured with +bindcode+, this will be the key code
        that was given for the binding. If the binding is a mouse binding, it will be
        the number of the mouse button that was pressed. Otherwise it will be 0.
-symbol (string)::
+symbol (string or null)::
        If this is a keyboard binding that was configured with +bindsym+, this
-       field will contain the given symbol.
+       field will contain the given symbol. Otherwise it will be +null+.
 input_type (string)::
        This will be +"keyboard"+ or +"mouse"+ depending on whether or not this was
        a keyboard or a mouse binding.
index e93fe5675ec08bede98744173b74eb8c0b0f230d..4c39a04cc023969bdd0f6130877c7f924dc9068f 100644 (file)
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -160,7 +160,10 @@ static void dump_binding(yajl_gen gen, Binding *bind) {
     ystr((const char*)(bind->input_type == B_KEYBOARD ? "keyboard" : "mouse"));
 
     ystr("symbol");
-    ystr(bind->symbol);
+    if (bind->symbol == NULL)
+        y(null);
+    else
+        ystr(bind->symbol);
 
     ystr("command");
     ystr(bind->command);