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

Function format_set_trailers_options

pretty.c:1288–1331  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1286}
1287
1288int format_set_trailers_options(struct process_trailer_options *opts,
1289 struct string_list *filter_list,
1290 struct strbuf *sepbuf,
1291 struct strbuf *kvsepbuf,
1292 const char **arg,
1293 char **invalid_arg)
1294{
1295 for (;;) {
1296 const char *argval;
1297 size_t arglen;
1298
1299 if (**arg == ')')
1300 break;
1301
1302 if (match_placeholder_arg_value(*arg, "key", arg, &argval, &arglen)) {
1303 uintptr_t len = arglen;
1304
1305 if (!argval)
1306 return -1;
1307
1308 if (len && argval[len - 1] == ':')
1309 len--;
1310 string_list_append(filter_list, argval)->util = (char *)len;
1311
1312 opts->filter = format_trailer_match_cb;
1313 opts->filter_data = filter_list;
1314 opts->only_trailers = 1;
1315 } else if (match_placeholder_arg_value(*arg, "separator", arg, &argval, &arglen)) {
1316 opts->separator = expand_string_arg(sepbuf, argval, arglen);
1317 } else if (match_placeholder_arg_value(*arg, "key_value_separator", arg, &argval, &arglen)) {
1318 opts->key_value_separator = expand_string_arg(kvsepbuf, argval, arglen);
1319 } else if (!match_placeholder_bool_arg(*arg, "only", arg, &opts->only_trailers) &&
1320 !match_placeholder_bool_arg(*arg, "unfold", arg, &opts->unfold) &&
1321 !match_placeholder_bool_arg(*arg, "keyonly", arg, &opts->key_only) &&
1322 !match_placeholder_bool_arg(*arg, "valueonly", arg, &opts->value_only)) {
1323 if (invalid_arg) {
1324 size_t len = strcspn(*arg, ",)");
1325 *invalid_arg = xstrndup(*arg, len);
1326 }
1327 return -1;
1328 }
1329 }
1330 return 0;
1331}
1332
1333static size_t parse_describe_args(const char *start, struct strvec *args)
1334{

Callers 2

trailers_atom_parserFunction · 0.85
format_commit_oneFunction · 0.85

Calls 5

expand_string_argFunction · 0.85
xstrndupFunction · 0.85
string_list_appendFunction · 0.70

Tested by

no test coverage detected