summaryrefslogtreecommitdiffabout
path: root/scan-tree.c
Side-by-side diff
Diffstat (limited to 'scan-tree.c') (more/less context) (ignore whitespace changes)
-rw-r--r--scan-tree.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/scan-tree.c b/scan-tree.c
index a0e09ce..627af1b 100644
--- a/scan-tree.c
+++ b/scan-tree.c
@@ -161,3 +161,3 @@ static void scan_path(const char *base, const char *path, repo_config_fn fn)
{
- DIR *dir;
+ DIR *dir = opendir(path);
struct dirent *ent;
@@ -166,5 +166,10 @@ static void scan_path(const char *base, const char *path, repo_config_fn fn)
+ if (!dir) {
+ fprintf(stderr, "Error opening directory %s: %s (%d)\n",
+ path, strerror(errno), errno);
+ return;
+ }
if (is_git_dir(path)) {
add_repo(base, path, fn);
- return;
+ goto end;
}
@@ -172,9 +177,3 @@ static void scan_path(const char *base, const char *path, repo_config_fn fn)
add_repo(base, fmt("%s/.git", path), fn);
- return;
- }
- dir = opendir(path);
- if (!dir) {
- fprintf(stderr, "Error opening directory %s: %s (%d)\n",
- path, strerror(errno), errno);
- return;
+ goto end;
}
@@ -186,2 +185,4 @@ static void scan_path(const char *base, const char *path, repo_config_fn fn)
continue;
+ if (!ctx.cfg.scan_hidden_path)
+ continue;
}
@@ -204,2 +205,3 @@ static void scan_path(const char *base, const char *path, repo_config_fn fn)
}
+end:
closedir(dir);