X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=ls-files.c;h=e42119c5ee1d0ceffca3d36462fc09cd53d2eef5;hb=72095d5c3779344de13c47a8b1cb163b2d94126e;hp=90b289f03d987c6c90214fc12d00c30b4e28bb27;hpb=4b953cdc04fec8783e2c654a671005492fda9b01;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;