fix(lib): minor fixes

This commit is contained in:
Masahiko AMANO 2022-12-25 01:18:10 +03:00
parent 16c577ecb8
commit 9cbb34512b
3 changed files with 36 additions and 2 deletions

View File

@ -31,7 +31,7 @@ Tanzaku *tanabata_tanzaku_get_by_sasa(Tanabata *tanabata, uint64_t sasa_id) {
uint64_t tanzaku_count = 0;
Kazari *current_kazari = tanabata->shoppyou.database;
for (uint64_t i = 0; i < tanabata->shoppyou.size; i++) {
if (current_kazari->sasa_id == sasa_id) {
if (current_kazari->sasa_id == sasa_id && current_kazari->tanzaku_id != HOLE_ID) {
tanzaku_count++;
tanzaku_list = realloc(tanzaku_list, tanzaku_count * sizeof(Tanzaku));
tanzaku_list[tanzaku_count - 1] = tanabata_tanzaku_get_by_id(tanabata, current_kazari->tanzaku_id);
@ -53,7 +53,7 @@ Sasa *tanabata_sasa_get_by_tanzaku(Tanabata *tanabata, uint64_t tanzaku_id) {
uint64_t sasa_count = 0;
Kazari *current_kazari = tanabata->shoppyou.database;
for (uint64_t i = 0; i < tanabata->shoppyou.size; i++) {
if (current_kazari->tanzaku_id == tanzaku_id) {
if (current_kazari->tanzaku_id == tanzaku_id && current_kazari->sasa_id != HOLE_ID) {
sasa_count++;
sasa_list = realloc(sasa_list, sasa_count * sizeof(Sasa));
sasa_list[sasa_count - 1] = tanabata_sasa_get_by_id(tanabata, current_kazari->sasa_id);

View File

@ -20,6 +20,16 @@ int tanabata_sasa_add(Tanabata *tanabata, const char *path) {
}
int tanabata_sasa_rem_by_id(Tanabata *tanabata, uint64_t sasa_id) {
if (sasa_id == HOLE_ID || sasa_id >= tanabata->sasahyou.size) {
return 1;
}
Kazari *current_kazari = tanabata->shoppyou.database;
for (uint64_t j = 0; j < tanabata->shoppyou.size; j++) {
if (current_kazari->sasa_id == sasa_id) {
current_kazari->sasa_id = HOLE_ID;
}
current_kazari++;
}
return sasa_rem(&tanabata->sasahyou, sasa_id);
}
@ -27,6 +37,13 @@ int tanabata_sasa_rem_by_path(Tanabata *tanabata, const char *path) {
Sasa *current_sasa = tanabata->sasahyou.database;
for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) {
if (current_sasa->id != HOLE_ID && strcmp(current_sasa->path, path) == 0) {
Kazari *current_kazari = tanabata->shoppyou.database;
for (uint64_t j = 0; j < tanabata->shoppyou.size; j++) {
if (current_kazari->sasa_id == current_sasa->id) {
current_kazari->sasa_id = HOLE_ID;
}
current_kazari++;
}
return sasa_rem(&tanabata->sasahyou, current_sasa->id);
}
current_sasa++;

View File

@ -13,6 +13,16 @@ 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) {
return 1;
}
Kazari *current_kazari = tanabata->shoppyou.database;
for (uint64_t i = 0; i < tanabata->shoppyou.size; i++) {
if (current_kazari->tanzaku_id == tanzaku_id) {
current_kazari->tanzaku_id = HOLE_ID;
}
current_kazari++;
}
return tanzaku_rem(&tanabata->sappyou, tanzaku_id);
}
@ -20,6 +30,13 @@ 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++) {
if (current_tanzaku->id != HOLE_ID && strcmp(current_tanzaku->name, name) == 0) {
Kazari *current_kazari = tanabata->shoppyou.database;
for (uint64_t j = 0; j < tanabata->shoppyou.size; j++) {
if (current_kazari->tanzaku_id == current_tanzaku->id) {
current_kazari->tanzaku_id = HOLE_ID;
}
current_kazari++;
}
return tanzaku_rem(&tanabata->sappyou, current_tanzaku->id);
}
current_tanzaku++;