Re: [Outreachy PATCH v5 2/2] gpg-interface: do not use misdesigned strbuf_split*()
From: Christian Couder <hidden>
Date: 2025-10-22 14:04:04
On Wed, Oct 22, 2025 at 2:40 PM Olamide Caleb Bello [off-list ref] wrote: [...]
Simplify the process of retrieving and returning the desired line by using strchr() to isolate the line and xmemdupz() to return a copy of the line. This removes the roundabout way of splitting the string into strbufs, just to return the line.
Nit: here also I think it should be clear that these last two sentences are in the same paragraph. [...]
quoted hunk ↗ jump to hunk
@@ -887,19 +887,22 @@ static char *get_default_ssh_signing_key(void) &key_stderr, 0); if (!ret) { - keys = strbuf_split_max(&key_stdout, '\n', 2); - if (keys[0] && is_literal_ssh_key(keys[0]->buf, &literal_key)) { + begin = key_stdout.buf; + new_line = strchr(begin, '\n'); + end = new_line ? new_line : strchr(begin, '\0'); + first_line = xmemdupz(begin, end - begin);
That works but I wonder if something like the following is not a bit better:
if (new_line)
first_line = xmemdupz(begin, new_line - begin);
else
first_line = xstrdup(begin);
Thanks.