X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=edit.c;fp=edit.c;h=412b38562a285235925723bb78b06dcf464aa42b;hb=216cf3ed9e60bea94d777029eb3b5e44c65f1b68;hp=3da07caba0880060e08b2fec3d85d2a65ba3eb4a;hpb=caed77e86edc930a7133302c13bf008fc1cb83cf;p=pkg%2Fabook.git diff --git a/edit.c b/edit.c index 3da07ca..412b385 100644 --- a/edit.c +++ b/edit.c @@ -76,29 +76,33 @@ editor_tab(const int tab) void get_first_email(char *str, int item) { - char *tmp; + char *tmp, *emails = db_email_get(item); - if(!db_email_get(item)) { + if(!*emails) { *str = 0; return; } - strncpy(str, db_email_get(item), MAX_EMAIL_LEN); + strncpy(str, emails, MAX_EMAIL_LEN); + free(emails); if( (tmp = strchr(str, ',')) ) *tmp = 0; else str[MAX_EMAIL_LEN - 1] = 0; } +/* This only rolls emails from the 'email' field, not emails from any + * field of type FIELD_EMAILS. + * TODO: expand to ask for which field to roll if several are present? */ static void roll_emails(int item, enum rotate_dir dir) { - abook_list *emails = csv_to_abook_list(db_email_get(item)); + abook_list *emails = csv_to_abook_list(db_fget(item, EMAIL)); if(!emails) return; - free(db_email_get(item)); + free(db_fget(item, EMAIL)); abook_list_rotate(&emails, dir); db_fput(item, EMAIL, abook_list_to_csv(emails)); abook_list_free(&emails); @@ -175,7 +179,7 @@ print_editor_header(int item) get_first_email(email, item); - if(*db_email_get(item)) + if(*email) snprintf(header, EDITW_COLS, "%s <%s>", db_name_get(item), email);