X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Ftw.c;h=e2a7bca3810d23d8c00a49339cd376bc76de3774;hb=06bed34f0e4a8903904cd26d74b237c8984fbfaa;hp=366a0dc2f3377072a2959e0ce6f961b784689a3f;hpb=9dbd884b4c456274566688d839178ee93d0d3dba;p=ptask.git diff --git a/src/tw.c b/src/tw.c index 366a0dc..e2a7bca 100644 --- a/src/tw.c +++ b/src/tw.c @@ -21,18 +21,14 @@ #include #include -#include - -#include "tw.h" char *task_exec(char *opts) { FILE *f; - int ret, s; + int ret; + size_t s; char *str, *tmp, *cmd, buf[1024]; - str = NULL; - cmd = malloc(strlen("task rc.json.array=on ") + strlen(opts) + 1); strcpy(cmd, "task rc.json.array=on "); strcat(cmd, opts); @@ -43,13 +39,13 @@ char *task_exec(char *opts) if (!f) { perror("popen"); + str = NULL; goto exit_free; } - str = malloc(1); - str[0] = '\0'; + str = strdup(""); while ((s = fread(buf, 1, 1024, f))) { - tmp = malloc(strlen(str) + s + 1); + tmp = malloc(strlen(str) + s + (size_t)1); memcpy(tmp, str, strlen(str)); memcpy(tmp + strlen(str), buf, s); tmp[strlen(str) + s] = '\0'; @@ -70,6 +66,10 @@ char *task_exec(char *opts) return str; } +#include + +#include "tw.h" + static struct json_object *task_exec_json(char *opts) { struct json_object *o; @@ -143,8 +143,8 @@ char *escape(const char *txt) result = malloc(2*strlen(txt)+1); c = result; - while(*txt) { - switch(*txt) { + while (*txt) { + switch (*txt) { case '"': *c = '\\'; c++; *c = '"';