75 #ifdef HAVE_SYS_NDIR_H
112 #define SCAN_DIR_PATH(scan) (scan->current->path)
113 #define STR(x) vstring_str(x)
126 const char *myname =
"scan_dir_push";
134 if ((info->
dir = opendir(info->
path)) == 0)
146 const char *myname =
"scan_dir_pop";
153 if (closedir(info->
dir))
160 return (parent ? scan : 0);
179 const char *myname =
"scan_dir_next";
183 #define STREQ(x,y) (strcmp((x),(y)) == 0)
193 while ((dp = readdir(info->
dir)) != 0) {
194 if (
STREQ(dp->d_name,
".") ||
STREQ(dp->d_name,
"..")) {
196 msg_info(
"%s: skip %s", myname, dp->d_name);
200 msg_info(
"%s: found %s", myname, dp->d_name);
void scan_dir_push(SCAN_DIR *scan, const char *path)
char * mystrdup(const char *str)
SCAN_DIR * scan_dir_pop(SCAN_DIR *scan)
#define SCAN_DIR_PATH(scan)
SCAN_DIR * scan_dir_open(const char *path)
char * scan_dir_path(SCAN_DIR *scan)
SCAN_DIR * scan_dir_close(SCAN_DIR *scan)
NORETURN msg_fatal(const char *fmt,...)
char * concatenate(const char *arg0,...)
char * scan_dir_next(SCAN_DIR *scan)
void * mymalloc(ssize_t len)
void msg_info(const char *fmt,...)