summaryrefslogtreecommitdiffstats
path: root/tasklst.h
diff options
context:
space:
mode:
authorAriadna Vigo <arivigodr@gmail.com>2020-08-08 20:22:28 +0200
committerAriadna Vigo <arivigodr@gmail.com>2020-08-08 20:46:19 +0200
commita72a5c9685b0c45d8b45c94bb4ec069ecc22f9a5 (patch)
tree141f659acd6ee2adca8f9ef6d6f9cf0535223d24 /tasklst.h
parent95704a9cf40e456d882cf369f63851f4d29efb61 (diff)
Number of tasks is no longer limited
Diffstat (limited to 'tasklst.h')
-rw-r--r--tasklst.h32
1 files changed, 19 insertions, 13 deletions
diff --git a/tasklst.h b/tasklst.h
index c4be946..ee3b56b 100644
--- a/tasklst.h
+++ b/tasklst.h
@@ -1,27 +1,33 @@
/* See LICENSE file for copyright and license details. */
-#define TASK_LST_MAX_NUM 11
#define TASK_LST_DESC_MAX_SIZE 64
enum {
- TASK_VOID,
TASK_TODO,
TASK_DONE
};
+typedef struct TASK_ Task;
+struct TASK_ {
+ int status;
+ Task *next;
+ char tdesc[TASK_LST_DESC_MAX_SIZE];
+};
+
typedef struct {
int64_t expiry;
- int status[TASK_LST_MAX_NUM];
- char tdesc[TASK_LST_MAX_NUM][TASK_LST_DESC_MAX_SIZE];
+ Task *first;
} TaskLst;
-void tasklst_init(TaskLst *tasks);
-void tasklst_set_expiration(TaskLst *tasks, int64_t delta);
-int tasklst_expired(TaskLst tasks);
-int tasklst_tasks_total(TaskLst tasks);
-int tasklst_tasks_todo(TaskLst tasks);
-int tasklst_tasks_done(TaskLst tasks);
-int tasklst_add_task(TaskLst *tasks, int status, const char *str);
-int tasklst_read_from_file(TaskLst *tasks, FILE *fp);
-void tasklst_write_to_file(FILE *fp, TaskLst tasks);
+void task_lst_init(TaskLst *list);
+void task_lst_cleanup(TaskLst *list);
+int task_lst_get_size(TaskLst list);
+void task_lst_set_expiration(TaskLst *list, int64_t delta);
+int task_lst_expired(TaskLst list);
+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_read_from_file(TaskLst *list, FILE *fp);
+void task_lst_write_to_file(FILE *fp, TaskLst list);