X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=builtin-remote.c;h=9ef846f6a48d60f743f5a8fdd769633a5727caf9;hb=6e353a5e5de9da021c7c6c0bc2dc5f95a39900a1;hp=993acd6a09869e23b3f8e67f0dddbddc946e6c5f;hpb=9856dd811ee0f256d067b89cbccb58d944aa9c8c;p=git.git diff --git a/builtin-remote.c b/builtin-remote.c index 993acd6a0..9ef846f6a 100644 --- a/builtin-remote.c +++ b/builtin-remote.c @@ -922,6 +922,20 @@ int add_push_to_show_info(struct string_list_item *push_item, void *cb_data) return 0; } +/* + * Sorting comparison for a string list that has push_info + * structs in its util field + */ +static int cmp_string_with_push(const void *va, const void *vb) +{ + const struct string_list_item *a = va; + const struct string_list_item *b = vb; + const struct push_info *a_push = a->util; + const struct push_info *b_push = b->util; + int cmp = strcmp(a->string, b->string); + return cmp ? cmp : strcmp(a_push->dest, b_push->dest); +} + int show_push_info_item(struct string_list_item *item, void *cb_data) { struct show_info *show_info = cb_data; @@ -1032,7 +1046,8 @@ static int show(int argc, const char **argv) info.width = info.width2 = 0; for_each_string_list(add_push_to_show_info, &states.push, &info); - sort_string_list(info.list); + qsort(info.list->items, info.list->nr, + sizeof(*info.list->items), cmp_string_with_push); if (info.list->nr) printf(" Local ref%s configured for 'git push'%s:\n", info.list->nr > 1 ? "s" : "",