*/
#include <h/mh.h>
+#include <h/utils.h>
#define FALSE 0
#define TRUE 1
/* 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;
*/
if (numfolders >= maxfolders) {
maxfolders += MAXFOLDERS;
- if (!(foldersToDo = (char **) realloc (foldersToDo,
- (size_t) (maxfolders * sizeof(*foldersToDo)))))
- adios (NULL, "unable to reallocate folder name storage");
+ foldersToDo = (char **) mh_xrealloc (foldersToDo,
+ (size_t) (maxfolders * sizeof(*foldersToDo)));
}
if (*cp == '+' || *cp == '@') {
foldersToDo[numfolders++] =
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
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;
}
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, "/");
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)));
+ *f = (struct Folder *) mh_xrealloc (*f, *nfa * (sizeof(struct Folder)));
}
}