]> git.deb.at Git - pkg/abook.git/blobdiff - database.h
Initial japanese translation (TAKAHASHI Tamotsu).
[pkg/abook.git] / database.h
index 8676f7162e12144bd2ef9f377815625b3e218236..87228851df824051ad20fe6ea8bc1e37f67e2324 100644 (file)
@@ -11,6 +11,7 @@ enum {
        NAME,
        EMAIL,
        ADDRESS,
+        ADDRESS2,
        CITY,
        STATE,
        ZIP,
@@ -21,14 +22,23 @@ enum {
        MOBILEPHONE,
        NICK,
        URL,
-       NOTES
+       NOTES,
+       CUSTOM1,
+       CUSTOM2,
+       CUSTOM3,
+       CUSTOM4,
+       CUSTOM5,
+       ITEM_FIELDS /* this is the last */
 };
 
-#define LAST_FIELD             NOTES
+#define LAST_FIELD             (ITEM_FIELDS - 1)
 
-#define ITEM_FIELDS            (LAST_FIELD+1)
+#define CUSTOM_MIN             CUSTOM1
+#define CUSTOM_MAX             CUSTOM5
 
-typedef char * list_item[ITEM_FIELDS];
+typedef char *list_item[ITEM_FIELDS];
+
+#define        MAX_FIELDNAME_LEN       21
 
 struct abook_field {
        char *name;
@@ -43,12 +53,10 @@ 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            find_field(const char *field);
 int            parse_database(FILE *in);
 int            write_database(FILE *out, struct db_enumerator e);
 int            load_database(char *filename);
@@ -58,13 +66,15 @@ int         add_item2database(list_item item);
 void           free_list_item(list_item item);
 void           remove_selected_items();
 void           sort_surname();
-void           sort_database();
+void           sort_by_field(int field);
 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);
+int            change_custom_field_name(const char *name, int n);
 
 #define LAST_ITEM      (items - 1)
 
@@ -74,7 +84,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 +97,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