From: Joshua Wise Date: Tue, 22 Mar 2011 07:40:30 +0000 (-0400) Subject: Add support for due dates. X-Git-Url: http://git.joshuawise.com/tdl.git/commitdiff_plain/0e9ac9f237eb3e898e83d2d34f4a8c86a8af5847 Add support for due dates. --- diff --git a/add.c b/add.c index a9b2df7..ffe5576 100644 --- a/add.c +++ b/add.c @@ -23,7 +23,7 @@ #include #include "tdl.h" -static int add_new_node(char *parent_path, int set_done, int set_priority, enum Priority new_priority, time_t insert_time, char *child_text)/*{{{*/ +static int add_new_node(char *parent_path, int set_done, int set_priority, enum Priority new_priority, time_t insert_time, time_t required_by, char *child_text)/*{{{*/ { struct node *parent = NULL; struct node *nn; @@ -48,6 +48,7 @@ static int add_new_node(char *parent_path, int set_done, int set_priority, enum if (set_done) { nn->done = (long) insert_time; } + nn->required_by = required_by; nn->priority = (parent && !set_priority) ? parent->priority : new_priority; @@ -114,7 +115,7 @@ static int try_add_interactive(char *parent_path, int set_done)/*{{{*/ if (error < 0) return error; if (!blank) { time(&insert_time); - status = add_new_node(parent_path, set_done, 0, PRI_NORMAL, insert_time, text); + status = add_new_node(parent_path, set_done, 0, PRI_NORMAL, insert_time, 0, text); free(text); if (status < 0) return status; } @@ -161,8 +162,10 @@ static int process_add_internal(char **x, int set_done)/*{{{*/ int set_priority = 0; char *x0; int error; + time_t required_by; insert_time = time(NULL); + required_by = 0; if ((argc > 1) && (x[0][0] == '@')) { int error; @@ -175,6 +178,14 @@ static int process_add_internal(char **x, int set_done)/*{{{*/ x++; } + if ((argc > 1) && (x[0][0] == '+')) { + int error; + required_by = parse_date(x[0]+1, insert_time, 1, &error); + if (error < 0) return error; + argc--; + x++; + } + switch (argc) { case 0: return try_add_interactive(NULL, set_done); @@ -206,12 +217,12 @@ static int process_add_internal(char **x, int set_done)/*{{{*/ break; default: - fprintf(stderr, "Usage : add [@] [] [] \n"); + fprintf(stderr, "Usage : add [@] [+] [] [] \n"); return -1; break; } - return add_new_node(parent_path, set_done, set_priority, priority, insert_time, text); + return add_new_node(parent_path, set_done, set_priority, priority, insert_time, required_by, text); return 0; }