Re: [Outreachy PATCH v5 2/2] gpg-interface: do not use misdesigned strbuf_split*()
From: Bello Olamide <hidden>
Date: 2025-10-23 08:17:30
On Wed, 22 Oct 2025 at 15:04, Christian Couder [off-list ref] wrote:
On Wed, Oct 22, 2025 at 2:40 PM Olamide Caleb Bello [off-list ref] wrote: [...]quoted
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.
Okay
[...]quoted
@@ -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);
Ah yes. It is much better. Thank you very much for your guide. I have already learnt a lot in this series. Bello