*/
static void
-add_folder (char *fold, struct crawl_context *crawl)
+add_folder(char *fold, struct crawl_context *crawl)
{
register int i, j;
/* if necessary, reallocate the space for folder names */
if (crawl->foldp >= crawl->max) {
crawl->max += CRAWL_NUMFOLDERS;
- crawl->folders = mh_xrealloc (crawl->folders,
+ crawl->folders = mh_xrealloc(crawl->folders,
crawl->max * sizeof(char *));
}
for (i = crawl->start; i < crawl->foldp; i++)
- if (strcmp (fold, crawl->folders[i]) < 0) {
+ if (strcmp(fold, crawl->folders[i]) < 0) {
for (j = crawl->foldp - 1; j >= i; j--)
crawl->folders[j + 1] = crawl->folders[j];
crawl->foldp++;
}
static void
-add_children (char *name, struct crawl_context *crawl)
+add_children(char *name, struct crawl_context *crawl)
{
char *prefix, *child;
struct stat st;
DIR * dd;
int child_is_folder;
- if (!(dd = opendir (name))) {
- admonish (name, "unable to read directory ");
+ if (!(dd = opendir(name))) {
+ admonish(name, "unable to read directory ");
return;
}
- if (strcmp (name, ".") == 0) {
- prefix = getcpy ("");
+ if (strcmp(name, ".") == 0) {
+ prefix = getcpy("");
} else {
- prefix = concat (name, "/", (void *)NULL);
+ prefix = concat(name, "/", (void *)NULL);
}
- while ((dp = readdir (dd))) {
+ while ((dp = readdir(dd))) {
/*
** If the system supports it, try to skip processing of
** children we know are not directories or symlinks.
continue;
}
#endif
- if (!strcmp (dp->d_name, ".") || !strcmp (dp->d_name, "..")) {
+ if (strcmp(dp->d_name, ".")==0 ||
+ strcmp(dp->d_name, "..")==0) {
continue;
}
- child = concat (prefix, dp->d_name, (void *)NULL);
+ child = concat(prefix, dp->d_name, (void *)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) {
- child_is_folder = (stat (child, &st) != -1 && S_ISDIR(st.st_mode));
+ child_is_folder = (stat(child, &st) != -1 && S_ISDIR(st.st_mode));
}
if (child_is_folder) {
/* add_folder saves child in the list, don't free it */
- add_folder (child, crawl);
+ add_folder(child, crawl);
} else {
- free (child);
+ free(child);
}
}
- closedir (dd);
+ closedir(dd);
free(prefix);
}
static void
-crawl_folders_body (struct crawl_context *crawl, char *dir,
+crawl_folders_body(struct crawl_context *crawl, char *dir,
crawl_callback_t *callback, void *baton)
{
int i;
crawl->start = crawl->foldp;
- add_children (dir, crawl);
+ add_children(dir, crawl);
for (i = crawl->start; i < crawl->foldp; i++) {
char *fold = crawl->folders[i];
int crawl_children = 1;
if (callback != NULL) {
- crawl_children = callback (fold, baton);
+ crawl_children = callback(fold, baton);
}
if (crawl_children) {
- crawl_folders_body (crawl, fold, callback, baton);
+ crawl_folders_body(crawl, fold, callback, baton);
}
}
}
void
-crawl_folders (char *dir, crawl_callback_t *callback, void *baton)
+crawl_folders(char *dir, crawl_callback_t *callback, void *baton)
{
- struct crawl_context *crawl = mh_xmalloc (sizeof(*crawl));
+ struct crawl_context *crawl = mh_xmalloc(sizeof(*crawl));
crawl->max = CRAWL_NUMFOLDERS;
crawl->total = crawl->start = crawl->foldp = 0;
- crawl->folders = mh_xmalloc (crawl->max * sizeof(*crawl->folders));
+ crawl->folders = mh_xmalloc(crawl->max * sizeof(*crawl->folders));
- crawl_folders_body (crawl, dir, callback, baton);
+ crawl_folders_body(crawl, dir, callback, baton);
/*
** Note that we "leak" the folder names, on the assumption that the
** caller is using them.
*/
- free (crawl->folders);
- free (crawl);
+ free(crawl->folders);
+ free(crawl);
}