diff --git a/src/database/config.c b/src/database/config.c index cf4b2eefa9a6e4642639883fe0f435560e01f806..4dc40d1bdbd46e0a4d3e71dbfe05ce7111362e10 100644 --- a/src/database/config.c +++ b/src/database/config.c @@ -1,6 +1,7 @@ #define _POSIX_C_SOURCE 200809L #include <lektor/database.h> +#include <lektor/macro.h> #include <limits.h> #include <stdio.h> @@ -17,11 +18,7 @@ database_config_set(sqlite3 *db, const char *section, const char *key, const cha bool ret = false; int code; - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_config_set: Failed to prepare statement: %s\n", - sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_text(stmt, 1, section, -1, 0) != SQLITE_OK || sqlite3_bind_text(stmt, 2, key, -1, 0) != SQLITE_OK || @@ -54,14 +51,9 @@ database_config_get_text(sqlite3 *db, const char *section, const char *key, char " WHERE section = ? AND key = ?;\n"; sqlite3_stmt *stmt = 0; bool ret = false; - int code; char *row; - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_config_get_text: Failed to prepare statement: %s\n", - sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_text(stmt, 1, section, -1, 0) != SQLITE_OK || sqlite3_bind_text(stmt, 2, key, -1, 0) != SQLITE_OK) { @@ -70,9 +62,7 @@ database_config_get_text(sqlite3 *db, const char *section, const char *key, char goto error; } - code = sqlite3_step(stmt); - - if (code != SQLITE_ROW) { + if (sqlite3_step(stmt) != SQLITE_ROW) { fprintf(stderr, " ! database_config_get_text: Failed to insert or replace: %s\n", sqlite3_errmsg(db)); goto error; @@ -96,13 +86,8 @@ database_config_exists(sqlite3 *db, const char *section, const char *key) " WHERE section = ? AND key = ?;\n"; sqlite3_stmt *stmt = 0; bool ret = false; - int code; - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_config_exists: Failed to prepare statement: %s\n", - sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_text(stmt, 1, section, -1, 0) != SQLITE_OK || sqlite3_bind_text(stmt, 2, key, -1, 0) != SQLITE_OK) { @@ -111,9 +96,7 @@ database_config_exists(sqlite3 *db, const char *section, const char *key) goto error; } - code = sqlite3_step(stmt); - - if (code != SQLITE_ROW) { + if (sqlite3_step(stmt) != SQLITE_ROW) { fprintf(stderr, " ! database_config_exists: No rows: %s\n", sqlite3_errmsg(db)); goto error; @@ -134,13 +117,8 @@ database_config_get_int(sqlite3 *db, const char *section, const char *key, int * " WHERE section = ? AND key = ?;\n"; sqlite3_stmt *stmt = 0; bool ret = false; - int code; - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_config_get_int: Failed to prepare statement: %s\n", - sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_text(stmt, 1, section, -1, 0) != SQLITE_OK || sqlite3_bind_text(stmt, 2, key, -1, 0) != SQLITE_OK) { @@ -149,9 +127,7 @@ database_config_get_int(sqlite3 *db, const char *section, const char *key, int * goto error; } - code = sqlite3_step(stmt); - - if (code != SQLITE_ROW) { + if (sqlite3_step(stmt) != SQLITE_ROW) { fprintf(stderr, " ! database_config_get_int: Failed to insert or replace: %s\n", sqlite3_errmsg(db)); goto error; @@ -179,12 +155,7 @@ database_config_queue(sqlite3 *db, const char *option, int value) value = 100; snprintf(SQL_STMT, PATH_MAX, SQL_STMT_TMP, option); - - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_config: Failed to prepare statement: %s\n", - sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_int(stmt, 1, value) != SQLITE_OK) goto error; @@ -230,24 +201,15 @@ database_get_config(sqlite3 *db, const char *option, int *value) char SQL_STMT[PATH_MAX]; sqlite3_stmt *stmt = 0; bool ret = false; - int code; snprintf(SQL_STMT, PATH_MAX, SQL_STMT_TMP, option); + SQLITE_PREPARE(db, stmt, SQL_STMT, error); - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_get_config: Failed to prepare statement: %s\n", - sqlite3_errmsg(db)); - goto error; - } - - code = sqlite3_step(stmt); - - if (code != SQLITE_ROW) + if (sqlite3_step(stmt) != SQLITE_ROW) goto error; *value = sqlite3_column_int(stmt, 0); ret = true; - error: sqlite3_finalize(stmt); return ret; diff --git a/src/database/find.c b/src/database/find.c index c70669b8f36cd621a4554a917ff38f8f41a1c323..d49dce80d65e05334372a68c50a3172dbf76f722 100644 --- a/src/database/find.c +++ b/src/database/find.c @@ -1,6 +1,9 @@ +#define _POSIX_C_SOURCE 200809L + #include <lektor/database.h> +#include <lektor/macro.h> -#include <linux/limits.h> +#include <limits.h> #include <stdio.h> #include <string.h> @@ -23,11 +26,7 @@ database_search_init(sqlite3 *db, char *col_name, char *rgx, sqlite3_stmt **ret) memset(SQL_STMT, 0, PATH_MAX); snprintf(SQL_STMT, PATH_MAX, SQL_STMT_TEMPLATE, col_name); - - if (sqlite3_prepare_v2(db, SQL_STMT, -1, ret, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_search_init: Failed to prepare statement: %s\n", sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, *ret, SQL_STMT, error); if (sqlite3_bind_text(*ret, 1, rgx, -1, 0) != SQLITE_OK) { fprintf(stderr, " ! database_search_init: Failed to bind regex on column %s: %s\n", diff --git a/src/database/open.c b/src/database/open.c index 2797b6bfabe50f03f74fbf45829f569ea515b1c9..2e10b1946a615f943e12f772026568fc2d5d3d46 100644 --- a/src/database/open.c +++ b/src/database/open.c @@ -138,14 +138,9 @@ __is_attached(sqlite3 *db, const char *name) { static const char *SQL_STMT = "SELECT name FROM pragma_database_list WHERE name = ?;\n"; sqlite3_stmt *stmt = 0; - int code = 0; bool ret = false; - if (SQLITE_OK != sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0)) { - fprintf(stderr, " . __is_attached: Failed to prepare statement: %s\n", - sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (SQLITE_OK != sqlite3_bind_text(stmt, 1, name, -1, 0)) { fprintf(stderr, " . __is_attached: Failed to bind name: %s\n", @@ -153,8 +148,7 @@ __is_attached(sqlite3 *db, const char *name) goto error; } - code = sqlite3_step(stmt); - if (code == SQLITE_ROW) + if (sqlite3_step(stmt) == SQLITE_ROW) ret = true; error: diff --git a/src/database/playlist.c b/src/database/playlist.c index 9616ba1d2754beb382753221a861aa9cefcece59..65f3a34d606dd4d9ebb8d1fef779899743b525ac 100644 --- a/src/database/playlist.c +++ b/src/database/playlist.c @@ -16,23 +16,17 @@ database_plt_create(sqlite3 *db, const char *name) "INSERT INTO playlist (name, last_update) VALUES (?, strftime('%s', 'now'));"; sqlite3_stmt *stmt = NULL; bool sta = false; - int code; - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_plt_create: failed to prepare sqlite3 stmt statement: %s\n", sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_text(stmt, 1, name, -1, 0) != SQLITE_OK) { fprintf(stderr, " ! database_plt_create: failed to bind playlist name: %s\n", sqlite3_errmsg(db)); goto error; } - code = sqlite3_step(stmt); - - if (code != SQLITE_DONE) { - fprintf(stderr, " ! database_plt_create: expected SQLITE_DONE (%d) but got %d in step: %s\n", - SQLITE_DONE, code, sqlite3_errmsg(db)); + if (sqlite3_step(stmt) != SQLITE_DONE) { + fprintf(stderr, " ! database_plt_create: expected SQLITE_DONE in step: %s\n", + sqlite3_errmsg(db)); goto error; } @@ -50,21 +44,17 @@ database_plt_remove(sqlite3 *db, const char *name) "DELETE FROM playlist WHERE name = ?;"; sqlite3_stmt *stmt = NULL; bool sta = false; - int code; - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_plt_remove: failed to prepare sqlite3 stmt statement: %s\n", sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_text(stmt, 1, name, -1, 0) != SQLITE_OK) { fprintf(stderr, " ! database_plt_remove: failed to bind playlist name: %s\n", sqlite3_errmsg(db)); goto error; } - if ((code = sqlite3_step(stmt)) != SQLITE_DONE) { - fprintf(stderr, " ! database_plt_remove: expected SQLITE_DONE (%d) but got %d in step: %s\n", - SQLITE_DONE, code, sqlite3_errmsg(db)); + if (sqlite3_step(stmt) != SQLITE_DONE) { + fprintf(stderr, " ! database_plt_remove: expected SQLITE_DONE in step: %s\n", + sqlite3_errmsg(db)); goto error; } @@ -81,13 +71,8 @@ database_plt_remove_pos(sqlite3 *db, const char *name, int pos) "DELETE FROM kara_playlist WHERE playlist_id = (SELECT id FROM playlist WHERE name = ? LIMIT 1) and kara_id = ?;"; sqlite3_stmt *stmt = NULL; bool sta = false; - int code; - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_plt_remove_pos: failed to prepare sqlite3 stmt statement: %s\n", - sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_text(stmt, 1, name, -1, 0) != SQLITE_OK || sqlite3_bind_int(stmt, 2, pos) != SQLITE_OK) { @@ -95,9 +80,9 @@ database_plt_remove_pos(sqlite3 *db, const char *name, int pos) goto error; } - if ((code = sqlite3_step(stmt)) != SQLITE_OK) { - fprintf(stderr, " ! database_plt_remove_pos: expected SQLITE_DONE (%d) but got %d in step: %s\n", - SQLITE_DONE, code, sqlite3_errmsg(db)); + if (sqlite3_step(stmt) != SQLITE_OK) { + fprintf(stderr, " ! database_plt_remove_pos: expected SQLITE_DONE in step: %s\n", + sqlite3_errmsg(db)); goto error; } @@ -114,21 +99,17 @@ database_plt_clear(sqlite3 *db, const char *name) "DELETE FROM kara_playlist WHERE playlist_id = (SELECT id FROM playlist WHERE name = ?);"; sqlite3_stmt *stmt = NULL; bool sta = false; - int code; - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_plt_clear: failed to prepare sqlite3 stmt statement: %s\n", sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_text(stmt, 1, name, -1, 0) != SQLITE_OK) { fprintf(stderr, " ! database_plt_clear: failed to bind playlist name: %s\n", sqlite3_errmsg(db)); goto error; } - if ((code = sqlite3_step(stmt)) != SQLITE_OK) { - fprintf(stderr, " ! database_plt_clear: expected SQLITE_DONE (%d) but got %d in step: %s\n", - SQLITE_DONE, code, sqlite3_errmsg(db)); + if (sqlite3_step(stmt) != SQLITE_OK) { + fprintf(stderr, " ! database_plt_clear: expected SQLITE_DONE in step: %s\n", + sqlite3_errmsg(db)); goto error; } @@ -145,12 +126,8 @@ database_plt_rename(sqlite3 *db, const char *old_name, const char *new_name) "UPDATE playlist SET name = ? WHERE name = ?;"; sqlite3_stmt *stmt = NULL; bool sta = false; - int code; - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_plt_rename: failed to prepare sqlite3 stmt statement: %s\n", sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_text(stmt, 1, new_name, -1, 0) != SQLITE_OK || sqlite3_bind_text(stmt, 2, old_name, -1, 0) != SQLITE_OK) { @@ -158,9 +135,9 @@ database_plt_rename(sqlite3 *db, const char *old_name, const char *new_name) goto error; } - if ((code = sqlite3_step(stmt)) != SQLITE_OK) { - fprintf(stderr, " ! database_plt_rename: expected SQLITE_DONE (%d) but got %d in step: %s\n", - SQLITE_DONE, code, sqlite3_errmsg(db)); + if (sqlite3_step(stmt) != SQLITE_OK) { + fprintf(stderr, " ! database_plt_rename: expected SQLITE_DONE in step: %s\n", + sqlite3_errmsg(db)); goto error; } @@ -259,10 +236,9 @@ database_plt_add_uri(sqlite3 *db, const char *name, struct lkt_uri_t *uri) " FROM kara, plt_id " " WHERE kara.%s LIKE ? " " ORDER BY RANDOM();"; - char SQL_STMT[1024]; + char SQL_STMT[1024], sta = false; const char *column; sqlite3_stmt *stmt; - int code, sta = false; switch (uri->type) { case uri_type: @@ -287,11 +263,7 @@ database_plt_add_uri(sqlite3 *db, const char *name, struct lkt_uri_t *uri) snprintf(SQL_STMT, 1024, SQL, column); - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_plt_add_uri: failed to prepare sqlite3 stmt statement: %s\n", - sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_text(stmt, 1, name, -1, 0) != SQLITE_OK || sqlite3_bind_text(stmt, 2, uri->value, -1, 0) != SQLITE_OK) { @@ -299,11 +271,9 @@ database_plt_add_uri(sqlite3 *db, const char *name, struct lkt_uri_t *uri) goto error; } - code = sqlite3_step(stmt); - - if (code != SQLITE_DONE) { - fprintf(stderr, " ! database_plt_add_uri: expected SQLITE_DONE (%d) but got %d in step: %s\n", - SQLITE_DONE, code, sqlite3_errmsg(db)); + if (sqlite3_step(stmt) != SQLITE_DONE) { + fprintf(stderr, " ! database_plt_add_uri: expected SQLITE_DONE in step: %s\n", + sqlite3_errmsg(db)); goto error; } diff --git a/src/database/queue.c b/src/database/queue.c index c45973de02d9901952c6ae6c9a0638f6077fe480..b552143b0bea0c4724da03774ad957b8341ba22e 100644 --- a/src/database/queue.c +++ b/src/database/queue.c @@ -61,13 +61,12 @@ database_queue_current_kara(sqlite3 *db, struct kara_metadata *res) " JOIN queue ON queue.kara_id = kara.id" " JOIN queue_state ON queue_state.current = queue.position"; sqlite3_stmt *stmt = 0; - int code = -1; + int ret = false; SQLITE_PREPARE(db, stmt, SQL_STMT, error); memset(res, 0, sizeof(struct kara_metadata)); - code = sqlite3_step(stmt); - if (code == SQLITE_ROW) { + if (sqlite3_step(stmt) == SQLITE_ROW) { strncpy(res->song_name, (const char *) sqlite3_column_text(stmt, 0), LEKTOR_TAG_MAX - 1); strncpy(res->source_name, (const char *) sqlite3_column_text(stmt, 1), LEKTOR_TAG_MAX - 1); strncpy(res->category, (const char *) sqlite3_column_text(stmt, 2), LEKTOR_TAG_MAX - 1); @@ -75,18 +74,16 @@ database_queue_current_kara(sqlite3 *db, struct kara_metadata *res) strncpy(res->author_name, (const char *) sqlite3_column_text(stmt, 4), LEKTOR_TAG_MAX - 1); strncpy(res->song_type, (const char *) sqlite3_column_text(stmt, 5), LEKTOR_TAG_MAX - 1); res->song_number = sqlite3_column_int(stmt, 6); - code = 0; } else { - fprintf(stderr, - " ! database_queue_current_kara: failed, expected SQLITE_ROW (%d), got %d\n", - SQLITE_ROW, - code); - code = -1; + fprintf(stderr, " ! database_queue_current_kara: failed: %s\n", + sqlite3_errmsg(db)); + goto error; } + ret = true; error: sqlite3_finalize(stmt); - return code == 0; + return ret; } static bool @@ -461,7 +458,6 @@ database_queue_prev(sqlite3 *db, char filepath[PATH_MAX]) } } - else if (code == SQLITE_DONE) { fprintf(stderr, " * database_queue_prev: Failed to get previous, no setting current to NULL\n"); goto error; diff --git a/src/database/update.c b/src/database/update.c index 6320bb5a421745e775aed42fdb55072cc0fd4ce0..17a46a12372b1e9887452d7f3d0e680e002b9a25 100644 --- a/src/database/update.c +++ b/src/database/update.c @@ -2,6 +2,7 @@ #define _DEFAULT_SOURCE #include <lektor/database.h> +#include <lektor/macro.h> #include <stdbool.h> #include <sqlite3.h> #include <stdio.h> @@ -43,10 +44,7 @@ database_add_kara(sqlite3 *db, const char *filename) return false; } - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_add_kara: Failed to prepare sqlite3 stmt statement: %s\n", sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if ((sqlite3_bind_text(stmt, 1, data.song_name, -1, 0) != SQLITE_OK) || (sqlite3_bind_text(stmt, 2, data.source_name, -1, 0) != SQLITE_OK) || @@ -63,9 +61,7 @@ database_add_kara(sqlite3 *db, const char *filename) goto error; } - code = sqlite3_step(stmt); - - if (code != SQLITE_DONE) { + if (sqlite3_step(stmt) != SQLITE_DONE) { fprintf(stderr, " ! database_add_kara: expected SQLITE_DONE after execution of stmt statement for kara %s: %s\n", filename, @@ -108,10 +104,7 @@ database_update_add(sqlite3 *db, const char *kara_path, struct kara_metadata *md /* From here we initialize the sqlite stmt. */ - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_update_add: Failed to prepare sqlite3 stmt statement: %s\n", sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if ((sqlite3_bind_text(stmt, 1, mdt->song_name, -1, 0) != SQLITE_OK) || (sqlite3_bind_text(stmt, 2, mdt->source_name, -1, 0) != SQLITE_OK) || @@ -130,13 +123,9 @@ database_update_add(sqlite3 *db, const char *kara_path, struct kara_metadata *md goto error; } - code = sqlite3_step(stmt); - - if (code != SQLITE_DONE) { - fprintf(stderr, - " ! database_add_kara: expected sqlite_done after execution of stmt statement for kara %s: %s\n", - kara_path, - sqlite3_errmsg(db)); + if (sqlite3_step(stmt)!= SQLITE_DONE) { + fprintf(stderr, " ! database_add_kara: expected sqlite_done after execution of stmt " + "statement for kara %s: %s\n", kara_path, sqlite3_errmsg(db)); goto error; } diff --git a/src/database/user.c b/src/database/user.c index 9ac954db857128ab989b9d4ecc10f99880afe2cf..6d5399ab66a028dc9f57b2a2c7c82f42aa4cc36a 100644 --- a/src/database/user.c +++ b/src/database/user.c @@ -1,6 +1,7 @@ #define _POSIX_C_SOURCE 200809L #include <lektor/database.h> +#include <lektor/macro.h> #include <stdio.h> bool @@ -10,11 +11,7 @@ database_user_authentificate(sqlite3 *db, const char *password) sqlite3_stmt *stmt = 0; bool ret = false; - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_user_authentificate: Failed to prepare statement: %s\n", - sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_text(stmt, 1, password, -1, 0) != SQLITE_OK) { fprintf(stderr, " ! database_user_authentificate: Failed to bind password: %s\n", @@ -43,11 +40,7 @@ database_user_add(sqlite3 *db, const char *username, const char *password) sqlite3_stmt *stmt = 0; bool ret = false; - if (sqlite3_prepare_v2(db, SQL_STMT, -1, &stmt, 0) != SQLITE_OK) { - fprintf(stderr, " ! database_user_add: Failed to prepare statement: %s\n", - sqlite3_errmsg(db)); - goto error; - } + SQLITE_PREPARE(db, stmt, SQL_STMT, error); if (sqlite3_bind_text(stmt, 1, username, -1, 0) != SQLITE_OK && sqlite3_bind_text(stmt, 2, password, -1, 0) != SQLITE_OK) {