static int get_one_entry(struct remote *remote, void *priv)
{
struct string_list *list = priv;
+ const char **url;
+ int i, url_nr;
+ void **utilp;
if (remote->url_nr > 0) {
- int i;
-
- for (i = 0; i < remote->url_nr; i++)
- string_list_append(remote->name, list)->util = (void *)remote->url[i];
+ utilp = &(string_list_append(remote->name, list)->util);
+ *utilp = malloc(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;
+ if (remote->pushurl_nr) {
+ url = remote->pushurl;
+ url_nr = remote->pushurl_nr;
+ } else {
+ url = remote->url;
+ url_nr = remote->url_nr;
+ }
+ for (i = 0; i < url_nr; i++)
+ {
+ utilp = &(string_list_append(remote->name, list)->util);
+ *utilp = malloc(strlen(url[i])+strlen(" (push)")+1);
+ strcpy((char *) *utilp, url[i]);
+ strcat((char *) *utilp, " (push)");
+ }
return 0;
}
static int show_all(void)
{
struct string_list list = { NULL, 0, 0 };
- int result = for_each_remote(get_one_entry, &list);
+ int result;
+
+ list.strdup_strings = 1;
+ result = for_each_remote(get_one_entry, &list);
if (!result) {
int i;
}
}
}
+ string_list_clear(&list, 1);
return result;
}