aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/main.c b/src/main.c
index 4606d9a..2228f2a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -998,9 +998,8 @@ static void ftag_tag_add(int argc, char **argv)
strbuild(sql, "SELECT name FROM tags WHERE name = '%s';",
new_tag_name);
rc = sqlite3_exec(db, sql,
- ftag_tag_shall_exist_callback, (intptr_t)0, NULL);
+ ftag_tag_shall_exist_callback, (void *)0, NULL);
sqlite3_check(rc, db);
-
int next_id = table_next_id(db, "tags");
char *new_tag_desc = strdup(argv[2]);
assert(strlen(new_tag_desc) <= 600);
@@ -1023,12 +1022,13 @@ static int tag_edit_desc_callback(void *_old, int, char **cols, char **)
return 0;
}
+static void ftag_tag_edit_usage(void)
+{
+ puts("Usage: ftag tag edit [-h] [-n] NAME...");
+}
+
static void ftag_tag_edit(int argc, char **argv)
{
- if (argc == 1) {
- fprintf(stderr, "Usage: ftag tag edit [-h] [-n] NAME...\n");
- exit(EXIT_FAILURE);
- }
int opt;
int edit_name = 0;
char *column_name;
@@ -1050,13 +1050,20 @@ static void ftag_tag_edit(int argc, char **argv)
break;
case '?':
default:
- fprintf(stderr, "Usage: ftag tag edit [-h] [-n] NAME...\n");
+ ftag_tag_edit_usage();
exit(EXIT_FAILURE);
}
}
- tag_name = argv[optind];
+ if (argc - optind != 1) {
+ ftag_tag_edit_usage();
+ exit(EXIT_FAILURE);
+ }
+ tag_name = strdup(argv[optind]);
+ sanitize_sql_str(&tag_name);
db = ftag_db_open();
- /* TODO: check that tag exists */
+ strbuild(sql, "SELECT name FROM tags WHERE name = '%s';", tag_name);
+ rc = sqlite3_exec(db, sql, ftag_tag_shall_exist_callback, (void *)1, NULL);
+ sqlite3_check(rc, db);
if (edit_name) {
column_name = "name";
old = strdup(tag_name);
@@ -1077,6 +1084,7 @@ static void ftag_tag_edit(int argc, char **argv)
printf("debug: SQL query: \"%s\"\n", sql);
rc = sqlite3_exec(db, sql, NULL, NULL, NULL);
sqlite3_check(rc, db);
+ free(tag_name);
free(old);
free(new);
sqlite3_close(db);