summaryrefslogtreecommitdiff
path: root/db.c
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2010-01-02 19:14:29 +0100
committerJon Bergli Heier <snakebite@jvnv.net>2010-01-02 19:14:29 +0100
commitf4e78b03800068498ab72b24f54d9d2c2ab71201 (patch)
tree8a61733ad595404f7a26fc84b53ff1f65c7359c1 /db.c
parentdd29fc5cc27b5540500fa341726b594221aee76d (diff)
Implemented removal of tags.
Diffstat (limited to 'db.c')
-rw-r--r--db.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/db.c b/db.c
index 86a10f8..d47793a 100644
--- a/db.c
+++ b/db.c
@@ -428,6 +428,54 @@ sqlite_uint64 db_add_tag(const char *name) {
}
}
+static void db_remove_tag_walltags(sqlite_uint64 tagid) {
+ sqlite3_stmt *stmt;
+ int rc;
+
+ rc = sqlite3_prepare_v2(db, "DELETE FROM walltags WHERE tagid = ?", -1, &stmt, NULL);
+
+ if(rc != SQLITE_OK) {
+ return;
+ }
+
+ rc = sqlite3_bind_int64(stmt, 1, tagid);
+ if(rc != SQLITE_OK) {
+ sqlite3_finalize(stmt);
+ return;
+ }
+
+ sqlite3_step(stmt);
+
+ sqlite3_finalize(stmt);
+}
+
+static void db_remove_tag_tag(sqlite_uint64 tagid) {
+ sqlite3_stmt *stmt;
+ int rc;
+
+ rc = sqlite3_prepare_v2(db, "DELETE FROM tag WHERE id = ?", -1, &stmt, NULL);
+
+ if(rc != SQLITE_OK) {
+ return;
+ }
+
+ rc = sqlite3_bind_int64(stmt, 1, tagid);
+ if(rc != SQLITE_OK) {
+ sqlite3_finalize(stmt);
+ return;
+ }
+
+ sqlite3_step(stmt);
+
+ sqlite3_finalize(stmt);
+}
+
+void db_remove_tag(sqlite_uint64 tagid) {
+ db_remove_tag_walltags(tagid);
+
+ db_remove_tag_tag(tagid);
+}
+
int db_get_tags_all(GArray **array) {
struct tag_t temp, *temp2;
sqlite3_stmt *stmt;