Subject: Re: [PATCH 1/2] config: be strict on core.commentChar

From: Jonathan Nieder <[email-masked]>
Date: Fri, 16 May 2014 09:25:08 -0700

Nguyễn Thái Ngọc Duy wrote:

> --- a/config.c
> +++ b/config.c
> @@ -826,8 +826,12 @@ static int git_default_core_config(const char *var, const char *value)
>  	if (!strcmp(var, "core.commentchar")) {
>  		const char *comment;
>  		int ret = git_config_string(&comment, var, value);
> -		if (!ret)
> -			comment_line_char = comment[0];
> +		if (!ret) {
> +			if (comment[0] && !comment[1])
> +				comment_line_char = comment[0];
> +			else
> +				return error("core.commentChar should only be one character");
> +		}

Perhaps, to decrease indentation a little:

		if (ret)
			return ret;
		if (comment[0] && !comment[1])
			comment_line_char = comment[0];
		else
			return error(...);
		return 0;

[...]
> --- a/t/t7508-status.sh
> +++ b/t/t7508-status.sh
> @@ -1348,12 +1348,6 @@ test_expect_success "status (core.commentchar with submodule summary)" '
>  	test_i18ncmp expect output
>  '
>  
> -test_expect_success "status (core.commentchar with two chars with submodule summary)" '
> -	test_config core.commentchar ";;" &&
> -	git -c status.displayCommentPrefix=true status >output &&
> -	test_i18ncmp expect output

Could keep the test to avoid regressions:

	test_config core.commentchar ";;" &&
	test_must_fail git -c status.displayCommentPrefix=true status

Thanks,
Jonathan