MCPcopy Create free account
hub / github.com/git/git / do_append_grep_pat

Function do_append_grep_pat

grep.c:138–173  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

136}
137
138static void do_append_grep_pat(struct grep_pat ***tail, struct grep_pat *p)
139{
140 **tail = p;
141 *tail = &p->next;
142 p->next = NULL;
143
144 switch (p->token) {
145 case GREP_PATTERN: /* atom */
146 case GREP_PATTERN_HEAD:
147 case GREP_PATTERN_BODY:
148 for (;;) {
149 struct grep_pat *new_pat;
150 size_t len = 0;
151 char *cp = p->pattern + p->patternlen, *nl = NULL;
152 while (++len <= p->patternlen) {
153 if (*(--cp) == '\n') {
154 nl = cp;
155 break;
156 }
157 }
158 if (!nl)
159 break;
160 new_pat = create_grep_pat(nl + 1, len - 1, p->origin,
161 p->no, p->token, p->field);
162 new_pat->next = p->next;
163 if (!p->next)
164 *tail = &new_pat->next;
165 p->next = new_pat;
166 *nl = '\0';
167 p->patternlen -= len;
168 }
169 break;
170 default:
171 break;
172 }
173}
174
175void append_header_grep_pattern(struct grep_opt *opt,
176 enum grep_header_field field, const char *pat)

Callers 2

append_grep_patFunction · 0.85

Calls 1

create_grep_patFunction · 0.85

Tested by

no test coverage detected