]> git.deb.at Git - pkg/abook.git/blobdiff - filter.c
Imported Upstream version 0.5.4
[pkg/abook.git] / filter.c
index 9f62171f0f93e4ad122e63494fea928fcb4b7af1..9549017727ec0d0c7f1aa26770425180af014347 100644 (file)
--- a/filter.c
+++ b/filter.c
@@ -1,6 +1,6 @@
 
 /*
- * $Id: filter.c,v 1.31 2004/06/30 19:48:28 jheinonen Exp $
+ * $Id: filter.c,v 1.38 2005/08/13 14:10:57 jheinonen Exp $
  *
  * by JH <jheinonen@users.sourceforge.net>
  *
@@ -22,6 +22,7 @@
 #include "list.h"
 #include "misc.h"
 #include "options.h"
+#include "xmalloc.h"
 #include <assert.h>
 
 extern int items;
@@ -96,14 +97,14 @@ void
 print_filters()
 {
        int i;
-       
+
        puts("input:");
        for(i=0; *i_filters[i].filtname ; i++)
                printf("\t%s\t%s\n", i_filters[i].filtname,
                        i_filters[i].desc);
 
        putchar('\n');
-       
+
        puts("output:");
        for(i=0; *e_filters[i].filtname ; i++)
                printf("\t%s\t%s\n", e_filters[i].filtname,
@@ -144,13 +145,13 @@ get_real_name()
 
        pwent = getpwnam(username);
 
-       if((tmp = strdup(pwent->pw_gecos)) == NULL)
-               return strdup(username);
+       if((tmp = xstrdup(pwent->pw_gecos)) == NULL)
+               return xstrdup(username);
 
        rtn = sscanf(pwent->pw_gecos, "%[^,]", tmp);
        if (rtn == EOF || rtn == 0) {
                free(tmp);
-               return strdup(username);
+               return xstrdup(username);
        } else
                return tmp;
 }
@@ -158,21 +159,21 @@ get_real_name()
 /*
  * import
  */
