Re: [RFC] Git config file reader in Perl (WIP)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Johannes Schindelin wrote:
> 
> On Wed, 17 Jan 2007, Jakub Narebski wrote:
> 
>> Dnia wtorek 16. stycznia 2007 23:56, Johannes Schindelin napisa?:

>>> So, how about a "git repo-config --dump" which outputs a stream of NUL 
>>> separated keys and values? This should be really easy to "parse", and 
>>> there are no ambiguities: No key or value can contain a NUL.
>> 
>> Good idea, although "\n" would work as well as NUL.
> 
> No it would not:
> 
> 	[someSection]
> 		thisKey = has\na\nvalue\with\nseveral\nnewlines

$ fatal: bad config file line <nn> in <config>

The same with quoted:

 	[someSection]
 		qthisKey = "has\na\nvalue\with\nseveral\nnewlines"

There is no escaping besides escaping " and escape character
i.e. escaping \ in git config. Se "\n" would work as well as NUL.
(It is said explicitely that subsection names cannot contain "\n").

>> The only problem is with "key without value" case, i.e. something like
>> 
>>   [section]
>>   	noval
>> 
>> which shows as
>> 
>>   section.noval
> 
> but is equivalent to
> 
> 	[section]
> 		noval = true
> 
> Since it is by definition a boolean value.

But only for "git repo-config --bool --get section.noval" output.
Semantically equivalent to "true".

But without --bool it returns like it was "".

>> in "git repo-config -l" output (note missing '=' !), and I guess differs
>> for some case from
>> 
>>   [section]
>>   	noval = 
> 
> Yes, this is not a boolean. The difference is that the callback function 
> is called with NULL in the former case, and with "" in the latter.

-- 
Jakub Narebski
Poland
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]