Merge branch 'nd/qsort-in-merge-recursive' into maint

Code simplification.

* nd/qsort-in-merge-recursive:
  merge-recursive.c: use string_list_sort instead of qsort
This commit is contained in:
Junio C Hamano
2017-01-17 15:19:03 -08:00

View File

@ -390,12 +390,10 @@ static struct string_list *get_unmerged(void)
return unmerged; return unmerged;
} }
static int string_list_df_name_compare(const void *a, const void *b) static int string_list_df_name_compare(const char *one, const char *two)
{ {
const struct string_list_item *one = a; int onelen = strlen(one);
const struct string_list_item *two = b; int twolen = strlen(two);
int onelen = strlen(one->string);
int twolen = strlen(two->string);
/* /*
* Here we only care that entries for D/F conflicts are * Here we only care that entries for D/F conflicts are
* adjacent, in particular with the file of the D/F conflict * adjacent, in particular with the file of the D/F conflict
@ -408,8 +406,8 @@ static int string_list_df_name_compare(const void *a, const void *b)
* since in other cases any changes in their order due to * since in other cases any changes in their order due to
* sorting cause no problems for us. * sorting cause no problems for us.
*/ */
int cmp = df_name_compare(one->string, onelen, S_IFDIR, int cmp = df_name_compare(one, onelen, S_IFDIR,
two->string, twolen, S_IFDIR); two, twolen, S_IFDIR);
/* /*
* Now that 'foo' and 'foo/bar' compare equal, we have to make sure * Now that 'foo' and 'foo/bar' compare equal, we have to make sure
* that 'foo' comes before 'foo/bar'. * that 'foo' comes before 'foo/bar'.
@ -453,8 +451,8 @@ static void record_df_conflict_files(struct merge_options *o,
string_list_append(&df_sorted_entries, next->string)->util = string_list_append(&df_sorted_entries, next->string)->util =
next->util; next->util;
} }
qsort(df_sorted_entries.items, entries->nr, sizeof(*entries->items), df_sorted_entries.cmp = string_list_df_name_compare;
string_list_df_name_compare); string_list_sort(&df_sorted_entries);
string_list_clear(&o->df_conflict_file_set, 1); string_list_clear(&o->df_conflict_file_set, 1);
for (i = 0; i < df_sorted_entries.nr; i++) { for (i = 0; i < df_sorted_entries.nr; i++) {