-       
+
 static int             i_read_file(char *filename, int (*func) (FILE *in));
 
 static void
 import_screen()
 {
        int i;
-       
+
        clear();
 
        refresh_statusline();
        headerline("import database");
 
        mvaddstr(3, 1, "please select a filter");
-       
+
 
        for(i=0; *i_filters[i].filtname ; i++)
                mvprintw(5 + i, 6, "%c -\t%s\t%s\n", 'a' + i,
@@ -190,27 +191,27 @@ import_database()
        int tmp = items;
 
        import_screen();
-       
+
        filter = getch() - 'a';
        if(filter == 'x' - 'a' ||
                filter >= number_of_input_filters() || filter < 0) {
                refresh_screen();
                return 1;
        }
-       
+
        mvaddstr(5+filter, 2, "->");
-       
+
        filename = ask_filename("Filename: ");
-       if( !filename ) {
+       if(!filename) {
                refresh_screen();
                return 2;
        }
-               
-       if(  i_read_file(filename, i_filters[filter].func ) )
+
+       if(i_read_file(filename, i_filters[filter].func ))
                statusline_msg("Error occured while opening the file");
-       else if( tmp == items )
+       else if(tmp == items)
                statusline_msg("Hmm.., file seems not to be a valid file");
-       
+
        refresh_screen();
        free(filename);
 
@@ -225,14 +226,14 @@ i_read_file(char *filename, int (*func) (FILE *in))
        FILE *in;
        int ret = 0;
 
-       if( ( in = abook_fopen( filename, "r" ) ) == NULL )
+       if( (in = abook_fopen( filename, "r" )) == NULL )
                return 1;
 
        ret = (*func) (in);
 
        fclose(in);
 
-       return ret;     
+       return ret;
 }
 
 int
@@ -243,30 +244,30 @@ import_file(char filtname[FILTNAME_LEN], char *filename)
        int ret = 0;
 
        for(i=0;; i++) {
-               if( ! strncasecmp(i_filters[i].filtname, filtname,
+               if(! strncasecmp(i_filters[i].filtname, filtname,
                                        FILTNAME_LEN) )
                        break;
-               if( ! *i_filters[i].filtname ) {
+               if(! *i_filters[i].filtname) {
                        i = -1;
                        break;
                }
        }
 
-       if( i<0 )
+       if(i < 0)
                return -1;
 
-       if( !strcmp(filename, "-") ) {
+       if(!strcmp(filename, "-")) {
                struct stat s;
-               if( (fstat(fileno(stdin), &s)) == -1 || S_ISDIR(s.st_mode))
+               if((fstat(fileno(stdin), &s)) == -1 || S_ISDIR(s.st_mode))
                        ret = 1;
                else
                        ret = (*i_filters[i].func) (stdin);
        } else
                ret =  i_read_file(filename, i_filters[i].func);
-       
-       if( tmp == items )
+
+       if(tmp == items)
                ret = 1;
-       
+
        return ret;
 }
 
@@ -281,7 +282,7 @@ static void
 export_screen()
 {
        int i;
-       
+
        clear();
 
 
@@ -289,9 +290,9 @@ export_screen()
        headerline("export database");
 
        mvaddstr(3, 1, "please select a filter");
-       
 
-       for(i=0; *e_filters[i].filtname ; i++)
+
+       for(i = 0; *e_filters[i].filtname ; i++)
                mvprintw(5 + i, 6, "%c -\t%s\t%s\n", 'a' + i,
                        e_filters[i].filtname,
                        e_filters[i].desc);
@@ -307,17 +308,17 @@ export_database()
        char *filename;
 
        export_screen();
-       
+
        filter = getch() - 'a';
        if(filter == 'x' - 'a' ||
                filter >= number_of_output_filters() || filter < 0) {
                refresh_screen();
                return 1;
        }
-       
+
        mvaddstr(5+filter, 2, "->");
 
-       if( selected_items() ) {
+       if(selected_items()) {
                statusline_addstr("Export All/Selected/Cancel (A/s/c)");
                switch( tolower(getch()) ) {
                        case 's':
@@ -329,16 +330,16 @@ export_database()
                }
                clear_statusline();
        }
-       
+
        filename = ask_filename("Filename: ");
-       if( !filename ) {
+       if(!filename) {
                refresh_screen();
                return 2;
        }
-       
-       if(  e_write_file(filename, e_filters[filter].func, enum_mode ) )
+
+       if( e_write_file(filename, e_filters[filter].func, enum_mode))
                statusline_msg("Error occured while exporting");
-       
+
        refresh_screen();
        free(filename);
 
@@ -353,16 +354,16 @@ e_write_file(char *filename, int (*func) (FILE *in, struct db_enumerator e),
        int ret = 0;
        struct db_enumerator enumerator = init_db_enumerator(mode);
 
-       if( (out = fopen(filename, "a")) == NULL )
+       if((out = fopen(filename, "a")) == NULL)
                return 1;
 
-       if( ftell(out) )
+       if(ftell(out))
                return 1;
 
        ret = (*func) (out, enumerator);
-       
+
        fclose(out);
-       
+
        return ret;
 }
 
@@ -373,10 +374,10 @@ fexport(char filtname[FILTNAME_LEN], FILE *handle, int enum_mode)
        struct db_enumerator e = init_db_enumerator(enum_mode);
 
        for(i=0;; i++) {
-               if( ! strncasecmp(e_filters[i].filtname, filtname,
-                                       FILTNAME_LEN) )
+               if(!strncasecmp(e_filters[i].filtname, filtname,
+                                       FILTNAME_LEN))
                        break;
-               if( ! *e_filters[i].filtname ) {
+               if(!*e_filters[i].filtname) {
                        i = -1;
                        break;
                }
@@ -394,21 +395,21 @@ export_file(char filtname[FILTNAME_LEN], char *filename)
        int i;
        int ret = 0;
        struct db_enumerator e = init_db_enumerator(mode);
-       
+
        for(i=0;; i++) {
-               if( ! strncasecmp(e_filters[i].filtname, filtname,
-                                       FILTNAME_LEN) )
+               if(!strncasecmp(e_filters[i].filtname, filtname,
+                                       FILTNAME_LEN))
                        break;
-               if( ! *e_filters[i].filtname ) {
+               if(!*e_filters[i].filtname) {
                        i = -1;
                        break;
                }
        }
 
-       if( i<0 )
+       if(i < 0)
                return -1;
 
-       if( !strcmp(filename, "-") )
+       if(!strcmp(filename, "-"))
                ret = (e_filters[i].func) (stdout, e);
        else
                ret =  e_write_file(filename, e_filters[i].func, mode);
@@ -430,10 +431,10 @@ static void       ldif_fix_string(char *str);
 
 #define        LDIF_ITEM_FIELDS        16
 
-typedef char*  ldif_item[LDIF_ITEM_FIELDS];
+typedef char *ldif_item[LDIF_ITEM_FIELDS];
 
 static ldif_item ldif_field_names = {
-       "cn",   
+       "cn",
        "mail",
        "streetaddress",
        "streetaddress2",
@@ -455,7 +456,7 @@ static int ldif_conv_table[LDIF_ITEM_FIELDS] = {
        NAME,           /* "cn" */
        EMAIL,          /* "mail" */
        ADDRESS,        /* "streetaddress" */
-       ADDRESS2,       /* "streetaddress2" */     
+       ADDRESS2,       /* "streetaddress2" */
         CITY,          /* "locality" */
        STATE,          /* "st" */
        ZIP,            /* "postalcode" */
@@ -471,7 +472,7 @@ static int ldif_conv_table[LDIF_ITEM_FIELDS] = {
 };
 
 
-static char * 
+static char *
 ldif_read_line(FILE *in)
 {
        char *buf = NULL;
@@ -484,10 +485,10 @@ ldif_read_line(FILE *in)
 
                pos = ftell(in);
                line = getaline(in);
-               
-               if( feof(in) || !line )
+
+               if(feof(in) || !line)
                        break;
-               
+
                if(i == 1) {
                        buf = line;
                        continue;
@@ -518,27 +519,27 @@ ldif_read_line(FILE *in)
 }
 
 static void
-ldif_add_item(ldif_item ldif_item)
+ldif_add_item(ldif_item li)
 {
        list_item abook_item;
        int i;
 
        memset(abook_item, 0, sizeof(abook_item));
 
-       if( !ldif_item[LDIF_ITEM_FIELDS -1] )
+       if(!li[LDIF_ITEM_FIELDS -1])
                goto bail_out;
 
 
        for(i=0; i < LDIF_ITEM_FIELDS; i++) {
-               if(ldif_conv_table[i] >= 0 && ldif_item[i] && *ldif_item[i] )
-                       abook_item[ldif_conv_table[i]] = strdup(ldif_item[i]);
+               if(ldif_conv_table[i] >= 0 && li[i] && *li[i])
+                       abook_item[ldif_conv_table[i]] = xstrdup(li[i]);
        }
 
        add_item2database(abook_item);
 
 bail_out:
        for(i=0; i < LDIF_ITEM_FIELDS; i++)
-               my_free(ldif_item[i]);
+               xfree(li[i]);
 
 }
 
@@ -547,19 +548,19 @@ ldif_convert(ldif_item item, char *type, char *value)
 {
        int i;
 
-       if( !strcmp(type, "dn") ) {
+       if(!strcmp(type, "dn")) {
                ldif_add_item(item);
                return;
        }
 
        for(i=0; i < LDIF_ITEM_FIELDS; i++) {
-               if( !safe_strcmp(ldif_field_names[i], type) && *value ) {
-                       if( i == LDIF_ITEM_FIELDS -1) /* this is a dirty hack */
-                               if( safe_strcmp("person", value))
+               if(!safe_strcmp(ldif_field_names[i], type) && *value) {
+                       if(i == LDIF_ITEM_FIELDS - 1) /* this is a dirty hack */
+                               if(safe_strcmp("person", value))
                                        break;
                        if(item[i])
-                               my_free(item[i]);
-                       item[i] = strdup(value);
+                               xfree(item[i]);
+                       item[i] = xstrdup(value);
                }
        }
 }
@@ -575,11 +576,11 @@ ldif_parse_file(FILE *handle)
        memset(item, 0, sizeof(item));
 
        do {
-               if( ! (line = ldif_read_line(handle)) )
+               if( !(line = ldif_read_line(handle)) )
                        continue;
 
-               if( -1 == ( str_parse_line(line, &type, &value, &vlen)) ) {
-                       my_free(line);
+               if(-1 == (str_parse_line(line, &type, &value, &vlen))) {
+                       xfree(line);
                        continue; /* just skip the errors */
                }
 
@@ -587,7 +588,7 @@ ldif_parse_file(FILE *handle)
 
                ldif_convert(item, type, value);
 
-               my_free(line);
+               xfree(line);
        } while ( !feof(handle) );
 
        ldif_convert(item, "dn", "");
@@ -630,7 +631,7 @@ mutt_read_line(FILE *in, char **alias, char **rest)
        while( ISSPACE(*ptr) )
                ptr++;
 
-       if( strncmp("alias", ptr, 5) ) {
+       if(strncmp("alias", ptr, 5)) {
                free(line);
                return 1;
        }
@@ -645,21 +646,17 @@ mutt_read_line(FILE *in, char **alias, char **rest)
        while( ! ISSPACE(*ptr) )
                ptr++;
 
-       /* includes also the trailing zero */
-       alias_len = (size_t)(ptr - tmp + 1);
+       alias_len = (size_t)(ptr - tmp);
 
-       if( (*alias = (char *)malloc(alias_len)) == NULL) {
-               free(line);
-               return 1;
-       }
+       *alias = xmalloc_inc(alias_len, 1);
 
-       strncpy(*alias, tmp, alias_len - 1);
-       *(*alias + alias_len - 1) = 0;
+       strncpy(*alias, tmp, alias_len);
+       *(*alias + alias_len) = 0;
 
        while(ISSPACE(*ptr))
                ptr++;
 
-       *rest = strdup(ptr);    
+       *rest = xstrdup(ptr);
 
        free(line);
        return 0;
@@ -725,7 +722,7 @@ mutt_parse_email(list_item item)
                                free(item[EMAIL]);
                                item[EMAIL] = tmp;
                        } else {
-                               my_free(email);
+                               xfree(email);
                        }
                }
        }
@@ -740,11 +737,11 @@ mutt_parse_file(FILE *in)
        for(;;) {
                memset(item, 0, sizeof(item));
 
-               if( !mutt_read_line(in, &item[NICK],
+               if(!mutt_read_line(in, &item[NICK],
                                &item[NAME]) )
                        mutt_parse_email(item);
 
-               if( feof(in) ) {
+               if(feof(in)) {
                        free_list_item(item);
                        break;
                }
@@ -792,7 +789,7 @@ ldif_export_database(FILE *out, struct db_enumerator e)
                ldif_fput_type_and_value(out, "dn", tmp);
                free(tmp);
 
-               for(j=0; j < LDIF_ITEM_FIELDS; j++) {
+               for(j = 0; j < LDIF_ITEM_FIELDS; j++) {
                        if(ldif_conv_table[j] >= 0) {
                                if(ldif_conv_table[j] == EMAIL)
                                        ldif_fput_type_and_value(out,
@@ -829,7 +826,7 @@ html_export_database(FILE *out, struct db_enumerator e)
 {
        char tmp[MAX_EMAILSTR_LEN];
 
-       if( items < 1 )
+       if(items < 1)
                return 2;
 
        extra_column = (extra_column > 2 && extra_column < ITEM_FIELDS) ?
@@ -883,7 +880,7 @@ html_export_write_tail(FILE *out)
        fprintf(out, "\n</table>\n");
        fprintf(out, "\n</body>\n</html>\n");
 }
-       
+
 /*
  * end of html export filter
  */
@@ -910,7 +907,7 @@ pine_convert_emails(char *s)
        int i;
        char *tmp;
 
-       if( s == NULL || *s != '(' )
+       if(s == NULL || *s != '(')
                return;
 
        for(i=0; s[i]; i++ )
@@ -919,10 +916,10 @@ pine_convert_emails(char *s)
        if( ( tmp = strchr(s,')')) )
                *tmp=0;
 
-       for(i=1; ( tmp = strchr(s, ',') ) != NULL ; i++, s=tmp+1 )
-               if( i > MAX_EMAILS - 1 ) {
+       for(i = 1; ( tmp = strchr(s, ',') ) != NULL ; i++, s = tmp + 1)
+               if(i > MAX_EMAILS - 1) {
                        *tmp = 0;
-                       break;  
+                       break;
                }
 
 }
@@ -937,10 +934,10 @@ pine_parse_buf(char *buf)
        int i, len, last;
        int pine_conv_table[]= {NICK, NAME, EMAIL, -1, NOTES};
 
-       memset(&item, 0, sizeof(item) );
-       
+       memset(&item, 0, sizeof(item));
+
        for(i=0, last=0; !last ; i++) {
-               if( ! (end = strchr(start, '\t')) )
+               if( !(end = strchr(start, '\t')) )
                        last=1;
 
                len = last ? strlen(start) : (int) (end-start);
@@ -951,7 +948,7 @@ pine_parse_buf(char *buf)
                        strncpy(tmp, start, len);
                        tmp[len] = 0;
                        if(*tmp)
-                               item[pine_conv_table[i]] = strdup(tmp);
+                               item[pine_conv_table[i]] = xstrdup(tmp);
                }
                start = end + 1;
        }
@@ -971,32 +968,32 @@ pine_parse_file(FILE *in)
        char *ptr;
        int i;
 
-       fgets(line, LINESIZE, in);      
+       fgets(line, LINESIZE, in);
 
        while(!feof(in)) {
                for(i = 2;;i++) {
-                       buf = (char *) realloc(buf, i*LINESIZE);
+                       buf = xrealloc(buf, i*LINESIZE);
                        if(i == 2)
                                strcpy(buf, line);
                        fgets(line, LINESIZE, in);
                        ptr=(char *)&line;
-                       if(*ptr != ' ' || feof(in) )
+                       if(*ptr != ' ' || feof(in))
                                break;
                        else
-                               while( *ptr == ' ')
+                               while(*ptr == ' ')
                                        ptr++;
 
                        strcat(buf, ptr);
                }
-               if( *buf == '#' ) {
-                       my_free(buf);
+               if(*buf == '#') {
+                       xfree(buf);
                        continue;
                }
                pine_fixbuf(buf);
 
                pine_parse_buf(buf);
 
-               my_free(buf);
+               xfree(buf);
        }
 
        return 0;
@@ -1041,9 +1038,9 @@ pine_export_database(FILE *out, struct db_enumerator e)
 
 /* FIXME
  * these files should be parsed according to a certain
- * lay out, or the default if layout is not given, at 
+ * lay out, or the default if layout is not given, at
  * the moment only default is done...
- */ 
+ */
 
 #define CSV_COMMENT_CHAR       '#'
 
@@ -1084,13 +1081,13 @@ csv_convert_emails(char *s)
        int i;
        char *tmp;
 
-       if( s == NULL )
+       if(s == NULL)
                return;
 
-       for(i=1; ( tmp = strchr(s, ',') ) != NULL ; i++, s = tmp + 1 )
-               if( i > MAX_EMAILS - 1 ) {
+       for(i = 1; ( tmp = strchr(s, ',') ) != NULL ; i++, s = tmp + 1 )
+               if(i > MAX_EMAILS - 1) {
                        *tmp = 0;
-                       break;  
+                       break;
                }
 
 }
@@ -1101,24 +1098,24 @@ csv_remove_quotes(char *s)
        char *copy, *trimmed;
        int len;
 
-       copy = trimmed = strdup(s);
+       copy = trimmed = xstrdup(s);
        strtrim(trimmed);
 
        len = strlen(trimmed);
        if(trimmed[len - 1] == '\"' && *trimmed == '\"') {
                if(len < 3) {
-                       my_free(copy);
+                       xfree(copy);
                        return NULL;
                }
                trimmed[len - 1] = 0;
                trimmed++;
-               trimmed = strdup(trimmed);
+               trimmed = xstrdup(trimmed);
                free(copy);
                return trimmed;
        }
 
-       my_free(copy);
-       return strdup(s);
+       xfree(copy);
+       return xstrdup(s);
 }
 
 static void
@@ -1136,7 +1133,7 @@ csv_store_field(list_item item, char *s, int field)
                        && csv_conv_table[field] >= 0) {
                item[csv_conv_table[field]] = newstr;
        } else {
-               my_free(newstr);
+               xfree(newstr);
        }
 }
 
@@ -1155,7 +1152,7 @@ allcsv_store_field(list_item item, char *s, int field)
                        && allcsv_conv_table[field] >= 0) {
                item[allcsv_conv_table[field]] = newstr;
        } else {
-               my_free(newstr);
+               xfree(newstr);
        }
 }
 
@@ -1272,7 +1269,7 @@ csv_parse_file(FILE *in)
                if(line && *line && *line != CSV_COMMENT_CHAR)
                        csv_parse_line(line);
 
-               my_free(line);
+               xfree(line);
        }
 
        return 0;
@@ -1289,7 +1286,7 @@ allcsv_parse_file(FILE *in)
                if(line && *line && *line != CSV_COMMENT_CHAR)
                        allcsv_parse_line(line);
 
-               my_free(line);
+               xfree(line);
        }
 
        return 0;
@@ -1353,7 +1350,7 @@ csv_export_database(FILE *out, struct db_enumerator e)
        };
 
        csv_export_common(out, e, csv_export_fields, NULL);
-       
+
        return 0;
 }
 
@@ -1411,7 +1408,7 @@ allcsv_export_database(FILE *out, struct db_enumerator e)
        fprintf(out, "\"CUSTOM5\"\n");
 
        csv_export_common(out, e, allcsv_export_fields, NULL);
-       
+
        return 0;
 }
 
@@ -1423,7 +1420,7 @@ allcsv_export_database(FILE *out, struct db_enumerator e)
 #define PALM_CSV_END   CSV_SPECIAL(1)
 #define PALM_CSV_CAT   CSV_SPECIAL(2)
 
-static void 
+static void
 palm_split_and_write_name(FILE *out, char *name)
 {
        char *p;
@@ -1442,7 +1439,7 @@ palm_split_and_write_name(FILE *out, char *name)
        }
 }
 
-static void 
+static void
 palm_csv_handle_specials(FILE *out, int item, int field)
 {
        switch(field) {
@@ -1472,7 +1469,7 @@ palm_export_database(FILE *out, struct db_enumerator e)
                FAX,                    /* FAX                  */
                MOBILEPHONE,            /* OTHER                */
                EMAIL,                  /* EMAIL                */
-               ADDRESS,                /* ADDRESS              */ 
+               ADDRESS,                /* ADDRESS              */
                CITY,                   /* CITY                 */
                STATE,                  /* STATE                */
                ZIP,                    /* ZIP                  */
@@ -1515,25 +1512,25 @@ gcrd_export_database(FILE *out, struct db_enumerator e)
                for( j = strlen(database[e.item][NAME]) - 1; j >= 0; j-- ) {
                        if(database[e.item][NAME][j] == ' ')
                                break;
-               } 
+               }
                fprintf(out, "N:%s;%.*s\n",
                        safe_str(name),
                        j,
                        safe_str(database[e.item][NAME])
-                       ); 
+                       );
 
                free(name);
 
                if ( database[e.item][ADDRESS] )
                        fprintf(out, "ADR:;;%s;%s;%s;%s;%s;%s\n",
                                safe_str(database[e.item][ADDRESS]),
-                               safe_str(database[e.item][ADDRESS2]),                           
+                               safe_str(database[e.item][ADDRESS2]),
                                safe_str(database[e.item][CITY]),
                                safe_str(database[e.item][STATE]),
                                safe_str(database[e.item][ZIP]),
                                safe_str(database[e.item][COUNTRY])
                                );
-               
+
                if (database[e.item][PHONE])
                        fprintf(out, "TEL;HOME:%s\n", database[e.item][PHONE]);
                if (database[e.item][WORKPHONE])
@@ -1546,19 +1543,19 @@ gcrd_export_database(FILE *out, struct db_enumerator e)
                if ( database[e.item][EMAIL] ) {
                        split_emailstr(e.item, emails);
                        for(j=0; j < MAX_EMAILS ; j++) {
-                               if ( *emails[j] ) 
+                               if ( *emails[j] )
                                        fprintf(out, "EMAIL;INTERNET:%s\n",
                                                emails[j]);
                        }
                }
-               
-               if ( database[e.item][NOTES] ) 
+
+               if ( database[e.item][NOTES] )
                        fprintf(out, "NOTE:%s\n", database[e.item][NOTES]);
                if (database[e.item][URL])
                        fprintf(out, "URL:%s\n",  database[e.item][URL]);
 
                fprintf(out, "END:VCARD\n\n");
-               
+
        }
 
        return 0;
@@ -1577,18 +1574,18 @@ static char *
 mutt_alias_genalias(int i)
 {
        char *tmp, *pos;
-       
+
        if(database[i][NICK])
-               return strdup(database[i][NICK]);
+               return xstrdup(database[i][NICK]);
 
-       tmp = strdup(database[i][NAME]);
+       tmp = xstrdup(database[i][NAME]);
 
        if( ( pos = strchr(tmp, ' ') ) )
                *pos = 0;
 
        strlower(tmp);
 
-       return tmp;     
+       return tmp;
 }
 
 static int
@@ -1605,7 +1602,7 @@ mutt_alias_export(FILE *out, struct db_enumerator e)
                                alias,
                                database[e.item][NAME],
                                email);
-               my_free(alias);
+               xfree(alias);
        }
 
        return 0;
@@ -1630,10 +1627,10 @@ text_write_address_us(FILE *out, int i) {
 
        if (database[i][CITY])
                fprintf(out, "\n%s", database[i][CITY]);
-               
+
        if (database[i][STATE] || database[i][ZIP]) {
                fputc('\n', out);
-               
+
                if(database[i][STATE]) {
                        fprintf(out, "%s", database[i][STATE]);
                        if(database[i][ZIP])
@@ -1677,7 +1674,7 @@ text_write_address_eu(FILE *out, int i) {
                if(database[i][CITY])
                        fprintf(out, "%s", database[i][CITY]);
        }
-       
+
        if (database[i][STATE])
                fprintf(out, "\n%s", database[i][STATE]);
 
@@ -1772,7 +1769,7 @@ elm_alias_export(FILE *out, struct db_enumerator e)
                                alias,
                                database[e.item][NAME],
                                email);
-               my_free(alias);
+               xfree(alias);
        }
 
        return 0;