aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Riehs <tristan.riehs@inria.fr>2025-12-29 16:00:54 +0100
committerTristan Riehs <tristan.riehs@inria.fr>2025-12-29 16:00:54 +0100
commitdd30ec1133a86b43e1a87307b92f92c5ca9d53c1 (patch)
treec1b185c6cadb6d33b65b4f2969afb97861dfb1cd
parentf290605e977d45234fc2b27b4e827507ce25feeb (diff)
Use the new strbuild function whenever possible
-rw-r--r--src/main.c40
1 files changed, 17 insertions, 23 deletions
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);