From 73f734b7fafdc7ee5ffb0b0c99458ddf709faeba Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Fri, 9 Oct 2009 08:51:36 -0300 Subject: [PATCH] Create more generic function helpers so they can... help! --- helper.c | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/helper.c b/helper.c index 847b356..fd3a083 100644 --- a/helper.c +++ b/helper.c @@ -26,39 +26,48 @@ #include #include -static char * talker_email_query = "select email from auth_user," - "events_speaker where auth_user.id = events_speaker.user_id " - "and events_speaker.id = %d;"; -static char * talker_name_query = "select first_name from auth_user," +static char * talker_user_query = "select %s from auth_user," "events_speaker where auth_user.id = events_speaker.user_id " "and events_speaker.id = %d;"; -static char * get_talker_userfield(sqlite3 *db, char *query, int id) +static char * get_oneliner(sqlite3 *db, char *query, size_t qlen) { sqlite3_stmt *stmt; - char * s; int r; - char *email = NULL; - r = asprintf(&s, query, id); - r = sqlite3_prepare_v2(db, s, r, &stmt, NULL); - free(s); + char *value = NULL; + if (!qlen) + qlen = strlen(query); + r = sqlite3_prepare_v2(db, query, qlen, &stmt, NULL); while (sqlite3_step(stmt) == SQLITE_ROW) { - if (email) - free(email); - email = strdup(sqlite3_column_text(stmt, 0)); + if (value) + free(value); + value = strdup(sqlite3_column_text(stmt, 0)); } sqlite3_finalize(stmt); - return email; + return value; +} + +static char * get_oneliner_field_by_id(sqlite3 *db, char *query, + char *field, int id) +{ + char *s; + int r; + char *value; + r = asprintf(&s, query, field, id); + value = get_oneliner(db, s, r); + free(s); + return value; } char * get_talker_email(sqlite3 *db, int id) { - return get_talker_userfield(db, talker_email_query, id); + return get_oneliner_field_by_id(db, talker_user_query, "email", id); } char * get_talker_name(sqlite3 *db, int id) { - return get_talker_userfield(db, talker_name_query, id); + return get_oneliner_field_by_id(db, talker_user_query, "first_name", + id); } -- 2.20.1