}
yajl_callbacks reply_callbacks = {
- NULL,
- &reply_boolean_cb,
- NULL,
- NULL,
- NULL,
- &reply_string_cb,
- &reply_start_map_cb,
- &reply_map_key_cb,
- &reply_end_map_cb,
- NULL,
- NULL
+ .yajl_boolean = reply_boolean_cb,
+ .yajl_string = reply_string_cb,
+ .yajl_start_map = reply_start_map_cb,
+ .yajl_map_key = reply_map_key_cb,
+ .yajl_end_map = reply_end_map_cb,
};
int main(int argc, char *argv[]) {
ev_child *child_sig;
/* JSON parser for stdin */
-yajl_callbacks callbacks;
yajl_handle parser;
/* JSON generator for stdout */
return;
/* Allocate a yajl parser which will be used to parse stdin. */
- memset(&callbacks, '\0', sizeof(yajl_callbacks));
- callbacks.yajl_map_key = stdin_map_key;
- callbacks.yajl_boolean = stdin_boolean;
- callbacks.yajl_string = stdin_string;
- callbacks.yajl_integer = stdin_integer;
- callbacks.yajl_start_array = stdin_start_array;
- callbacks.yajl_end_array = stdin_end_array;
- callbacks.yajl_start_map = stdin_start_map;
- callbacks.yajl_end_map = stdin_end_map;
+ yajl_callbacks callbacks = {
+ .yajl_boolean = stdin_boolean,
+ .yajl_integer = stdin_integer,
+ .yajl_string = stdin_string,
+ .yajl_start_map = stdin_start_map,
+ .yajl_map_key = stdin_map_key,
+ .yajl_end_map = stdin_end_map,
+ .yajl_start_array = stdin_start_array,
+ .yajl_end_array = stdin_end_array,
+ };
#if YAJL_MAJOR < 2
yajl_parser_config parse_conf = { 0, 0 };
/* A datastructure to pass all these callbacks to yajl */
static yajl_callbacks outputs_callbacks = {
- &config_null_cb,
- &config_boolean_cb,
- NULL,
- NULL,
- NULL,
- &config_string_cb,
- NULL,
- &config_map_key_cb,
- NULL,
- NULL,
- NULL
+ .yajl_null = config_null_cb,
+ .yajl_boolean = config_boolean_cb,
+ .yajl_string = config_string_cb,
+ .yajl_map_key = config_map_key_cb,
};
/*
/* A datastructure to pass all these callbacks to yajl */
yajl_callbacks mode_callbacks = {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- &mode_string_cb,
- NULL,
- &mode_map_key_cb,
- NULL,
- NULL,
- NULL
+ .yajl_string = mode_string_cb,
+ .yajl_map_key = mode_map_key_cb,
};
/*
/* A datastructure to pass all these callbacks to yajl */
yajl_callbacks outputs_callbacks = {
- &outputs_null_cb,
- &outputs_boolean_cb,
- &outputs_integer_cb,
- NULL,
- NULL,
- &outputs_string_cb,
- &outputs_start_map_cb,
- &outputs_map_key_cb,
- &outputs_end_map_cb,
- NULL,
- NULL
+ .yajl_null = outputs_null_cb,
+ .yajl_boolean = outputs_boolean_cb,
+ .yajl_integer = outputs_integer_cb,
+ .yajl_string = outputs_string_cb,
+ .yajl_start_map = outputs_start_map_cb,
+ .yajl_map_key = outputs_map_key_cb,
+ .yajl_end_map = outputs_end_map_cb,
};
/*
return 1;
}
-static yajl_callbacks version_callbacks = {
- NULL, /* null */
- &header_boolean, /* boolean */
- &header_integer,
- NULL, /* double */
- NULL, /* number */
- NULL, /* string */
- NULL, /* start_map */
- &header_map_key,
- NULL, /* end_map */
- NULL, /* start_array */
- NULL /* end_array */
-};
-
static void child_init(i3bar_child *child) {
child->version = 0;
child->stop_signal = SIGSTOP;
*
*/
void parse_json_header(i3bar_child *child, const unsigned char *buffer, int length, unsigned int *consumed) {
+ static yajl_callbacks version_callbacks = {
+ .yajl_boolean = header_boolean,
+ .yajl_integer = header_integer,
+ .yajl_map_key = &header_map_key,
+ };
+
child_init(child);
current_key = NO_KEY;
/* A datastructure to pass all these callbacks to yajl */
yajl_callbacks workspaces_callbacks = {
- NULL,
- &workspaces_boolean_cb,
- &workspaces_integer_cb,
- NULL,
- NULL,
- &workspaces_string_cb,
- &workspaces_start_map_cb,
- &workspaces_map_key_cb,
- NULL,
- NULL,
- NULL
+ .yajl_boolean = workspaces_boolean_cb,
+ .yajl_integer = workspaces_integer_cb,
+ .yajl_string = workspaces_string_cb,
+ .yajl_start_map = workspaces_start_map_cb,
+ .yajl_map_key = workspaces_map_key_cb,
};
/*
}
static yajl_callbacks version_callbacks = {
- NULL, /* null */
- NULL, /* boolean */
- NULL, /* integer */
- NULL, /* double */
- NULL, /* number */
- &version_string,
- NULL, /* start_map */
- &version_map_key,
- NULL, /* end_map */
- NULL, /* start_array */
- NULL /* end_array */
+ .yajl_string = version_string,
+ .yajl_map_key = version_map_key,
};
/*
*/
IPC_HANDLER(subscribe) {
yajl_handle p;
- yajl_callbacks callbacks;
yajl_status stat;
ipc_client *current, *client = NULL;
}
/* Setup the JSON parser */
- memset(&callbacks, 0, sizeof(yajl_callbacks));
- callbacks.yajl_string = add_subscription;
+ yajl_callbacks callbacks = {
+ .yajl_string = add_subscription,
+ };
p = yalloc(&callbacks, (void*)client);
stat = yajl_parse(p, (const unsigned char*)message, message_size);
}
static yajl_callbacks command_error_callbacks = {
- NULL,
- &json_boolean,
- NULL,
- NULL,
- NULL,
- NULL,
- &json_start_map,
- &json_map_key,
- &json_end_map,
- NULL,
- NULL
+ .yajl_boolean = json_boolean,
+ .yajl_start_map = json_start_map,
+ .yajl_map_key = json_map_key,
+ .yajl_end_map = json_end_map,
};
/*
LOG("read %d bytes\n", n);
yajl_gen g;
yajl_handle hand;
- yajl_callbacks callbacks;
- memset(&callbacks, '\0', sizeof(yajl_callbacks));
- callbacks.yajl_start_map = json_start_map;
- callbacks.yajl_end_map = json_end_map;
- callbacks.yajl_end_array = json_end_array;
- callbacks.yajl_string = json_string;
- callbacks.yajl_map_key = json_key;
- callbacks.yajl_integer = json_int;
- callbacks.yajl_double = json_double;
- callbacks.yajl_boolean = json_bool;
+ yajl_callbacks callbacks = {
+ .yajl_boolean = json_bool,
+ .yajl_integer = json_int,
+ .yajl_double = json_double,
+ .yajl_string = json_string,
+ .yajl_start_map = json_start_map,
+ .yajl_map_key = json_key,
+ .yajl_end_map = json_end_map,
+ .yajl_end_array = json_end_array,
+ };
#if YAJL_MAJOR >= 2
g = yajl_gen_alloc(NULL);
hand = yajl_alloc(&callbacks, NULL, (void*)g);