diff --git a/lib/database.c b/lib/database.c index 2fc7325..0de53fe 100644 --- a/lib/database.c +++ b/lib/database.c @@ -11,6 +11,13 @@ int tanabata_init(Tanabata *tanabata) { shoppyou_init(&tanabata->shoppyou) != 0) { return 1; } + tanabata->sappyou.size = 1; + tanabata->sappyou.database = malloc(sizeof(Tanzaku)); + tanabata->sappyou.database->id = 0; + tanabata->sappyou.database->created_ts = tanabata->sappyou.created_ts; + tanabata->sappyou.database->modified_ts = tanabata->sappyou.created_ts; + tanabata->sappyou.database->name = "FAVORITE"; + tanabata->sappyou.database->description = "Special tanzaku for favorites"; tanabata->sasahyou_mod = 0; tanabata->sappyou_mod = 0; tanabata->shoppyou_mod = 0; diff --git a/lib/tanzaku.c b/lib/tanzaku.c index 9fa01d8..1c1a7db 100644 --- a/lib/tanzaku.c +++ b/lib/tanzaku.c @@ -17,7 +17,7 @@ int tanabata_tanzaku_add(Tanabata *tanabata, const char *name, const char *descr } int tanabata_tanzaku_rem_by_id(Tanabata *tanabata, uint64_t tanzaku_id) { - if (tanzaku_id == HOLE_ID || tanzaku_id >= tanabata->sappyou.size) { + if (tanzaku_id == HOLE_ID || tanzaku_id >= tanabata->sappyou.size || tanzaku_id == 0) { return 1; } if (tanzaku_rem(&tanabata->sappyou, tanzaku_id) == 0 && @@ -28,8 +28,8 @@ int tanabata_tanzaku_rem_by_id(Tanabata *tanabata, uint64_t tanzaku_id) { } int tanabata_tanzaku_rem_by_name(Tanabata *tanabata, const char *name) { - Tanzaku *current_tanzaku = tanabata->sappyou.database; - for (uint64_t i = 0; i < tanabata->sappyou.size; i++) { + Tanzaku *current_tanzaku = tanabata->sappyou.database + 1; + for (uint64_t i = 1; i < tanabata->sappyou.size; i++) { if (current_tanzaku->id != HOLE_ID && strcmp(current_tanzaku->name, name) == 0) { if (tanzaku_rem(&tanabata->sappyou, current_tanzaku->id) == 0 && kazari_rem_by_tanzaku(&tanabata->shoppyou, current_tanzaku->id) == 0) {