From: Junio C Hamano <gitster@pobox.com>
Date: Tue, 12 Jan 2010 08:22:23 +0000 (-0800)
Subject: grep: -L should show empty files
X-Git-Tag: v1.6.6.1~12
X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/fbb9971aca1fef66e622d64418121f6077f05c57

grep: -L should show empty files

The -L (--files-without-match) option is supposed to show paths that
produced no matches.  When running the internal grep on work tree files,
however, we had an optimization to just return on zero-sized files,
without doing anything.

This optimization doesn't matter too much in practice (a tracked empty
file must be rare, or there is something wrong with your project); to
produce results consistent with GNU grep, we should stop the optimization
and show empty files as not having the given pattern.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---

diff --git a/builtin-grep.c b/builtin-grep.c
index a5b6719a1a..af6c6fe8a7 100644
--- a/builtin-grep.c
+++ b/builtin-grep.c
@@ -191,8 +191,6 @@ static int grep_file(struct grep_opt *opt, const char *filename)
 			error("'%s': %s", filename, strerror(errno));
 		return 0;
 	}
-	if (!st.st_size)
-		return 0; /* empty file -- no grep hit */
 	if (!S_ISREG(st.st_mode))
 		return 0;
 	sz = xsize_t(st.st_size);