/* crawl_folders.h -- crawl folder hierarchy
 */

#define CRAWL_NUMFOLDERS 100

/* Callbacks return TRUE crawl_folders should crawl the children of `folder'.
 * Callbacks need not duplicate folder, as crawl_folders does not free it. */
typedef boolean (crawl_callback_t)(char *folder, void *baton);

/* Crawl the folder hierarchy rooted at the relative path `dir'.  For each
 * folder, pass `callback' the folder name (as a path relative to the current
 * directory) and `baton'; the callback may direct crawl_folders not to crawl
 * its children; see above. */
void crawl_folders (char *dir, crawl_callback_t *callback, void *baton);
