]>
Commit | Line | Data |
---|---|---|
c905c5f8 JP |
1 | From 70940292e321f1b7f4af217425810ed4110f6333 Mon Sep 17 00:00:00 2001 |
2 | From: Jan Palus <atler@pld-linux.org> | |
3 | Date: Sat, 31 Oct 2020 00:32:04 +0100 | |
4 | Subject: [PATCH] implement rpmvercmp for rpm.org | |
5 | ||
6 | --- | |
7 | pm/rpmorg/rpmvercmp.c | 24 ++++++++++++++++-------- | |
8 | 1 file changed, 16 insertions(+), 8 deletions(-) | |
9 | ||
10 | diff --git a/pm/rpmorg/rpmvercmp.c b/pm/rpmorg/rpmvercmp.c | |
11 | index 7e40e15..36bf9e5 100644 | |
12 | --- a/pm/rpmorg/rpmvercmp.c | |
13 | +++ b/pm/rpmorg/rpmvercmp.c | |
14 | @@ -49,18 +49,15 @@ static void parse(const char *evrstr, EVR_t evr) | |
15 | #endif | |
16 | #endif | |
17 | ||
18 | -#ifdef HAVE_RPMORG | |
19 | -int main(void) | |
20 | -{ | |
21 | - printf("not implemented"); | |
22 | - exit(EXIT_SUCCESS); | |
23 | -} | |
24 | -#else | |
25 | int main(int argc, char *argv[]) | |
26 | { | |
27 | int cmprc; | |
28 | const char *v1, *v2; | |
29 | +#ifdef HAVE_RPMORG | |
30 | + rpmver evr1, evr2; | |
31 | +#else | |
32 | EVR_t evr1, evr2; | |
33 | +#endif | |
34 | ||
35 | if (argc < 3) { | |
36 | printf("Usage: rpmvercmp VERSION1 VERSION2\n"); | |
37 | @@ -81,6 +78,12 @@ int main(int argc, char *argv[]) | |
38 | exit(2); | |
39 | } | |
40 | ||
41 | +#ifdef HAVE_RPMORG | |
42 | + evr1 = rpmverParse(v1); | |
43 | + evr2 = rpmverParse(v2); | |
44 | + | |
45 | + cmprc = rpmverCmp(evr1, evr2); | |
46 | +#else | |
47 | evr1 = malloc(sizeof(struct EVR_s)); | |
48 | evr2 = malloc(sizeof(struct EVR_s)); | |
49 | ||
50 | @@ -93,17 +96,22 @@ int main(int argc, char *argv[]) | |
51 | #endif | |
52 | ||
53 | cmprc = rpmEVRcompare(evr1, evr2); | |
54 | +#endif | |
55 | ||
56 | printf("%s %s %s\n", v1, cmprc == 0 ? "==" : cmprc > 0 ? ">" : "<", v2); | |
57 | ||
58 | if (cmprc < 0) | |
59 | cmprc = 2; | |
60 | ||
61 | +#ifdef HAVE_RPMORG | |
62 | + rpmverFree(evr1); | |
63 | + rpmverFree(evr2); | |
64 | +#else | |
65 | free((char *)evr1->str); | |
66 | free((char *)evr2->str); | |
67 | free(evr1); | |
68 | free(evr2); | |
69 | +#endif | |
70 | ||
71 | exit(cmprc); | |
72 | } | |
73 | -#endif |