commit ccdec2a329794356fdf559560261e5626a7e2098
parent dbda5d35eb448a7c2f846c3ade8c9659be9928ef
Author: Ian Fan <ianfan0@gmail.com>
Date: Fri, 21 Sep 2018 14:59:01 +0100
swaybar: reset tokener if json is incomplete
If the tokener parses incomplete json, it sets its error value to
json_tokener_continue. This means that extra json should be provided,
but the code was providing the entire object again. In the interest of
simplicity, the tokener is reset so that buffer_pos always points to the
start of the current object.
Diffstat:
1 file changed, 1 insertion(+), 0 deletions(-)
diff --git a/swaybar/i3bar.c b/swaybar/i3bar.c
@@ -199,6 +199,7 @@ bool i3bar_handle_readable(struct status_line *status) {
}
buffer_pos = status->buffer_index = 0;
} else if (json_tokener_get_error(status->tokener) == json_tokener_continue) {
+ json_tokener_reset(status->tokener);
if (status->buffer_index < status->buffer_size) {
// move the object to the start of the buffer
status->buffer_index -= buffer_pos;