[PATCH] builtin-remote: (get_one_entry): use strbuf
Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
---
On Tue, Jun 16, 2009 at 12:49, Michael J Gruber<git@drmicha.warpmail.net> wrote:
> Bert Wesarg venit, vidit, dixit 16.06.2009 09:56:
>> On Tue, Jun 16, 2009 at 09:39, Michael J Gruber<git@drmicha.warpmail.net> wrote:
>>> For whatever reason, your patch does not apply (am) here on top of next
>>> + Jim's patch. Given the context (xmallocs), it looks like it's against
>>> something + Jim's patch. OTOH: 709f8a6 show's a get_one_entry with
>>> mallocs. Did you hand edit the diff?
>> Its on top of next (d6a466e528119011d512379f7f9dfac26deb7fd9), plus
>> hand editing s/malloc/xmalloc/g.
>> Sorry for this.
>>
>> Bert
>
> Junio will have to deal with it...
Here is an updated version. Bert
builtin-remote.c | 21 ++++++++++-----------
1 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/builtin-remote.c b/builtin-remote.c
index 658d578..d47a124 100644
--- a/builtin-remote.c
+++ b/builtin-remote.c
@@ -1276,17 +1276,17 @@ static int update(int argc, const char **argv)
static int get_one_entry(struct remote *remote, void *priv)
{
struct string_list *list = priv;
+ struct strbuf url_buf = STRBUF_INIT;
+ const char *url_str = NULL;
const char **url;
int i, url_nr;
- void **utilp;
if (remote->url_nr > 0) {
- utilp = &(string_list_append(remote->name, list)->util);
- *utilp = xmalloc(strlen(remote->url[0])+strlen(" (fetch)")+1);
- strcpy((char *) *utilp, remote->url[0]);
- strcat((char *) *utilp, " (fetch)");
- } else
- string_list_append(remote->name, list)->util = NULL;
+ strbuf_addf(&url_buf, "%s (fetch)", remote->url[0]);
+ url_str = strbuf_detach(&url_buf, NULL);
+ }
+ string_list_append(remote->name, list)->util = url_str;
+
if (remote->pushurl_nr) {
url = remote->pushurl;
url_nr = remote->pushurl_nr;
@@ -1296,10 +1296,9 @@ static int get_one_entry(struct remote *remote, void *priv)
}
for (i = 0; i < url_nr; i++)
{
- utilp = &(string_list_append(remote->name, list)->util);
- *utilp = xmalloc(strlen(url[i])+strlen(" (push)")+1);
- strcpy((char *) *utilp, url[i]);
- strcat((char *) *utilp, " (push)");
+ strbuf_addf(&url_buf, "%s (push)", url[i]);
+ url_str = strbuf_detach(&url_buf, NULL);
+ string_list_append(remote->name, list)->util = url_str;
}
return 0;
--
tg: (363bdbe..) bw/remote-v-use-strbuf (depends on: next)