diff -Nurd -x'*~' pkg-config-0.29.2.orig/check/check-print-options pkg-config-0.29.2/check/check-print-options --- pkg-config-0.29.2.orig/check/check-print-options 2016-04-11 17:39:26.000000000 -0400 +++ pkg-config-0.29.2/check/check-print-options 2017-12-16 03:06:30.000000000 -0500 @@ -35,9 +35,9 @@ run_test --print-requires-private requires-test # --list-all, limit to a subdirectory -RESULT="sub1 Subdirectory package 1 - Test package 1 for subdirectory -sub2 Subdirectory package 2 - Test package 2 for subdirectory -broken Broken package - Module with broken .pc file" +RESULT="broken Broken package - Module with broken .pc file +sub1 Subdirectory package 1 - Test package 1 for subdirectory +sub2 Subdirectory package 2 - Test package 2 for subdirectory" PKG_CONFIG_LIBDIR="$srcdir/sub" run_test --list-all # Check handling when multiple incompatible options are set diff -Nurd -x'*~' pkg-config-0.29.2.orig/pkg.c pkg-config-0.29.2/pkg.c --- pkg-config-0.29.2.orig/pkg.c 2017-03-20 12:34:23.000000000 -0400 +++ pkg-config-0.29.2/pkg.c 2017-12-16 02:56:28.000000000 -0500 @@ -1161,17 +1161,17 @@ } static void -max_len_foreach (gpointer key, gpointer value, gpointer data) +max_len_foreach (gpointer value, gpointer data) { int *mlen = data; - *mlen = MAX (*mlen, strlen (key)); + *mlen = MAX (*mlen, strlen (value)); } static void -packages_foreach (gpointer key, gpointer value, gpointer data) +packages_foreach (gpointer value, gpointer data) { - Package *pkg = value; + Package *pkg = get_package (value); char *pad; pad = g_strnfill (GPOINTER_TO_INT (data) - strlen (pkg->key), ' '); @@ -1186,12 +1186,18 @@ print_package_list (void) { int mlen = 0; + GList *packages_list = NULL; ignore_requires = TRUE; ignore_requires_private = TRUE; - g_hash_table_foreach (packages, max_len_foreach, &mlen); - g_hash_table_foreach (packages, packages_foreach, GINT_TO_POINTER (mlen + 1)); + packages_list = g_hash_table_get_keys (packages); + packages_list = g_list_sort (packages_list, (GCompareFunc)g_strcmp0); + + g_list_foreach (packages_list, max_len_foreach, &mlen); + g_list_foreach (packages_list, packages_foreach, GINT_TO_POINTER (mlen + 1)); + + g_list_free (packages_list); } void