summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSadeep Madurange <sadeep@asciimx.com>2026-03-23 17:51:26 +0800
committerSadeep Madurange <sadeep@asciimx.com>2026-03-23 17:51:26 +0800
commitaf7624d9693915d89431dbb2550c30b3b708fe33 (patch)
tree489212a1cb5ecf80bdd82583f2d60fcdea4e1a28
parenta21b1fbf041bbd09ba7ae41bea5e26335b9c3e91 (diff)
downloadcvn-af7624d9693915d89431dbb2550c30b3b708fe33.tar.gz
Ignore .vcx and clean up some code.
-rw-r--r--main.c24
1 files changed, 9 insertions, 15 deletions
diff --git a/main.c b/main.c
index 716e41c..f4aacb2 100644
--- a/main.c
+++ b/main.c
@@ -19,8 +19,9 @@
#define EXCLUDE_PATHS ".vcxignore"
-#define BUFLEN 8192
-#define MAX_DEPTH 256
+#define BUFLEN 8192
+#define MAX_DEPTH 256
+#define MAX_PATH_LEN 4096
#define KIND_DEL 'D'
#define KIND_MOD 'M'
@@ -126,8 +127,6 @@ static inline void add(int argc, char *argv[])
if (lstat(wt_path, &st) == -1)
err(1, "%s", wt_path);
- printf("Loop index %zu, path: %s\n", i, wt_path);
-
size_t hd_sz = strlen(HEAD) + strlen(wt_path) + 2;
char hd_path[hd_sz];
concat(hd_path, hd_sz, HEAD, "/", wt_path, NULL);
@@ -138,6 +137,7 @@ static inline void add(int argc, char *argv[])
if (nftw(hd_path, scan_head, MAX_DEPTH, FTW_PHYS) == -1)
err(1, "Failed to scan head");
+
if (nftw(wt_path, scan_tree, MAX_DEPTH, FTW_PHYS) == -1)
err(1, "Failed to scan work tree");
}
@@ -184,7 +184,7 @@ int scan_head(const char * path, const struct stat *sb, int flag,
static inline int scan_tree(const char * path, const struct stat *st,
int flag, struct FTW *ftwbuf)
{
- if (fnmatch("./.vcx/*", path, FNM_PATHNAME) == 0)
+ if (fnmatch("./.vcx/*", path, 0) == 0)
return 0;
if (flag == FTW_F) {
@@ -302,7 +302,6 @@ static inline void stage_file(const char *file, char kind, int islnk)
char lnk_path[lnkp_sz];
concat(lnk_path, lnkp_sz, TMP_DIR, "/", file, NULL);
- printf("Link: %s -> %s\n", lnk_path, lnk_target);
mkdirs(lnk_path);
if (symlink(lnk_target, lnk_path) != 0)
err(1, "symlink error on %s", file);
@@ -437,17 +436,12 @@ static inline void mkdirs(const char *path)
char *p;
int pathlen;
- static char *buf = NULL;
- static size_t buflen = 1024;
-
- if (!buf)
- buf = MALLOC(buflen);
+ static char buf[MAX_PATH_LEN];
pathlen = strlen(path);
- if (buflen < pathlen + 1) {
- buflen *= 2;
- buf = REALLOC(buf, buflen);
- }
+ if (MAX_PATH_LEN < pathlen + 1)
+ errx(1, "Path too long: %s", path);
+
buf[0] = '\0';
strcpy(buf, path);