From fc456751102ededf8405446e70c228836d390f81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scharfe?= Date: Sun, 20 May 2012 16:32:39 +0200 Subject: grep: factor out create_grep_pat() Add create_grep_pat(), a shared helper for all grep pattern allocation and initialization needs. Signed-off-by: Rene Scharfe Signed-off-by: Junio C Hamano --- grep.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/grep.c b/grep.c index d03d9e24c2..2b77c47764 100644 --- a/grep.c +++ b/grep.c @@ -3,15 +3,26 @@ #include "userdiff.h" #include "xdiff-interface.h" -void append_header_grep_pattern(struct grep_opt *opt, enum grep_header_field field, const char *pat) +static struct grep_pat *create_grep_pat(const char *pat, size_t patlen, + const char *origin, int no, + enum grep_pat_token t, + enum grep_header_field field) { struct grep_pat *p = xcalloc(1, sizeof(*p)); p->pattern = pat; - p->patternlen = strlen(pat); - p->origin = "header"; - p->no = 0; - p->token = GREP_PATTERN_HEAD; + p->patternlen = patlen; + p->origin = origin; + p->no = no; + p->token = t; p->field = field; + return p; +} + +void append_header_grep_pattern(struct grep_opt *opt, + enum grep_header_field field, const char *pat) +{ + struct grep_pat *p = create_grep_pat(pat, strlen(pat), "header", 0, + GREP_PATTERN_HEAD, field); *opt->header_tail = p; opt->header_tail = &p->next; p->next = NULL; @@ -26,12 +37,7 @@ void append_grep_pattern(struct grep_opt *opt, const char *pat, void append_grep_pat(struct grep_opt *opt, const char *pat, size_t patlen, const char *origin, int no, enum grep_pat_token t) { - struct grep_pat *p = xcalloc(1, sizeof(*p)); - p->pattern = pat; - p->patternlen = patlen; - p->origin = origin; - p->no = no; - p->token = t; + struct grep_pat *p = create_grep_pat(pat, patlen, origin, no, t, 0); *opt->pattern_tail = p; opt->pattern_tail = &p->next; p->next = NULL; -- cgit v1.2.3