From dd30ec1133a86b43e1a87307b92f92c5ca9d53c1 Mon Sep 17 00:00:00 2001 From: Tristan Riehs Date: Mon, 29 Dec 2025 16:00:54 +0100 Subject: Use the new strbuild function whenever possible --- src/main.c | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/main.c b/src/main.c index a6983e5..8e92bb6 100644 --- a/src/main.c +++ b/src/main.c @@ -231,7 +231,7 @@ static int table_next_id(sqlite3 *db, const char *table) int rc; char sql[128]; memset(sql, 0, sizeof(sql)); - snprintf(sql, sizeof(sql)-1, "SELECT MAX(id) FROM %s;", table); + strbuild(sql, "SELECT MAX(id) FROM %s;", table); rc = sqlite3_exec(db, sql, table_next_id_callback, &last_id, NULL); sqlite3_check(rc, db); printf("%s: debug: last id for table \"%s\" is %d\n", __func__, table, last_id); @@ -287,8 +287,8 @@ static void ftag_export(int argc, char **argv) int out_fd; while ((line_len = getline(&line, &line_size, stdin)) != -1) { remove_ending_newline(line); - snprintf(in, sizeof(in)-1, "%s/files/%s", FTAG_ROOT, line); - snprintf(out, sizeof(out)-1, "%s/%s", tmp_dir, line); + strbuild(in, "%s/files/%s", FTAG_ROOT, line); + strbuild(out, "%s/%s", tmp_dir, line); in_fd = open(in, O_RDONLY); if (in_fd == -1) { fprintf(stderr, "open: %s:", in); @@ -352,8 +352,8 @@ static void ftag_init(int, char **) } char cmd[1024]; memset(cmd, 0, sizeof(cmd)); - snprintf(cmd, sizeof(cmd)-1, - "sqlite3 %s < %s", DATABASE_PATH, FTAG_ROOT "/sql/init.sql"); + strbuild(cmd, "sqlite3 %s < %s", + DATABASE_PATH, FTAG_ROOT "/sql/init.sql"); execl("/usr/bin/sh", "/usr/bin/sh", "-c", cmd, NULL); fprintf(stderr, "exec: /usr/bin/sh -c \"%s\": ", cmd); perror(""); @@ -379,7 +379,7 @@ static void ftag_list_table(const char *table, const char *col) rc = sqlite3_open(DATABASE_PATH, &db); sqlite3_check(rc, db); memset(sql, 0, sizeof(sql)); - snprintf(sql, sizeof(sql)-1, "SELECT %s FROM %s;", col, table); + strbuild(sql, "SELECT %s FROM %s;", col, table); rc = sqlite3_exec(db, sql, ftag_print, NULL, NULL); sqlite3_check(rc, db); sqlite3_close(db); @@ -496,7 +496,7 @@ ftag_add_one_file(sqlite3 *db, int *next_id, const char *file, uint32_t file_sum } memset(sql, 0, sizeof(sql)); - snprintf(sql, sizeof(sql)-1, + strbuild(sql, "INSERT INTO files VALUES(%d, '%s', '%s', '%s', " "%ld, %u, '%s')", *next_id, canonical_name, full_name, description, @@ -507,8 +507,7 @@ ftag_add_one_file(sqlite3 *db, int *next_id, const char *file, uint32_t file_sum char new_path[512]; memset(new_path, 0, sizeof(new_path)); - snprintf(new_path, sizeof(new_path)-1, - "%s/files/%s", FTAG_ROOT, canonical_name); + strbuild(new_path, "%s/files/%s", FTAG_ROOT, canonical_name); int out_fd = open(new_path, O_WRONLY | O_CREAT, 0644); if (out_fd == -1) { @@ -729,8 +728,7 @@ get_id_by_col(sqlite3 *db, const char *table, const char *col, const char *val) int id = -1; char sql[128]; memset(sql, 0, sizeof(sql)); - snprintf(sql, sizeof(sql)-1, - "SELECT id FROM %s WHERE %s = '%s';", table, col, val); + strbuild(sql, "SELECT id FROM %s WHERE %s = '%s';", table, col, val); int rc = sqlite3_exec(db, sql, get_id_by_col_callback, &id, NULL); sqlite3_check(rc, db); assert(id >= 0); @@ -754,8 +752,7 @@ static void ftag_file_tag(int argc, char **argv) int tag_id = get_id_by_col(db, "tags", "name", argv[i]); printf("%s: debug: tag id is %d\n", __func__, tag_id); memset(sql, 0, sizeof(sql)); - snprintf(sql, sizeof(sql)-1, - "INSERT INTO file_tags values(%d, %d);", + strbuild(sql, "INSERT INTO file_tags values(%d, %d);", file_id, tag_id); rc = sqlite3_exec(db, sql, NULL, NULL, NULL); sqlite3_check(rc, db); @@ -827,7 +824,7 @@ static void ftag_query_date(sqlite3 *db, assert(strlen(sql) < max_len); if (before_date != 0) { memset(buf, 0, sizeof(buf)); - snprintf(buf, sizeof(buf)-1, " WHERE date < %ld", before_date); + strbuild(buf, " WHERE date < %ld", before_date); strncat(sql, buf, max_len - strlen(sql)); assert(strlen(sql) < max_len); need_and_keyword = 1; @@ -838,7 +835,7 @@ static void ftag_query_date(sqlite3 *db, else strncat(sql, " WHERE", max_len - strlen(sql)); memset(buf, 0, sizeof(buf)); - snprintf(buf, sizeof(buf)-1, " date > %ld", after_date); + strbuild(buf, " date > %ld", after_date); strncat(sql, buf, max_len - strlen(sql)); assert(strlen(sql) < max_len); } @@ -864,8 +861,7 @@ static void ftag_query_join(sqlite3 *db, int tag_id = get_id_by_col(db, "tags", "name", tags[tag_count-1]); char suffix[128]; memset(suffix, 0, sizeof(suffix)); - snprintf(suffix, sizeof(suffix)-1, - "\t\tON id = file\n\t\tWHERE tag = %d)\n", tag_id); + strbuild(suffix, "\t\tON id = file\n\t\tWHERE tag = %d)\n", tag_id); strncat(sql, suffix, max_len - strlen(sql)); assert(strlen(sql) < max_len); } @@ -913,8 +909,8 @@ static void ftag_query(int argc, char **argv) ftag_query_join(db, sql_join, sizeof(sql_join)-1, tags, tag_count, before_date, after_date); memset(sql, 0, sizeof(sql)); - snprintf(sql, sizeof(sql)-1, - "SELECT id,canonical_name,full_name FROM (\n%s);\n", sql_join); + strbuild(sql, "SELECT id,canonical_name,full_name FROM (\n%s);\n", + sql_join); printf("%s: debug: SQL query is:\n%s", __func__, sql); int print_header = 1; rc = sqlite3_exec(db, sql, print_all_callback, &print_header, NULL); @@ -954,8 +950,7 @@ static void ftag_tag_add(int argc, char **argv) sqlite3_check(rc, db); memset(sql, 0, sizeof(sql)); - snprintf(sql, sizeof(sql)-1, - "SELECT name, description FROM tags WHERE name = '%s';", + strbuild(sql, "SELECT name, description FROM tags WHERE name = '%s';", new_tag_name); rc = sqlite3_exec(db, sql, ftag_tag_check, NULL, NULL); sqlite3_check(rc, db); @@ -965,8 +960,7 @@ static void ftag_tag_add(int argc, char **argv) assert(strlen(new_tag_desc) <= 600); sanitize_sql_str(&new_tag_desc); memset(sql, 0, sizeof(sql)); - snprintf(sql, sizeof(sql)-1, - "INSERT INTO tags VALUES(%d, '%s', '%s');", + strbuild(sql, "INSERT INTO tags VALUES(%d, '%s', '%s');", next_id, new_tag_name, new_tag_desc); rc = sqlite3_exec(db, sql, NULL, NULL, NULL); sqlite3_check(rc, db); -- cgit v1.2.3