-rw-r--r-- | scan-tree.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/scan-tree.c b/scan-tree.c index eda8c67..627af1b 100644 --- a/scan-tree.c +++ b/scan-tree.c | |||
@@ -170,32 +170,34 @@ static void scan_path(const char *base, const char *path, repo_config_fn fn) | |||
170 | return; | 170 | return; |
171 | } | 171 | } |
172 | if (is_git_dir(path)) { | 172 | if (is_git_dir(path)) { |
173 | add_repo(base, path, fn); | 173 | add_repo(base, path, fn); |
174 | goto end; | 174 | goto end; |
175 | } | 175 | } |
176 | if (is_git_dir(fmt("%s/.git", path))) { | 176 | if (is_git_dir(fmt("%s/.git", path))) { |
177 | add_repo(base, fmt("%s/.git", path), fn); | 177 | add_repo(base, fmt("%s/.git", path), fn); |
178 | goto end; | 178 | goto end; |
179 | } | 179 | } |
180 | while((ent = readdir(dir)) != NULL) { | 180 | while((ent = readdir(dir)) != NULL) { |
181 | if (ent->d_name[0] == '.') { | 181 | if (ent->d_name[0] == '.') { |
182 | if (ent->d_name[1] == '\0') | 182 | if (ent->d_name[1] == '\0') |
183 | continue; | 183 | continue; |
184 | if (ent->d_name[1] == '.' && ent->d_name[2] == '\0') | 184 | if (ent->d_name[1] == '.' && ent->d_name[2] == '\0') |
185 | continue; | 185 | continue; |
186 | if (!ctx.cfg.scan_hidden_path) | ||
187 | continue; | ||
186 | } | 188 | } |
187 | buf = malloc(strlen(path) + strlen(ent->d_name) + 2); | 189 | buf = malloc(strlen(path) + strlen(ent->d_name) + 2); |
188 | if (!buf) { | 190 | if (!buf) { |
189 | fprintf(stderr, "Alloc error on %s: %s (%d)\n", | 191 | fprintf(stderr, "Alloc error on %s: %s (%d)\n", |
190 | path, strerror(errno), errno); | 192 | path, strerror(errno), errno); |
191 | exit(1); | 193 | exit(1); |
192 | } | 194 | } |
193 | sprintf(buf, "%s/%s", path, ent->d_name); | 195 | sprintf(buf, "%s/%s", path, ent->d_name); |
194 | if (stat(buf, &st)) { | 196 | if (stat(buf, &st)) { |
195 | fprintf(stderr, "Error checking path %s: %s (%d)\n", | 197 | fprintf(stderr, "Error checking path %s: %s (%d)\n", |
196 | buf, strerror(errno), errno); | 198 | buf, strerror(errno), errno); |
197 | free(buf); | 199 | free(buf); |
198 | continue; | 200 | continue; |
199 | } | 201 | } |
200 | if (S_ISDIR(st.st_mode)) | 202 | if (S_ISDIR(st.st_mode)) |
201 | scan_path(base, buf, fn); | 203 | scan_path(base, buf, fn); |