git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] trailer: change strbuf in-place in unfold_value()

From
René Scharfe <l.s.r@web.de>
Date
May 15, 2026, 06:47 UTC
Message-ID
<0b673b25-1f0e-44f5-b24c-7f7183d58cee@web.de>
In-Reply-To
<a4da346d-3800-40ea-8828-970b15088bf3@ramsayjones.plus.com>
On 5/14/26 11:30 PM, Ramsay Jones wrote:
Show 29 quoted lines
> 
>> diff --git a/trailer.c b/trailer.c
>> index 470f86a4a2..b89fa12fe7 100644
>> --- a/trailer.c
>> +++ b/trailer.c
>> @@ -988,29 +988,25 @@ static int ends_with_blank_line(const char *buf, size_t len)
>>  
>>  static void unfold_value(struct strbuf *val)
>>  {
>> -	struct strbuf out = STRBUF_INIT;
>>  	size_t i;
>> +	size_t pos = 0;
>>  
>> -	strbuf_grow(&out, val->len);
>>  	i = 0;
>>  	while (i < val->len) {
>>  		char c = val->buf[i++];
>>  		if (c == '\n') {
>>  			/* Collapse continuation down to a single space. */
>>  			while (i < val->len && isspace(val->buf[i]))
>>  				i++;
>> -			strbuf_addch(&out, ' ');
>> -		} else {
>> -			strbuf_addch(&out, c);
>> +			val->buf[pos++] = ' ';
>> +		} else if (pos != i) {
> 
> Hmm, isn't 'pos' strictly (always) less than 'i' here? (note the post update
> of 'i' when setting 'c' at the head of the loop).

Ah, yes, good find. Initially I used a for loop which incremented i only at the end, but converted it back to minimize the patch and forgot to adjust this comparison.

René
Previous: Jeff KingNext: Jeff King
Message 4 of 6 in “trailer: change strbuf in-place in unfold_value()”
  1. trailer: change strbuf in-place in unfold_value()René Scharfe, May 14, 2026
  2. Ramsay JonesMay 14, 2026
  3. Jeff KingMay 15, 2026
  4. René ScharfeMay 15, 2026
  5. Jeff KingMay 15, 2026
  6. trailer: change strbuf in-place in unfold_value()René Scharfe, May 15, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.