Re: [Outreachy PATCH v5 2/2] gpg-interface: do not use misdesigned strbuf_split*()
On Wed, Oct 22, 2025 at 2:40 PM Olamide Caleb Bello <belkid98@gmail.com> wrote:
[...]
Show 5 quoted lines
> 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.
[...]
Show 10 quoted lines
> @@ -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.