config: be strict on core.commentChar

We don't support comment _strings_ (at least not yet). And multi-byte
character encoding could also be misinterpreted.

The test with two commas is updated because it violates this. It's
added with the patch that introduces core.commentChar in eff80a9
(Allow custom "comment char" - 2013-01-16). It's not clear to me _why_
that behavior is wanted.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nguyễn Thái Ngọc Duy 2014-05-17 08:52:22 +07:00 committed by Junio C Hamano
parent 6308767f0b
commit 50b54fd72a
2 changed files with 7 additions and 4 deletions

View File

@ -826,9 +826,13 @@ 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)
if (ret)
return ret;
else if (comment[0] && !comment[1]) {
comment_line_char = comment[0];
return ret;
} else
return error("core.commentChar should only be one character");
return 0;
}
if (!strcmp(var, "core.askpass"))

View File

@ -1350,8 +1350,7 @@ test_expect_success "status (core.commentchar with submodule summary)" '
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
test_must_fail git -c status.displayCommentPrefix=true status
'
test_expect_success "--ignore-submodules=all suppresses submodule summary" '