diff --git a/src/include/db.h b/src/include/db.h index 6ffd680..6ec3702 100644 --- a/src/include/db.h +++ b/src/include/db.h @@ -31,6 +31,7 @@ void delete_task(int id); /* Copie la tâche [id] dans *t si elle existe +t.id vaut -1 si non trouvé */ void get_task(int id, task_t* t); diff --git a/src/main.c b/src/main.c index 70ab879..6abb2db 100644 --- a/src/main.c +++ b/src/main.c @@ -15,9 +15,9 @@ void help(char* name) { printf("\tFormat de la date:\n"); printf("\t\tRelatif: min+%%d, h+%%d, j+%%d\n"); printf("\t\tAbsolu: dd/mm (pas de changement d'année pour l'instant\n"); - printf("\tinfo \n"); - printf("\tdone \n"); - printf("\trm \n"); + printf("\tinfo ...\n"); + printf("\tdone ...\n"); + printf("\trm ...\n"); } @@ -84,6 +84,9 @@ int add(int argc, char* argv[]) { } task_t t = create_task(argv[2], due_to); + if (t.id == -1) { + return 1; + } if (add_task(t) != 0) { printf("Erreur lors de l'ajout à la base de données\n"); @@ -102,20 +105,22 @@ int info(int argc, char* argv[]) { return 1; } - int id = strtol(argv[2], NULL, 10); + for (int i=2; i < argc; i++) { + int id = strtol(argv[i], NULL, 10); - task_t t; - t.id = -1; - get_task(id, &t); + task_t t; + t.id = -1; + get_task(id, &t); - if (t.id == -1) { - printf(BOLD YELLOW "Tâche inexistante. Vérifiez que l'identifiant est bien correct\n" RESET); - return 1; + if (t.id == -1) { + printf(YELLOW "Tâche " BOLD "[%s]" RESET YELLOW " inexistante. Vérifiez que l'identifiant est bien correct\n" RESET, argv[i]); + return 1; + } + + print_task(t); + free(t.text); } - print_task(t); - - free(t.text); return 0; } @@ -126,20 +131,22 @@ int mark_done(int argc, char* argv[]) { return 1; } - int id = strtol(argv[2], NULL, 10); + for (int i=2; i < argc; i++) { + int id = strtol(argv[i], NULL, 10); - task_t t; - t.id = -1; - get_task(id, &t); + task_t t; + t.id = -1; + get_task(id, &t); - if (t.id == -1) { - printf(BOLD YELLOW "Tâche inexistante. Vérifiez que l'identifiant est bien correct\n" RESET); - return 1; + if (t.id == -1) { + printf(YELLOW "Tâche " BOLD "[%s]" RESET YELLOW " inexistante. Vérifiez que l'identifiant est bien correct\n" RESET, argv[i]); + return 1; + } + + t.done = true; + update_task(t); } - t.done = true; - update_task(t); - return 0; } @@ -151,19 +158,21 @@ int delete(int argc, char* argv[]) { return 1; } - int id = strtol(argv[2], NULL, 10); + for (int i=2; i < argc; i++) { + int id = strtol(argv[i], NULL, 10); - task_t t; - t.id = -1; - get_task(id, &t); + task_t t; + t.id = -1; + get_task(id, &t); - if (t.id == -1) { - printf(BOLD YELLOW "Tâche inexistante. Vérifiez que l'identifiant est bien correct\n" RESET); - return 1; + if (t.id == -1) { + printf(YELLOW "Tâche " BOLD "[%s]" RESET YELLOW " inexistante. Vérifiez que l'identifiant est bien correct\n" RESET, argv[i]); + return 1; + } + + delete_task(t.id); } - delete_task(t.id); - return 0; }