OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=641
49 lines
1.4 KiB
Diff
49 lines
1.4 KiB
Diff
--- tools/rpmsort.c.orig 2023-10-11 11:38:36.639686209 +0000
|
|
+++ tools/rpmsort.c 2023-10-11 12:01:36.112837741 +0000
|
|
@@ -119,6 +119,11 @@ exit:
|
|
return vercmpflag;
|
|
}
|
|
|
|
+static int package_version_compare_reverse(const void *p, const void *q)
|
|
+{
|
|
+ return -package_version_compare(p, q);
|
|
+}
|
|
+
|
|
static void add_input(const char *filename, char ***package_names,
|
|
size_t *n_package_names)
|
|
{
|
|
@@ -169,7 +174,13 @@ static void add_input(const char *filena
|
|
*n_package_names = n_names;
|
|
}
|
|
|
|
-static struct poptOption optionsTable[] = { POPT_AUTOHELP POPT_TABLEEND };
|
|
+static int reverse = 0;
|
|
+
|
|
+static struct poptOption optionsTable[] = {
|
|
+ { "reverse", 'r', POPT_ARG_VAL, &reverse, 1,
|
|
+ N_("reverse the result of comparisons"), NULL },
|
|
+ POPT_AUTOHELP POPT_TABLEEND
|
|
+};
|
|
|
|
int main(int argc, const char *argv[])
|
|
{
|
|
@@ -181,7 +192,7 @@ int main(int argc, const char *argv[])
|
|
|
|
optCon = poptGetContext(NULL, argc, argv, optionsTable, 0);
|
|
poptSetOtherOptionHelp(optCon, "<FILES>");
|
|
- if (poptGetNextOpt(optCon) == 0) {
|
|
+ if (poptGetNextOpt(optCon) != -1) {
|
|
poptPrintUsage(optCon, stderr, 0);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
@@ -201,7 +212,8 @@ int main(int argc, const char *argv[])
|
|
}
|
|
|
|
qsort(package_names, n_package_names, sizeof(char *),
|
|
- package_version_compare);
|
|
+ reverse ? package_version_compare_reverse
|
|
+ : package_version_compare);
|
|
|
|
/* Send sorted list to stdout. */
|
|
for (int i = 0; i < n_package_names; i++) {
|