From df0e7aa8644eef5ebc018bf838739e25f3494b6c Mon Sep 17 00:00:00 2001
From: Junio C Hamano <junkio@cox.net>
Date: Mon, 1 May 2006 12:39:21 -0700
Subject: [PATCH] builtin-grep: support '-l' option.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 builtin-grep.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/builtin-grep.c b/builtin-grep.c
index 653b65ea104..c3e6701aa0d 100644
--- a/builtin-grep.c
+++ b/builtin-grep.c
@@ -81,6 +81,7 @@ struct grep_opt {
 	regex_t regexp;
 	unsigned linenum:1;
 	unsigned invert:1;
+	unsigned name_only:1;
 	int regflags;
 	unsigned pre_context;
 	unsigned post_context;
@@ -139,6 +140,10 @@ static int grep_buffer(struct grep_opt *opt, const char *name,
 		if (opt->invert)
 			hit = !hit;
 		if (hit) {
+			if (opt->name_only) {
+				printf("%s\n", name);
+				return 1;
+			}
 			/* Hit at this line.  If we haven't shown the
 			 * pre-context lines, we would need to show them.
 			 */
@@ -406,6 +411,11 @@ int cmd_grep(int argc, const char **argv, char **envp)
 				 */
 				continue;
 			}
+			if (!strcmp("-l", arg) ||
+			    !strcmp("--files-with-matches", arg)) {
+				opt.name_only = 1;
+				continue;
+			}
 			if (!strcmp("-A", arg) ||
 			    !strcmp("-B", arg) ||
 			    !strcmp("-C", arg)) {