X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=ls-files.c;h=e42119c5ee1d0ceffca3d36462fc09cd53d2eef5;hb=ae64bbc18c80bdad36c53336ba4f724ce128efca;hp=90b289f03d987c6c90214fc12d00c30b4e28bb27;hpb=816c02ce8ecddce065e83db9f4ecb78f6b0e23dc;p=git.git diff --git a/ls-files.c b/ls-files.c index 90b289f0..e42119c5 100644 --- a/ls-files.c +++ b/ls-files.c @@ -92,11 +92,12 @@ static int add_excludes_from_file_1(const char *fname, close(fd); return 0; } - buf = xmalloc(size); + buf = xmalloc(size+1); if (read(fd, buf, size) != size) goto err; close(fd); + buf[size++] = '\n'; entry = buf; for (i = 0; i < size; i++) { if (buf[i] == '\n') { @@ -279,8 +280,11 @@ static void read_directory(const char *path, const char *base, int baselen) continue; len = strlen(de->d_name); memcpy(fullname + baselen, de->d_name, len+1); - if (excluded(fullname) != show_ignored) - continue; + if (excluded(fullname) != show_ignored) { + if (!show_ignored || DTYPE(de) != DT_DIR) { + continue; + } + } switch (DTYPE(de)) { struct stat st;