From 30fd7b062a7a8c9eb633a83cdef5dfe8e423df15 Mon Sep 17 00:00:00 2001 From: Ariadna Vigo Date: Fri, 18 Dec 2020 21:33:51 +0100 Subject: Reordered modes code alphabetically --- cras.c | 156 +++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 79 insertions(+), 77 deletions(-) diff --git a/cras.c b/cras.c index 9098604..82cfe36 100644 --- a/cras.c +++ b/cras.c @@ -22,16 +22,17 @@ enum { }; enum { - DEF_MODE, APP_MODE, + DEF_MODE, + DLT_MODE, + EDIT_MODE, INVAL_MODE, + MARK_MODE, NEW_MODE, - OUT_MODE, - EDIT_MODE, - DLT_MODE, - MARK_MODE + OUT_MODE }; +/* Auxiliary functions */ static void die(const char *fmt, ...); static void printf_color(const char *ansi_color, const char *fmt, ...); static void print_task(Task task, int i); @@ -41,14 +42,15 @@ static int read_crasfile(TaskLst *list, const char *crasfile); static void write_crasfile(const char *crasfile, TaskLst list); static int store_input(TaskLst *list, FILE *fp); static int parse_tasknum(const char *id); - static void usage(void); -static void input_mode(const char *crasfile, int append); -static void output_mode(const char *crasfile, int mode); -static void edit_mode(const char *crasfile, const char *id); + +/* Execution modes */ static void delete_mode(const char *crasfile, const char *id); -static void mark_list_mode(const char *crasfile, const char *id, int value); +static void edit_mode(const char *crasfile, const char *id); +static void input_mode(const char *crasfile, int append); static void inval_mode(const char *crasfile); +static void mark_list_mode(const char *crasfile, const char *id, int value); +static void output_mode(const char *crasfile, int mode); static void die(const char *fmt, ...) @@ -222,49 +224,25 @@ usage(void) } static void -input_mode(const char *crasfile, int append) +delete_mode(const char *crasfile, const char *id) { + int tasknum; TaskLst list; + tasknum = parse_tasknum(id); + task_lst_init(&list); - if (append > 0) - read_crasfile(&list, crasfile); + read_crasfile(&list, crasfile); - if (store_input(&list, stdin) < 0) { + if (task_lst_del_task(&list, tasknum - 1) < 0) { task_lst_cleanup(&list); - die("Internal memory error."); + die(TASK_NONEXIST_MSG, tasknum); } - - /* Only set a new expiration date if creating a new file */ - if (append == 0) - task_lst_set_expiration(&list, crasfile_expiry); - write_crasfile(crasfile, list); task_lst_cleanup(&list); } -static void -output_mode(const char *crasfile, int mode) -{ - TaskLst list; - - task_lst_init(&list); - if (read_crasfile(&list, crasfile) < 0) { - task_lst_cleanup(&list); - die("Could not find file %s", crasfile); - } - - if (mode == SHORT_OUTPUT) - print_short_output(list); - else - print_output(list); - - putchar('\n'); - - task_lst_cleanup(&list); -} - static void edit_mode(const char *crasfile, const char *id) { @@ -291,20 +269,38 @@ edit_mode(const char *crasfile, const char *id) } static void -delete_mode(const char *crasfile, const char *id) +input_mode(const char *crasfile, int append) { - int tasknum; TaskLst list; - tasknum = parse_tasknum(id); - task_lst_init(&list); - read_crasfile(&list, crasfile); + if (append > 0) + read_crasfile(&list, crasfile); - if (task_lst_del_task(&list, tasknum - 1) < 0) { + if (store_input(&list, stdin) < 0) { task_lst_cleanup(&list); - die(TASK_NONEXIST_MSG, tasknum); + die("Internal memory error."); } + + /* Only set a new expiration date if creating a new file */ + if (append == 0) + task_lst_set_expiration(&list, crasfile_expiry); + + write_crasfile(crasfile, list); + + task_lst_cleanup(&list); +} + +static void +inval_mode(const char *crasfile) +{ + TaskLst list; + + task_lst_init(&list); + read_crasfile(&list, crasfile); + + task_lst_set_expiration(&list, 0); + write_crasfile(crasfile, list); task_lst_cleanup(&list); @@ -337,16 +333,22 @@ mark_list_mode(const char *crasfile, const char *id, int value) } static void -inval_mode(const char *crasfile) +output_mode(const char *crasfile, int mode) { TaskLst list; task_lst_init(&list); - read_crasfile(&list, crasfile); + if (read_crasfile(&list, crasfile) < 0) { + task_lst_cleanup(&list); + die("Could not find file %s", crasfile); + } - task_lst_set_expiration(&list, 0); + if (mode == SHORT_OUTPUT) + print_short_output(list); + else + print_output(list); - write_crasfile(crasfile, list); + putchar('\n'); task_lst_cleanup(&list); } @@ -364,36 +366,32 @@ main(int argc, char *argv[]) usage(); mode = APP_MODE; break; - case 'i': + case 'd': if (mode != DEF_MODE) usage(); - mode = INVAL_MODE; + mode = DLT_MODE; + strncpy(numarg, EARGF(usage()), NUMARG_SIZE); break; - case 'n': + case 'e': if (mode != DEF_MODE) usage(); - mode = NEW_MODE; + mode = EDIT_MODE; + strncpy(numarg, EARGF(usage()), NUMARG_SIZE); break; - case 'o': + case 'i': if (mode != DEF_MODE) usage(); - mode = OUT_MODE; - break; - case 'v': - die("cras %s. See LICENSE file for copyright and license " - "details.", VERSION); + mode = INVAL_MODE; break; - case 'd': + case 'n': if (mode != DEF_MODE) usage(); - mode = DLT_MODE; - strncpy(numarg, EARGF(usage()), NUMARG_SIZE); + mode = NEW_MODE; break; - case 'e': + case 'o': if (mode != DEF_MODE) usage(); - mode = EDIT_MODE; - strncpy(numarg, EARGF(usage()), NUMARG_SIZE); + mode = OUT_MODE; break; case 't': if (mode != DEF_MODE) @@ -409,6 +407,10 @@ main(int argc, char *argv[]) task_value = TASK_TODO; strncpy(numarg, EARGF(usage()), NUMARG_SIZE); break; + case 'v': + die("cras %s. See LICENSE file for copyright and license " + "details.", VERSION); + break; default: usage(); /* usage() dies, so nothing else needed. */ } ARGEND; @@ -420,24 +422,24 @@ main(int argc, char *argv[]) case APP_MODE: input_mode(argv[0], 1); return 0; + case DLT_MODE: + delete_mode(argv[0], numarg); + return 0; + case EDIT_MODE: + edit_mode(argv[0], numarg); + return 0; case INVAL_MODE: inval_mode(argv[0]); return 0; + case MARK_MODE: + mark_list_mode(argv[0], numarg, task_value); + return 0; case NEW_MODE: input_mode(argv[0], 0); return 0; case OUT_MODE: output_mode(argv[0], SHORT_OUTPUT); return 0; - case EDIT_MODE: - edit_mode(argv[0], numarg); - return 0; - case DLT_MODE: - delete_mode(argv[0], numarg); - return 0; - case MARK_MODE: - mark_list_mode(argv[0], numarg, task_value); - return 0; } /* Default behavior: long-form output */ -- cgit v1.2.3