diff --git a/builtin/grep.c b/builtin/grep.c
index 7a9427d357cf54e02f7f251a509911a7e4a6c936..597f76bc42f51e0fc1906c287981e3d37dc0f536 100644 (file)
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -770,11 +770,15 @@ static int file_callback(const struct option *opt, const char *arg, int unset)
if (!patterns)
die_errno("cannot open '%s'", arg);
while (strbuf_getline(&sb, patterns, '\n') == 0) {
+ char *s;
+ size_t len;
+
/* ignore empty line like grep does */
if (sb.len == 0)
continue;
- append_grep_pattern(grep_opt, strbuf_detach(&sb, NULL), arg,
- ++lno, GREP_PATTERN);
+
+ s = strbuf_detach(&sb, &len);
+ append_grep_pat(grep_opt, s, len, arg, ++lno, GREP_PATTERN);
}
fclose(patterns);
strbuf_release(&sb);