X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=database.c;h=729db926bb922ca214f210f0e71b46fe85388e91;hb=a7b46a66b2265d69776ec28d9f643eb4f1506439;hp=bd8877164e61675b85f3d3b4ca3749797d212ed6;hpb=409a820589a0453197e0970e7048b82ad412c4c3;p=pkg%2Fabook.git diff --git a/database.c b/database.c index bd88771..729db92 100644 --- a/database.c +++ b/database.c @@ -26,9 +26,10 @@ abook_field_list *fields_list = NULL; int fields_count = 0; list_item *database = NULL; -int items = 0; +static int items = 0; #define ITEM_SIZE (fields_count * sizeof(char *)) +#define LAST_ITEM (items - 1) #define INITIAL_LIST_CAPACITY 30 static int list_capacity = 0; @@ -202,9 +203,11 @@ declare_unknown_field(char *key) if(!database) return; - for(i = 0; i < fields_count; i++) - if(database[i]) + for(i = 0; i < items; i++) + if(database[i]) { database[i] = xrealloc(database[i], ITEM_SIZE); + database[i][fields_count - 1] = NULL; + } } /* @@ -660,6 +663,17 @@ is_valid_item(int item) return item <= LAST_ITEM && item >= 0; } +int +last_item() +{ + return LAST_ITEM; +} + +int +db_n_items() +{ + return items; +} int real_db_enumerate_items(struct db_enumerator e)