]> git.deb.at Git - pkg/abook.git/blobdiff - database.c
Fixed erroneous boundary.
[pkg/abook.git] / database.c
index bd8877164e61675b85f3d3b4ca3749797d212ed6..729db926bb922ca214f210f0e71b46fe85388e91 100644 (file)
@@ -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)