From 2fb8038a4418d4133538e4acc961c40a02d50ea6 Mon Sep 17 00:00:00 2001 From: Masahiko AMANO Date: Fri, 30 Dec 2022 14:57:03 +0300 Subject: [PATCH] feat(lib): add sasa and tanzaku update functions --- include/tanabata.h | 6 ++++++ lib/sasa.c | 15 +++++++++++++++ lib/tanzaku.c | 4 ++++ 3 files changed, 25 insertions(+) diff --git a/include/tanabata.h b/include/tanabata.h index fe8b3d5..5178d24 100644 --- a/include/tanabata.h +++ b/include/tanabata.h @@ -59,6 +59,9 @@ int tanabata_sasa_rem_by_id(Tanabata *tanabata, uint64_t sasa_id); // Remove sasa by file path int tanabata_sasa_rem_by_path(Tanabata *tanabata, const char *path); +// Update sasa file path +int tanabata_sasa_upd(Tanabata *tanabata, uint64_t sasa_id, const char *path); + // Get sasa by ID Sasa tanabata_sasa_get_by_id(Tanabata *tanabata, uint64_t sasa_id); @@ -76,6 +79,9 @@ int tanabata_tanzaku_rem_by_id(Tanabata *tanabata, uint64_t tanzaku_id); // Remove tanzaku by name int tanabata_tanzaku_rem_by_name(Tanabata *tanabata, const char *name); +// Update tanzaku name and description +int tanabata_tanzaku_upd(Tanabata *tanabata, uint64_t tanzaku_id, const char *name, const char *description); + // Get tanzaku by ID Tanzaku tanabata_tanzaku_get_by_id(Tanabata *tanabata, uint64_t tanzaku_id); diff --git a/lib/sasa.c b/lib/sasa.c index c9ea70d..19fe992 100644 --- a/lib/sasa.c +++ b/lib/sasa.c @@ -56,6 +56,21 @@ int tanabata_sasa_rem_by_path(Tanabata *tanabata, const char *path) { return 1; } +int tanabata_sasa_upd(Tanabata *tanabata, uint64_t sasa_id, const char *path) { + if (sasa_id == HOLE_ID || sasa_id >= tanabata->sasahyou.size) { + return 1; + } + if (path == NULL) { + return 0; + } + char *abspath = NULL; + abspath = realpath(path, abspath); + if (abspath == NULL) { + return 1; + } + return sasa_upd(&tanabata->sasahyou, sasa_id, abspath); +} + Sasa tanabata_sasa_get_by_id(Tanabata *tanabata, uint64_t sasa_id) { if (sasa_id == HOLE_ID || sasa_id >= tanabata->sasahyou.size) { return HOLE_SASA; diff --git a/lib/tanzaku.c b/lib/tanzaku.c index ec59827..9cc803c 100644 --- a/lib/tanzaku.c +++ b/lib/tanzaku.c @@ -45,6 +45,10 @@ int tanabata_tanzaku_rem_by_name(Tanabata *tanabata, const char *name) { return 1; } +int tanabata_tanzaku_upd(Tanabata *tanabata, uint64_t tanzaku_id, const char *name, const char *description) { + return tanzaku_upd(&tanabata->sappyou, tanzaku_id, name, description); +} + Tanzaku tanabata_tanzaku_get_by_id(Tanabata *tanabata, uint64_t tanzaku_id) { if (tanzaku_id == HOLE_ID || tanzaku_id >= tanabata->sappyou.size) { return HOLE_TANZAKU;