X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=database.h;h=10b31f85a669a1c1f9377ec379d3bca4fa765237;hb=a49a766c6fc0bf053b5843c5addc98cbdb7a043c;hp=8676f7162e12144bd2ef9f377815625b3e218236;hpb=05b0f3753902043fa8476a59c9251ab176675945;p=pkg%2Fabook.git diff --git a/database.h b/database.h index 8676f71..10b31f8 100644 --- a/database.h +++ b/database.h @@ -11,6 +11,7 @@ enum { NAME, EMAIL, ADDRESS, + ADDRESS2, CITY, STATE, ZIP, @@ -21,12 +22,11 @@ enum { MOBILEPHONE, NICK, URL, - NOTES + NOTES, + ITEM_FIELDS /* this is the last */ }; -#define LAST_FIELD NOTES - -#define ITEM_FIELDS (LAST_FIELD+1) +#define LAST_FIELD (ITEM_FIELDS - 1) typedef char * list_item[ITEM_FIELDS]; @@ -43,12 +43,9 @@ enum { struct db_enumerator { int item; - int mode; /* boolean */ /* warning: read only */ + int mode; /* 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, struct db_enumerator e); int load_database(char *filename); @@ -60,8 +57,9 @@ 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); @@ -74,7 +72,7 @@ struct db_enumerator init_db_enumerator(int mode); 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; \ @@ -87,4 +85,7 @@ struct db_enumerator init_db_enumerator(int mode); #define have_multiple_emails(item) \ strchr(database[item][EMAIL], ',') +#define db_enumerate_items(e) \ + while( -1 != (e.item = real_db_enumerate_items(e))) + #endif