summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tasklst.c13
-rw-r--r--tasklst.h1
2 files changed, 14 insertions, 0 deletions
diff --git a/tasklst.c b/tasklst.c
index d0916f1..83ffabf 100644
--- a/tasklst.c
+++ b/tasklst.c
@@ -125,6 +125,19 @@ task_lst_add_task(TaskLst *list, int status, const char *str)
newtask->next = NULL;
return 0;
+}
+
+int
+task_lst_edit_task(TaskLst *list, int i, const char *newstr)
+{
+ Task *edit;
+
+ if ((edit = task_lst_get_task(*list, i)) == NULL)
+ return -1;
+
+ strncpy(edit->tdesc, newstr, TASK_LST_DESC_MAX_SIZE);
+
+ return 0;
}
int
diff --git a/tasklst.h b/tasklst.h
index 317454a..b57099b 100644
--- a/tasklst.h
+++ b/tasklst.h
@@ -28,6 +28,7 @@ int task_lst_count_todo(TaskLst list);
int task_lst_count_done(TaskLst list);
Task *task_lst_get_task(TaskLst list, int i);
int task_lst_add_task(TaskLst *list, int status, const char *str);
+int task_lst_edit_task(TaskLst *list, int i, const char *newstr);
int task_lst_del_task(TaskLst *list, int i);
int task_lst_read_from_file(TaskLst *list, FILE *fp);
void task_lst_write_to_file(FILE *fp, TaskLst list);