diff options
Diffstat (limited to 'convert.c')
| -rw-r--r-- | convert.c | 29 | 
1 files changed, 11 insertions, 18 deletions
| @@ -319,11 +319,11 @@ static int apply_filter(const char *path, const char *src, size_t len,  static struct convert_driver {  	const char *name;  	struct convert_driver *next; -	char *smudge; -	char *clean; +	const char *smudge; +	const char *clean;  } *user_convert, **user_convert_tail; -static int read_convert_config(const char *var, const char *value) +static int read_convert_config(const char *var, const char *value, void *cb)  {  	const char *ep, *name;  	int namelen; @@ -358,19 +358,12 @@ static int read_convert_config(const char *var, const char *value)  	 * The command-line will not be interpolated in any way.  	 */ -	if (!strcmp("smudge", ep)) { -		if (!value) -			return config_error_nonbool(var); -		drv->smudge = strdup(value); -		return 0; -	} +	if (!strcmp("smudge", ep)) +		return git_config_string(&drv->smudge, var, value); + +	if (!strcmp("clean", ep)) +		return git_config_string(&drv->clean, var, value); -	if (!strcmp("clean", ep)) { -		if (!value) -			return config_error_nonbool(var); -		drv->clean = strdup(value); -		return 0; -	}  	return 0;  } @@ -385,7 +378,7 @@ static void setup_convert_check(struct git_attr_check *check)  		attr_ident = git_attr("ident", 5);  		attr_filter = git_attr("filter", 6);  		user_convert_tail = &user_convert; -		git_config(read_convert_config); +		git_config(read_convert_config, NULL);  	}  	check[0].attr = attr_crlf;  	check[1].attr = attr_ident; @@ -576,7 +569,7 @@ int convert_to_git(const char *path, const char *src, size_t len,  	struct git_attr_check check[3];  	int crlf = CRLF_GUESS;  	int ident = 0, ret = 0; -	char *filter = NULL; +	const char *filter = NULL;  	setup_convert_check(check);  	if (!git_checkattr(path, ARRAY_SIZE(check), check)) { @@ -606,7 +599,7 @@ int convert_to_working_tree(const char *path, const char *src, size_t len, struc  	struct git_attr_check check[3];  	int crlf = CRLF_GUESS;  	int ident = 0, ret = 0; -	char *filter = NULL; +	const char *filter = NULL;  	setup_convert_check(check);  	if (!git_checkattr(path, ARRAY_SIZE(check), check)) { | 
