From: Junio C Hamano Date: Mon, 24 Sep 2018 17:30:50 +0000 (-0700) Subject: Merge branch 'sb/string-list-remove-unused' X-Git-Tag: v2.20.0-rc0~213 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/f8649f8cfc81f9c8b00e32bffc89c3e30cb2a3c0?ds=inline;hp=-c Merge branch 'sb/string-list-remove-unused' Code clean-up. * sb/string-list-remove-unused: string-list: remove unused function print_string_list --- f8649f8cfc81f9c8b00e32bffc89c3e30cb2a3c0 diff --combined string-list.c index 771c455098,c8fe666b74..1f6063f2a2 --- a/string-list.c +++ b/string-list.c @@@ -195,16 -195,6 +195,6 @@@ void string_list_clear_func(struct stri list->nr = list->alloc = 0; } - - void print_string_list(const struct string_list *p, const char *text) - { - int i; - if ( text ) - printf("%s\n", text); - for (i = 0; i < p->nr; i++) - printf("%s:%p\n", p->items[i].string, p->items[i].util); - } - struct string_list_item *string_list_append_nodup(struct string_list *list, char *string) { @@@ -224,28 -214,18 +214,28 @@@ struct string_list_item *string_list_ap list->strdup_strings ? xstrdup(string) : (char *)string); } +/* + * Encapsulate the compare function pointer because ISO C99 forbids + * casting from void * to a function pointer and vice versa. + */ +struct string_list_sort_ctx +{ + compare_strings_fn cmp; +}; + static int cmp_items(const void *a, const void *b, void *ctx) { - compare_strings_fn cmp = ctx; + struct string_list_sort_ctx *sort_ctx = ctx; const struct string_list_item *one = a; const struct string_list_item *two = b; - return cmp(one->string, two->string); + return sort_ctx->cmp(one->string, two->string); } void string_list_sort(struct string_list *list) { - QSORT_S(list->items, list->nr, cmp_items, - list->cmp ? list->cmp : strcmp); + struct string_list_sort_ctx sort_ctx = {list->cmp ? list->cmp : strcmp}; + + QSORT_S(list->items, list->nr, cmp_items, &sort_ctx); } struct string_list_item *unsorted_string_list_lookup(struct string_list *list,