if (path) {
i = gtk_tree_path_get_indices(path);
-
- if (i)
+
+ if (i) {
printf("row selected: %d\n", *i);
- task = tasks[*i];
+ task = tasks[*i];
+ } else {
+ task = NULL;
+ }
gtk_tree_path_free(path);
-
- return task;
+ } else {
+ task = NULL;
}
printf("get_selected_task returns NULL\n");
- return NULL;
+ return task;
}
static void refresh()
task = (*tasks_cur);
gtk_list_store_append(GTK_LIST_STORE(model), &iter);
-
+
if (task->project)
gtk_list_store_set(GTK_LIST_STORE(model),
&iter,
task = get_selected_task(GTK_TREE_VIEW(w_treeview));
- printf("tasksave_clicked_cbk %d\n", task->id);
+ printf("tasksave_clicked_cbk %d\n", task->id);
if (task->note) {
buf = gtk_text_view_get_buffer(w_note);
+ strlen("\"")
+ 1);
sprintf(opts, " %s modify \"%s\"", task->uuid, txt);
-
+
task_exec(opts);
free(txt);
-
+
refresh();
return FALSE;
PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "gtask.glade",
NULL);
window = GTK_WIDGET(gtk_builder_get_object(builder, "window"));
- printf("%p\n", window);
w_treeview = GTK_TREE_VIEW(gtk_builder_get_object(builder, "treeview"));
refresh();
g_signal_connect(w_treeview,
- "cursor-changed", (GCallback)cursor_changed_cbk, tasks);
+ "cursor-changed", (GCallback)cursor_changed_cbk,
+ tasks);
btn = GTK_WIDGET(gtk_builder_get_object(builder, "tasksave"));
g_signal_connect(btn,
#include <stdlib.h>
#include <string.h>
-#include <json/json.h>
-
-#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);
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';
return str;
}
+#include <json/json.h>
+
+#include "tw.h"
+
static struct json_object *task_exec_json(char *opts)
{
struct json_object *o;
result = malloc(2*strlen(txt)+1);
c = result;
- while(*txt) {
- switch(*txt) {
+ while (*txt) {
+ switch (*txt) {
case '"':
*c = '\\'; c++;
*c = '"';