#include "xmalloc.h"
#include <assert.h>
-extern int items;
extern abook_field_list *fields_list;
extern int fields_count;
{
int filter;
char *filename;
- int tmp = items;
+ int tmp = db_n_items();
import_screen();
if(i_read_file(filename, i_filters[filter].func ))
statusline_msg(_("Error occured while opening the file"));
- else if(tmp == items)
+ else if(tmp == db_n_items())
statusline_msg(_("File does not seem to be a valid addressbook"));
refresh_screen();
import_file(char filtname[FILTNAME_LEN], char *filename)
{
int i;
- int tmp = items;
+ int tmp = db_n_items();
int ret = 0;
for(i=0;; i++) {
} else
ret = i_read_file(filename, i_filters[i].func);
- if(tmp == items)
+ if(tmp == db_n_items())
ret = 1;
return ret;
static int
html_export_database(FILE *out, struct db_enumerator e)
{
- char tmp[MAX_EMAILSTR_LEN];
+ char tmp[MAX_EMAILSTR_LEN], *emails;
int extra_column;
- if(items < 1)
+ if(list_is_empty())
return 2;
extra_column = init_extra_field(STR_EXTRA_COLUMN);
else
fprintf(out, "<tr>\n<td>%s</td>\n", db_name_get(e.item));
- fprintf(out, "<td>%s</td>\n", db_email_get(e.item));
+ emails = db_email_get(e.item);
+ fprintf(out, "<td>%s</td>\n", emails);
+ free(emails);
if(extra_column >= 0)
fprintf(out, "<td>%s</td>\n",
safe_str(db_fget_byid(e.item, extra_column)));
{
int i,j;
- for(i=0,j=0; j < (int)strlen(buf); i++, j++)
+ for(i = 0,j = 0; j < (int)strlen(buf); i++, j++)
buf[i] = buf[j] == '\n' ? buf[++j] : buf[j];
}
if(s == NULL || *s != '(')
return;
- for(i=0; s[i]; i++ )
- s[i] = s[i+1];
+ for(i = 0; s[i]; i++)
+ s[i] = s[i + 1];
if( ( tmp = strchr(s,')')) )
- *tmp=0;
+ *tmp = '\0';
for(i = 1; ( tmp = strchr(s, ',') ) != NULL ; i++, s = tmp + 1)
if(i > MAX_LIST_ITEMS - 1) {
- *tmp = 0;
+ *tmp = '\0';
break;
}
static int
pine_export_database(FILE *out, struct db_enumerator e)
{
+ char *emails;
+
db_enumerate_items(e) {
- fprintf(out, have_multiple_emails(e.item) ?
+ emails = db_email_get(e.item);
+ fprintf(out, strchr(emails, ',') /* multiple addresses? */ ?
"%s\t%s\t(%s)\t\t%s\n" : "%s\t%s\t%s\t\t%s\n",
safe_str(db_fget(e.item, NICK)),
safe_str(db_name_get(e.item)),
- safe_str(db_email_get(e.item)),
+ emails,
safe_str(db_fget(e.item, NOTES))
);
+ free(emails);
}
return 0;
gcrd_export_database(FILE *out, struct db_enumerator e)
{
int j;
- char *name;
+ char *name, *tmp;
abook_list *emails, *em;
db_enumerate_items(e) {
- fprintf(out, "BEGIN:VCARD\nFN:%s\n",
+ fprintf(out, "BEGIN:VCARD\r\nFN:%s\r\n",
safe_str(db_name_get(e.item)));
name = get_surname(db_name_get(e.item));
if((db_name_get(e.item))[j] == ' ')
break;
}
- fprintf(out, "N:%s;%.*s\n",
+ fprintf(out, "N:%s;%.*s\r\n",
safe_str(name),
j,
safe_str(db_name_get(e.item))
free(name);
if(db_fget(e.item, ADDRESS))
- fprintf(out, "ADR:;;%s;%s;%s;%s;%s;%s\n",
+ fprintf(out, "ADR:;;%s;%s;%s;%s;%s;%s\r\n",
safe_str(db_fget(e.item, ADDRESS)),
safe_str(db_fget(e.item, ADDRESS2)),
safe_str(db_fget(e.item, CITY)),
);
if(db_fget(e.item, PHONE))
- fprintf(out, "TEL;HOME:%s\n",
+ fprintf(out, "TEL;HOME:%s\r\n",
db_fget(e.item, PHONE));
if(db_fget(e.item, WORKPHONE))
- fprintf(out, "TEL;WORK:%s\n",
+ fprintf(out, "TEL;WORK:%s\r\n",
db_fget(e.item, WORKPHONE));
if(db_fget(e.item, FAX))
- fprintf(out, "TEL;FAX:%s\n",
+ fprintf(out, "TEL;FAX:%s\r\n",
db_fget(e.item, FAX));
if(db_fget(e.item, MOBILEPHONE))
- fprintf(out, "TEL;CELL:%s\n",
+ fprintf(out, "TEL;CELL:%s\r\n",
db_fget(e.item, MOBILEPHONE));
- if(*db_email_get(e.item)) {
- emails = csv_to_abook_list(db_email_get(e.item));
+ tmp = db_email_get(e.item);
+ if(*tmp) {
+ emails = csv_to_abook_list(tmp);
for(em = emails; em; em = em->next)
- fprintf(out, "EMAIL;INTERNET:%s\n", em->data);
+ fprintf(out, "EMAIL;INTERNET:%s\r\n", em->data);
abook_list_free(&emails);
}
+ free(tmp);
if(db_fget(e.item, NOTES))
- fprintf(out, "NOTE:%s\n",
+ fprintf(out, "NOTE:%s\r\n",
db_fget(e.item, NOTES));
if(db_fget(e.item, URL))
- fprintf(out, "URL:%s\n",
+ fprintf(out, "URL:%s\r\n",
db_fget(e.item, URL));
- fprintf(out, "END:VCARD\n\n");
+ fprintf(out, "END:VCARD\r\n\r\n");
}
{
abook_list *emails, *em;
int j;
- char *realname = get_real_name(), *str = NULL;
+ char *realname = get_real_name(), *str = NULL, *tmp;
char *style = opt_get_str(STR_ADDRESS_STYLE);
fprintf(out,
fprintf(out, "\n(%s)", db_fget(e.item, NICK));
fprintf(out, "\n");
- if(*db_email_get(e.item)) {
- emails = csv_to_abook_list(db_email_get(e.item));
+ tmp = db_email_get(e.item);
+ if(*tmp) {
+ emails = csv_to_abook_list(tmp);
fprintf(out, "\n");
for(em = emails; em; em = em->next)
abook_list_free(&emails);
}
+ free(tmp);
/* Print address */
if(db_fget(e.item, ADDRESS)) {
if(!safe_strcmp(style, "us")) /* US like */
fprintf(out, "# This is a generated file made by abook for the Spruce e-mail client.\n\n");
db_enumerate_items(e) {
- if(strcmp(safe_str(db_email_get(e.item)), "")) {
- get_first_email(email, e.item);
+ get_first_email(email, e.item);
+ if(strcmp(email, "")) {
fprintf(out, "# Address %d\nName: %s\nEmail: %s\nMemo: %s\n\n",
e.item,
db_name_get(e.item),
static int
wl_export_database(FILE *out, struct db_enumerator e)
{
- abook_list *emails;
+ char email[MAX_EMAIL_LEN];
fprintf(out, "# Wanderlust address book written by %s\n\n", PACKAGE);
db_enumerate_items(e) {
- if((emails = csv_to_abook_list(db_email_get(e.item))) != NULL) {
+ get_first_email(email, e.item);
+ if(*email) {
fprintf(out,
"%s\t\"%s\"\t\"%s\"\n",
- emails->data,
+ email,
safe_str(db_fget(e.item, NICK)),
safe_str(db_name_get(e.item))
);
}
- abook_list_free(&emails);
}
fprintf (out, "\n# End of address book file.\n");