void addDir(queue *q, char *searchPath, int recursive = 0) { DIR *searchDir = NULL; dirent_t *tmpDirent; if ((searchDir = opendir(searchPath)) == NULL) { switch (errno) { case EACCES: printf(" Access denied to \"%s\"!\n"); break; case ENOENT: printf(" \"%s\" doesn't exist!\n"); break; default: printf(" Couldn't open \"%s\"!\n"); } return; } #if 0 if ((tmpDirent = (dirent_t *)malloc(sizeof(dirent_t))) == NULL) { printf(" Failed allocation of tmpDirent"); exit(0); } #endif while ((tmpDirent = readdir(searchDir)) != NULL) { if (strncmp(tmpDirent->d_name, ".", 1) == 0) { continue; } else if (isJPEG(tmpDirent->d_name)) { q->push(*tmpDirent); continue; } else if (recursive /*&& (tmpDirent->d_type == DT_DIR)*/) { printf("Recursing into %s\n", tmpDirent->d_name); addDir(q, tmpDirent->d_name, recursive); continue; } } }