MCPcopy Index your code
hub / github.com/git/git / parse_range_arg

Function parse_range_arg

line-range.c:248–282  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

246}
247
248int parse_range_arg(const char *arg, nth_line_fn_t nth_line_cb,
249 void *cb_data, long lines, long anchor,
250 long *begin, long *end,
251 const char *path, struct index_state *istate)
252{
253 *begin = *end = 0;
254
255 if (anchor < 1)
256 anchor = 1;
257 if (anchor > lines)
258 anchor = lines + 1;
259
260 if (*arg == ':' || (*arg == '^' && *(arg + 1) == ':')) {
261 arg = parse_range_funcname(arg, nth_line_cb, cb_data,
262 lines, anchor, begin, end,
263 path, istate);
264 if (!arg || *arg)
265 return -1;
266 return 0;
267 }
268
269 arg = parse_loc(arg, nth_line_cb, cb_data, lines, -anchor, begin);
270
271 if (*arg == ',')
272 arg = parse_loc(arg + 1, nth_line_cb, cb_data, lines, *begin + 1, end);
273
274 if (*arg)
275 return -1;
276
277 if (*begin && *end && *end < *begin) {
278 SWAP(*end, *begin);
279 }
280
281 return 0;
282}
283
284const char *skip_range_arg(const char *arg, struct index_state *istate)
285{

Callers 2

parse_linesFunction · 0.85
cmd_blameFunction · 0.85

Calls 2

parse_range_funcnameFunction · 0.85
parse_locFunction · 0.85

Tested by

no test coverage detected