-
-/*
- * crawl_folders.c -- crawl folder hierarchy
- *
- * $Id$
+/* crawl_folders.c -- crawl folder hierarchy
*
* This code is Copyright (c) 2008, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
int max; /* how many folders we currently can hold in
* the array `folders', increased by
* CRAWL_NUMFOLDERS at a time */
- int total; /* how many `folders' actually has */
char **folders; /* the array of folders */
int start;
int foldp;
static void
add_folder (char *fold, struct crawl_context *crawl)
{
- register int i, j;
+ int i, j;
/* if necessary, reallocate the space for folder names */
if (crawl->foldp >= crawl->max) {
return;
}
- crawl->total++;
crawl->folders[crawl->foldp++] = fold;
}
}
if (strcmp (name, ".") == 0) {
- prefix = getcpy ("");
+ prefix = mh_xstrdup("");
} else {
- prefix = concat (name, "/", (void *)NULL);
+ prefix = concat(name, "/", NULL);
}
while ((dp = readdir (dd))) {
if (!strcmp (dp->d_name, ".") || !strcmp (dp->d_name, "..")) {
continue;
}
- child = concat (prefix, dp->d_name, (void *)NULL);
+ child = concat(prefix, dp->d_name, NULL);
/* If we have no d_type or d_type is DT_LNK or DT_UNKNOWN, stat the
* child to see what it is. */
if (child_is_folder == -1) {
void
crawl_folders (char *dir, crawl_callback_t *callback, void *baton)
{
- struct crawl_context *crawl = mh_xmalloc (sizeof(*crawl));
+ struct crawl_context *crawl;
+ NEW(crawl);
crawl->max = CRAWL_NUMFOLDERS;
- crawl->total = crawl->start = crawl->foldp = 0;
+ crawl->start = crawl->foldp = 0;
crawl->folders = mh_xmalloc (crawl->max * sizeof(*crawl->folders));
crawl_folders_body (crawl, dir, callback, baton);