]> git.deb.at Git - pkg/abook.git/blobdiff - database.h
First attempt of the better interface for filters
[pkg/abook.git] / database.h
index 9ab2c0ca3f12212f4739f0289a4256628c0c75fc..8676f7162e12144bd2ef9f377815625b3e218236 100644 (file)
@@ -36,22 +36,35 @@ struct abook_field {
        int tab;
 };
 
+enum {
+       ENUM_ALL,
+       ENUM_SELECTED
+};
+
+struct db_enumerator {
+       int item;
+       int mode; /* boolean */ /* warning: read only */
+};
+
+#define db_enumerate_items(e) \
+       while( -1 != (e.item = real_db_enumerate_items(e)))
+
 int            parse_database(FILE *in);
-int            write_database(FILE *out);
+int            write_database(FILE *out, struct db_enumerator e);
 int            load_database(char *filename);
 int            save_database();
 void           close_database();
 int            add_item2database(list_item item);
 void           free_list_item(list_item item);
-void           remove_items();
+void           remove_selected_items();
 void           sort_surname();
 void           sort_database();
-void           clear_database();
-void           find(int next);
-void           print_number_of_items();
-void           read_database();
 char           *get_surname(char *s);
-void           print_database();
+int            find_item(char *str, int start);
+int            is_selected(int item);
+
+int            real_db_enumerate_items(struct db_enumerator e);
+struct db_enumerator   init_db_enumerator(int mode);
 
 #define LAST_ITEM      (items - 1)