Krolyxon
Commit 86dc686

Branches

Refs →

nsxiv86dc686

Allow opening directories non-recursively

Author
Paride Legovini
Date
2016-09-28 18:59 +0200
Committer
Bert Münnich · 2016-09-28 19:27 +0200
Parent
d69f39e
Commit
86dc6860f9def64ad554a7c69eeae28203661e2c

+8 −10

5 files changed

  1. M Makefile +1 −1
  2. M main.c +1 −5
  3. M thumbs.c +1 −1
  4. M util.c +3 −2
  5. M util.h +2 −1
M Makefile View
@@ -1,4 +1,4 @@
1−VERSION := git-20160810
1+VERSION := git-20160928
22
33 PREFIX := /usr/local
44 MANPREFIX := $(PREFIX)/share/man
M main.c View
@@ -818,11 +818,7 @@ int main(int argc, char **argv)
818818 if (!S_ISDIR(fstats.st_mode)) {
819819 check_add_file(filename, true);
820820 } else {
821− if (!options->recursive) {
822− error(0, 0, "%s: Is a directory", filename);
823− continue;
824− }
825− if (r_opendir(&dir, filename) < 0) {
821+ if (r_opendir(&dir, filename, options->recursive) < 0) {
826822 error(0, errno, "%s", filename);
827823 continue;
828824 }
M thumbs.c View
@@ -123,7 +123,7 @@ void tns_clean_cache(tns_t *tns)
123123 char *cfile, *filename, *tpos;
124124 r_dir_t dir;
125125
126− if (r_opendir(&dir, cache_dir) < 0) {
126+ if (r_opendir(&dir, cache_dir, true) < 0) {
127127 error(0, errno, "%s", cache_dir);
128128 return;
129129 }
M util.c View
@@ -89,7 +89,7 @@ void size_readable(float *size, const char **unit)
8989 *unit = units[MIN(i, ARRLEN(units) - 1)];
9090 }
9191
92−int r_opendir(r_dir_t *rdir, const char *dirname)
92+int r_opendir(r_dir_t *rdir, const char *dirname, bool recursive)
9393 {
9494 if (*dirname == '\0')
9595 return -1;
@@ -106,6 +106,7 @@ int r_opendir(r_dir_t *rdir, const char *dirname)
106106
107107 rdir->name = (char*) dirname;
108108 rdir->d = 0;
109+ rdir->recursive = recursive;
109110
110111 return 0;
111112 }
@@ -167,7 +168,7 @@ char* r_readdir(r_dir_t *rdir)
167168 return filename;
168169 }
169170
170− if (rdir->stlen > 0) {
171+ if (rdir->recursive && rdir->stlen > 0) {
171172 /* open next subdirectory */
172173 closedir(rdir->dir);
173174 if (rdir->d != 0)
M util.h View
@@ -55,6 +55,7 @@ typedef struct {
5555 DIR *dir;
5656 char *name;
5757 int d;
58+ bool recursive;
5859
5960 char **stack;
6061 int stcap;
@@ -71,7 +72,7 @@ void error(int, int, const char*, ...);
7172
7273 void size_readable(float*, const char**);
7374
74−int r_opendir(r_dir_t*, const char*);
75+int r_opendir(r_dir_t*, const char*, bool);
7576 int r_closedir(r_dir_t*);
7677 char* r_readdir(r_dir_t*);
7778 int r_mkdir(char*);