From 64e61e9b5de7546dc3bcbca577a029629774e108 Mon Sep 17 00:00:00 2001 From: dacctal Date: Sun, 28 Jun 2026 05:56:56 +0000 Subject: fixed --quiet without a matching quiet target edgecase --- src/fetch_pwd.c | 63 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 30 deletions(-) (limited to 'src/fetch_pwd.c') diff --git a/src/fetch_pwd.c b/src/fetch_pwd.c index e04bb31..32edd79 100644 --- a/src/fetch_pwd.c +++ b/src/fetch_pwd.c @@ -29,42 +29,45 @@ static const char *pwd_dst; -static int copy_entry(const char *fpath, const struct stat *sb, int typeflag, struct FTW *ftwbuf) { - (void)ftwbuf; - const char *rel = fpath; - if (rel[0] == '.' && rel[1] == '/') rel += 2; - if (rel[0] == '\0') return 0; +static int copy_entry( + const char *fpath, const struct stat *sb, + int typeflag, struct FTW *ftwbuf +) { + (void)ftwbuf; + const char *rel = fpath; + if (rel[0] == '.' && rel[1] == '/') rel += 2; + if (rel[0] == '\0') return 0; - char dst[MAX_PATH_LEN]; - snprintf(dst, sizeof(dst), "%s/%s", pwd_dst, rel); + char dst[MAX_PATH_LEN]; + snprintf(dst, sizeof(dst), "%s/%s", pwd_dst, rel); - if (typeflag == FTW_D) { - mkdir(dst, 0755); - } else if (typeflag == FTW_F) { - int src_fd = open(fpath, O_RDONLY); - if (src_fd < 0) return -1; + if (typeflag == FTW_D) { + mkdir(dst, 0755); + } else if (typeflag == FTW_F) { + int src_fd = open(fpath, O_RDONLY); + if (src_fd < 0) return -1; - int dst_fd = open(dst, O_WRONLY | O_CREAT | O_TRUNC, sb->st_mode & 07777); - if (dst_fd < 0) { close(src_fd); return -1; } + int dst_fd = open(dst, O_WRONLY | O_CREAT | O_TRUNC, sb->st_mode & 07777); + if (dst_fd < 0) { close(src_fd); return -1; } - char buf[8192]; - ssize_t n; - while ((n = read(src_fd, buf, sizeof(buf))) > 0) { - ssize_t written = 0; - while (written < n) { - ssize_t ret = write(dst_fd, buf + written, n - written); - if (ret < 0) { close(src_fd); close(dst_fd); return -1; } - written += ret; - } - } + char buf[8192]; + ssize_t n; + while ((n = read(src_fd, buf, sizeof(buf))) > 0) { + ssize_t written = 0; + while (written < n) { + ssize_t ret = write(dst_fd, buf + written, n - written); + if (ret < 0) { close(src_fd); close(dst_fd); return -1; } + written += ret; + } + } - close(src_fd); - close(dst_fd); - } - return 0; + close(src_fd); + close(dst_fd); + } + return 0; } void fetch_pwd(Pkg pkg) { - pwd_dst = pkg.src; - nftw(".", copy_entry, 64, FTW_PHYS); + pwd_dst = pkg.src; + nftw(".", copy_entry, 64, FTW_PHYS); } \ No newline at end of file -- cgit v1.2.3