diff --git a/config.c b/config.c index 3cfeb3d8bd..f561631374 100644 --- a/config.c +++ b/config.c @@ -1566,6 +1566,8 @@ static int git_default_core_config(const char *var, const char *value, else if (!strcasecmp(value, "auto")) auto_comment_line_char = 1; else if (value[0] && !value[1]) { + if (value[0] == '\n') + return error(_("core.commentChar cannot be newline")); comment_line_char = value[0]; auto_comment_line_char = 0; } else diff --git a/t/t0030-stripspace.sh b/t/t0030-stripspace.sh index d1b3be8725..e399dd9189 100755 --- a/t/t0030-stripspace.sh +++ b/t/t0030-stripspace.sh @@ -401,6 +401,11 @@ test_expect_success 'strip comments with changed comment char' ' test -z "$(echo "; comment" | git -c core.commentchar=";" stripspace -s)" ' +test_expect_success 'newline as commentchar is forbidden' ' + test_must_fail git -c core.commentChar="$LF" stripspace -s 2>err && + grep "core.commentChar cannot be newline" err +' + test_expect_success '-c with single line' ' printf "# foo\n" >expect && printf "foo" | git stripspace -c >actual &&