#include <yajl/yajl_parse.h>
#include <yajl/yajl_version.h>
#include <yajl/yajl_gen.h>
+#include <paths.h>
#include "common.h"
void child_write_output(void) {
if (child.click_events) {
const unsigned char *output;
+#if YAJL_MAJOR < 2
+ unsigned int size;
+#else
size_t size;
+#endif
yajl_gen_get_buf(gen, &output, &size);
write(child_stdin, output, size);
write(child_stdin, "\n", 1);
yajl_parser_config parse_conf = { 0, 0 };
parser = yajl_alloc(&callbacks, &parse_conf, NULL, (void*)&parser_context);
+
+ gen = yajl_gen_alloc(NULL, NULL);
#else
parser = yajl_alloc(&callbacks, NULL, &parser_context);
-#endif
gen = yajl_gen_alloc(NULL);
+#endif
if (command != NULL) {
int pipe_in[2]; /* pipe we read from */
dup2(pipe_in[1], STDOUT_FILENO);
dup2(pipe_out[0], STDIN_FILENO);
- static const char *shell = NULL;
-
- if ((shell = getenv("SHELL")) == NULL)
- shell = "/bin/sh";
-
- execl(shell, shell, "-c", command, (char*) NULL);
+ execl(_PATH_BSHELL, _PATH_BSHELL, "-c", command, (char*) NULL);
return;
default:
/* Parent-process. Reroute streams */