diff --git a/include/tanabata.h b/include/tanabata.h index d2e43cd..8a65144 100644 --- a/include/tanabata.h +++ b/include/tanabata.h @@ -59,7 +59,7 @@ int tanabata_sasa_rem_by_path(Tanabata *tanabata, const char *path); // ==================== TANZAKU SECTION ==================== // // Add tanzaku -int tanabata_tanzaku_add(Tanabata *tanabata, const char *name, const char *alias, const char *description); +int tanabata_tanzaku_add(Tanabata *tanabata, const char *name, const char *description); // Remove tanzaku by ID int tanabata_tanzaku_rem_by_id(Tanabata *tanabata, uint64_t tanzaku_id); diff --git a/src/tanabata/sasa.c b/src/tanabata/sasa.c index 5283142..cbb9f7c 100644 --- a/src/tanabata/sasa.c +++ b/src/tanabata/sasa.c @@ -1,13 +1,29 @@ +#include + #include "../../include/tanabata.h" int tanabata_sasa_add(Tanabata *tanabata, const char *path) { + for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) { + if (tanabata->sasahyou.database[i].id != HOLE_ID && strcmp(tanabata->sasahyou.database[i].path, path) == 0) { + fprintf(stderr, "Failed to add sasa: target file is already added\n"); + return 1; + } + } return sasa_add(&tanabata->sasahyou, path); } int tanabata_sasa_rem_by_id(Tanabata *tanabata, uint64_t sasa_id) { - return sasa_rem_by_id(&tanabata->sasahyou, sasa_id); + return sasa_rem(&tanabata->sasahyou, sasa_id); } int tanabata_sasa_rem_by_path(Tanabata *tanabata, const char *path) { - return sasa_rem_by_path(&tanabata->sasahyou, path); + Sasa *current_sasa; + for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) { + current_sasa = tanabata->sasahyou.database + i; + if (current_sasa->id != HOLE_ID && strcmp(current_sasa->path, path) == 0) { + return sasa_rem(&tanabata->sasahyou, current_sasa->id); + } + } + fprintf(stderr, "Failed to remove sasa: target sasa does not exist\n"); + return 1; } diff --git a/src/tanabata/tanzaku.c b/src/tanabata/tanzaku.c index 0251547..1d97d6b 100644 --- a/src/tanabata/tanzaku.c +++ b/src/tanabata/tanzaku.c @@ -1,15 +1,30 @@ +#include #include "../../include/tanabata.h" -int tanabata_tanzaku_add(Tanabata *tanabata, const char *name, const char *alias, const char *description) { - return tanzaku_add(&tanabata->sappyou, name, alias, description); +int tanabata_tanzaku_add(Tanabata *tanabata, const char *name, const char *description) { + for (uint64_t i = 0; i < tanabata->sappyou.size; i++) { + if (tanabata->sappyou.database[i].id != HOLE_ID && strcmp(tanabata->sappyou.database[i].name, name) == 0) { + fprintf(stderr, "Failed to add tanzaku: target tanzaku is already added\n"); + return 1; + } + } + return tanzaku_add(&tanabata->sappyou, name, description); } int tanabata_tanzaku_rem_by_id(Tanabata *tanabata, uint64_t tanzaku_id) { - return tanzaku_rem_by_id(&tanabata->sappyou, tanzaku_id); + return tanzaku_rem(&tanabata->sappyou, tanzaku_id); } int tanabata_tanzaku_rem_by_name(Tanabata *tanabata, const char *name) { - return tanzaku_rem_by_name(&tanabata->sappyou, name); + Tanzaku *current_tanzaku; + for (uint64_t i = 0; i < tanabata->sappyou.size; i++) { + current_tanzaku = tanabata->sappyou.database + i; + if (current_tanzaku->id != HOLE_ID && strcmp(current_tanzaku->name, name) == 0) { + return tanzaku_rem(&tanabata->sappyou, current_tanzaku->id); + } + } + fprintf(stderr, "Failed to remove tanzaku: target tanzaku does not exist\n"); + return 1; } int tanabata_tanzaku_rem_by_alias(Tanabata *tanabata, const char *alias) {