Re: [PATCH 3/7] bundle-uri: create "key=value" line parsing
- From
Derrick Stolee <derrickstolee@github.com>
- Date
- Aug 23, 2022, 16:31 UTC
- Message-ID
- <c6731744-143a-5007-5186-f64852ad1123@github.com>
- In-Reply-To
- <xmqqo7wccckm.fsf@gitster.g>
On 8/22/2022 3:17 PM, Junio C Hamano wrote:
Show 31 quoted lines
> "Ævar Arnfjörð Bjarmason via GitGitGadget" <gitgitgadget@gmail.com>
> writes:
>
>> +/**
>> + * General API for {transport,connect}.c etc.
>> + */
>> +int bundle_uri_parse_line(struct bundle_list *list, const char *line)
>> +{
>> + int result;
>> + const char *equals;
>> + struct strbuf key = STRBUF_INIT;
>> +
>> + if (!strlen(line))
>> + return error(_("bundle-uri: got an empty line"));
>> +
>> + equals = strchr(line, '=');
>> +
>> + if (!equals)
>> + return error(_("bundle-uri: line is not of the form 'key=value'"));
>> + if (line == equals || !*(equals + 1))
>> + return error(_("bundle-uri: line has empty key or value"));
>
> The suggestions implied by my asking fall strictly into the "it does
> not have to exist here at this step and we can later extend it", but
> for something whose equivalent can be stored in our configuration
> file, it is curious why we _insist_ to refuse an empty string as the
> value.
>
> I do not miss the "key alone without even '=' means 'true'"
> convention, personally, so insisting to have '=' is OK, but the
> inability to have an empty string as a value looks a bit disturbing.I'd be happy to switch this to allow an empty value.
Show 5 quoted lines
> This depends on how the helper gets called, but most likely the > caller has a single line of pkt-line that it GAVE us to process, so > it sounds a bit wasteful to insist that "line" to be const to us and > force us to use a separate strbuf, instead of just stuffing NUL at > where we found '=' and pass the two halves to bundle_list_update().
I can look into using a non-const buffer.
Thanks, -Stolee