/* * "git annotate" builtin alias * * Copyright (C) 2006 Ryan Anderson */ #include "git-compat-util.h" #include "builtin.h" #include "strvec.h" int cmd_annotate(int argc, const char **argv, const char *prefix, struct repository *repo) { struct strvec args = STRVEC_INIT; const char **args_copy; int ret; strvec_pushl(&args, "annotate", "-c", NULL); for (int i = 1; i < argc; i++) strvec_push(&args, argv[i]); /* * `cmd_blame()` ends up modifying the array, which causes memory leaks * if we didn't copy the array here. */ CALLOC_ARRAY(args_copy, args.nr + 1); COPY_ARRAY(args_copy, args.v, args.nr); ret = cmd_blame(args.nr, args_copy, prefix, repo); strvec_clear(&args); free(args_copy); return ret; }