37 lines
		
	
	
		
			742 B
		
	
	
	
		
			C
		
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			742 B
		
	
	
	
		
			C
		
	
	
| /*
 | |
|  * "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;
 | |
| }
 |