X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fflist.c;h=1e850cbc65e88d35e8aed95e9a5527c047e32914;hp=dac84d509ede5ea75b8cbe566528aaaa35fdc7bc;hb=81a21a9a97d8633f6d6231e31fdb6e328d0d3ff2;hpb=017a82124bf2ea39ced5aa4c8f969c18b3c2fb90 diff --git a/uip/flist.c b/uip/flist.c index dac84d5..1e850cb 100644 --- a/uip/flist.c +++ b/uip/flist.c @@ -17,6 +17,7 @@ */ #include +#include #define FALSE 0 #define TRUE 1 @@ -148,8 +149,7 @@ main(int argc, char **argv) /* allocate the initial space to record the folder names */ numfolders = 0; maxfolders = MAXFOLDERS; - if (!(foldersToDo = (char **) malloc ((size_t) (maxfolders * sizeof(*foldersToDo))))) - adios (NULL, "unable to allocate folder storage"); + foldersToDo = (char **) mh_xmalloc ((size_t) (maxfolders * sizeof(*foldersToDo))); /* no sequences yet */ numsequences = 0; @@ -306,7 +306,7 @@ GetFolderOrder(void) AllocFolders(&orders, &nOrdersAlloced, nOrders + 1); o = &orders[nOrders++]; o->priority = priority++; - o->name = (char *) malloc(p - s + 1); + o->name = (char *) mh_xmalloc(p - s + 1); strncpy(o->name, s, p - s); o->name[p - s] = 0; } else @@ -401,7 +401,7 @@ BuildFolderList(char *dirName, int searchdepth) void BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth) { - char *base, name[PATH_MAX]; + char *base, *n, name[PATH_MAX]; int nlinks; DIR *dir; struct dirent *dp; @@ -432,6 +432,12 @@ BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth) } if (dp->d_name[0] == '.') continue; + /* Check to see if the name of the file is a number + * if it is, we assume it's a mail file and skip it + */ + for (n = dp->d_name; *n && isdigit(*n); n++); + if (!*n) + continue; strncpy (name, base, sizeof(name) - 2); if (*base) strcat(name, "/"); @@ -646,7 +652,7 @@ AllocFolders(struct Folder **f, int *nfa, int n) return; if (*f == NULL) { *nfa = 10; - *f = (struct Folder *) malloc (*nfa * (sizeof(struct Folder))); + *f = (struct Folder *) mh_xmalloc (*nfa * (sizeof(struct Folder))); } else { *nfa *= 2; *f = (struct Folder *) realloc (*f, *nfa * (sizeof(struct Folder))); @@ -697,10 +703,6 @@ do_readonly_folders (void) char atrcur[BUFSIZ]; register struct node *np; - /* sanity check - check that context has been read */ - if (defpath == NULL) - adios (NULL, "oops, context hasn't been read yet"); - snprintf (atrcur, sizeof(atrcur), "atr-%s-", current); atrlen = strlen (atrcur);