Bugfix: check symbol for NULL in binding json dump

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
This commit is contained in:
Tony Crisci 2014-10-05 14:50:30 -04:00 committed by Michael Stapelberg
parent 3e841ac5b6
commit 6ba7728136
2 changed files with 6 additions and 3 deletions

View File

@ -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.

View File

@ -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);