]> git.deb.at Git - pkg/abook.git/blobdiff - database.h
Corrected some references to MAX_EMAILS
[pkg/abook.git] / database.h
index 0c47fd49bda38a7e37df61504f0493024e972ba3..4354c93f82b4004ef0b9cad03b41653cc024d5d5 100644 (file)
@@ -36,8 +36,18 @@ struct abook_field {
        int tab;
 };
 
+enum {
+       ENUM_ALL,
+       ENUM_SELECTED
+};
+
+struct db_enumerator {
+       int item;
+       int mode; /* warning: read only */
+};
+
 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();
@@ -47,9 +57,12 @@ void         remove_selected_items();
 void           sort_surname();
 void           sort_database();
 char           *get_surname(char *s);
-int            find_item(char *str, int start);
+int            find_item(char *str, int start, int search_fields[]);
 int            is_selected(int item);
+int            is_valid_item(int item);
 
+int            real_db_enumerate_items(struct db_enumerator e);
+struct db_enumerator   init_db_enumerator(int mode);
 
 #define LAST_ITEM      (items - 1)
 
@@ -59,7 +72,7 @@ int           is_selected(int item);
        int _i,_j,_k,len; \
        memset(&emails, 0, sizeof(emails) ); \
        len = strlen(database[item][EMAIL]); \
-       for( _i=0,_j=0, _k=0; _i < len && _j < 4; _i++ ) { \
+       for( _i=0,_j=0, _k=0; _i < len && _j < MAX_EMAILS; _i++ ) { \
                if( database[item][EMAIL][_i] ==',' ) { \
                        _j++; \
                        _k = 0; \
@@ -72,4 +85,7 @@ int           is_selected(int item);
 #define have_multiple_emails(item) \
        strchr(database[item][EMAIL], ',')
 
+#define db_enumerate_items(e) \
+       while( -1 != (e.item = real_db_enumerate_items(e)))
+
 #endif