Re: git silently ignores include directive with single quotes
- Date: Mon, 10 Sep 2018 11:35:57 -0700
- From: Jonathan Nieder <jrnieder@xxxxxxxxx>
- Subject: Re: git silently ignores include directive with single quotes
Junio C Hamano wrote:
> Jonathan Nieder <jrnieder@xxxxxxxxx> writes:
>> 1. Treat single-quote as worth quoting in config.c::write_pair (line
>> 2516). This would already help with the original issue, since the
>> config would say
>> bar = \'baz\'
>> allowing a quick diagnosis.
> I am mildly against this, as long as you feel that all the remaining
> steps need to be marked with "(optional)", because this will give
> readers an impression that somehow single-quote is special. If we
> do not intend to make it special at all, we shouldn't.
That's fair, especially because it would be inconsistent with shell
command language, where single-quote inside double quotes is not
$ printf '%s\n' "\'"
(I realize that backslash means something different in Git config; I'm
just saying it would be another source of cognitive dissonance.)
1. Treat strings starting or ending with single-quote as worth
quoting in config.c::write_pair (line 3269). This would already
help with the original issue, since the config would say
bar = "'baz'"
allowing a quick diagnosis.
2. (optional) Warn if a value is surrounded in single-quotes,
encouraging using surrounding double-quotes to disambiguate.
3. (optional) Error out if a value is surrounded in single-quotes,
encouraging replacing with or surrounding with double-quote,
depending on the user's intention.
4. (optional) Start treating wrapping single-quotes specially
As before, I think step 1 is a good idea, but I'm not convinced about
any of the later steps.