From fed44e95b3c4bc74c8bd96eaf6f08bc6ad01ed55 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 12 Dec 2014 13:47:57 +0100 Subject: sticker/Song: add enum StickerOperator to sticker_song_find() --- src/sticker/StickerDatabase.cxx | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/sticker/StickerDatabase.cxx') diff --git a/src/sticker/StickerDatabase.cxx b/src/sticker/StickerDatabase.cxx index e1e5d76ab..3c1245a6e 100644 --- a/src/sticker/StickerDatabase.cxx +++ b/src/sticker/StickerDatabase.cxx @@ -370,6 +370,7 @@ sticker_load(const char *type, const char *uri, Error &error) static sqlite3_stmt * BindFind(const char *type, const char *base_uri, const char *name, + StickerOperator op, const char *value, Error &error) { assert(type != nullptr); @@ -378,12 +379,21 @@ BindFind(const char *type, const char *base_uri, const char *name, if (base_uri == nullptr) base_uri = ""; - return BindAllOrNull(error, sticker_stmt[STICKER_SQL_FIND], - type, base_uri, name); + switch (op) { + case StickerOperator::EXISTS: + return BindAllOrNull(error, sticker_stmt[STICKER_SQL_FIND], + type, base_uri, name); + } + + (void)value; + + assert(false); + gcc_unreachable(); } bool sticker_find(const char *type, const char *base_uri, const char *name, + StickerOperator op, const char *value, void (*func)(const char *uri, const char *value, void *user_data), void *user_data, @@ -392,7 +402,8 @@ sticker_find(const char *type, const char *base_uri, const char *name, assert(func != nullptr); assert(sticker_enabled()); - sqlite3_stmt *const stmt = BindFind(type, base_uri, name, error); + sqlite3_stmt *const stmt = BindFind(type, base_uri, name, op, value, + error); if (stmt == nullptr) return false; -- cgit v1.2.3