From a50efb6ed97f69ad67f2a337629ba62cd804f1d8 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Tue, 9 Jun 2015 19:01:24 +0200 Subject: [PATCH] Create database_info_file_init --- database_info.c | 29 +++++++++++++++++++++++++++++ database_info.h | 3 +++ 2 files changed, 32 insertions(+) diff --git a/database_info.c b/database_info.c index b64ab33ad9..94f2ebefcf 100644 --- a/database_info.c +++ b/database_info.c @@ -369,6 +369,35 @@ error: return NULL; } +database_info_handle_t *database_info_file_init(const char *path, + enum database_type type) +{ + union string_list_elem_attr attr = {0}; + database_info_handle_t *db = (database_info_handle_t*) + calloc(1, sizeof(*db)); + + if (!db) + return NULL; + + db->list = string_list_new(); + + if (!db->list) + goto error; + + string_list_append(db->list, path, attr); + + db->list_ptr = 0; + db->status = DATABASE_STATUS_ITERATE; + db->type = type; + + return db; + +error: + if (db) + free(db); + return NULL; +} + void database_info_free(database_info_handle_t *db) { if (!db) diff --git a/database_info.h b/database_info.h index 2c8c72bb88..a0b3bd0462 100644 --- a/database_info.h +++ b/database_info.h @@ -104,6 +104,9 @@ void database_info_list_free(database_info_list_t *list); database_info_handle_t *database_info_dir_init(const char *dir, enum database_type type); +database_info_handle_t *database_info_file_init(const char *path, + enum database_type type); + void database_info_free(database_info_handle_t *handle); int database_info_build_query(