diff options
author | Michael Schroeder <mls@suse.de> | 2020-10-08 13:53:36 +0200 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2020-12-10 13:28:07 +0200 |
commit | f18dd8029c56548b1839a97bbaff3da911e15c28 (patch) | |
tree | 3606bb3a650623ccba0bb62aafcac48f07cfcc49 | |
parent | 8760855ef725eec060e1be47853faa265efb747f (diff) | |
download | rpm-f18dd8029c56548b1839a97bbaff3da911e15c28.tar.gz |
Support stringification of versions in the expression parser
(cherry picked from commit 0f6ffbb99238b983f456604a02a933912da7af2f)
-rw-r--r-- | rpmio/expression.c | 9 | ||||
-rw-r--r-- | tests/rpmmacro.at | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/rpmio/expression.c b/rpmio/expression.c index 2b1c69cb1..f8210a456 100644 --- a/rpmio/expression.c +++ b/rpmio/expression.c @@ -154,7 +154,11 @@ static void valueDump(const char *msg, Value v, FILE *fp) if (v) { if (v->type == VALUE_TYPE_INTEGER) fprintf(fp, "INTEGER %d\n", v->data.i); - else + else if (v->type == VALUE_TYPE_VERSION) { + char *evr = rpmverEVR(v->data.v); + fprintf(fp, "VERSION %s\n", evr); + free(evr); + } else fprintf(fp, "STRING '%s'\n", v->data.s); } else fprintf(fp, "NULL\n"); @@ -934,6 +938,9 @@ char *rpmExprStrFlags(const char *expr, int flags) case VALUE_TYPE_STRING: result = xstrdup(v->data.s); break; + case VALUE_TYPE_VERSION: + result = rpmverEVR(v->data.v); + break; default: break; } diff --git a/tests/rpmmacro.at b/tests/rpmmacro.at index fc6085c7c..7ceefb51d 100644 --- a/tests/rpmmacro.at +++ b/tests/rpmmacro.at @@ -450,6 +450,7 @@ runroot rpm \ --eval '%[%{aaa}]' \ --eval '%["%{aaa}"]' \ --eval '%[%{?ccc}]' \ + --eval '%[v"1:2.3-4"]' \ ]], [0], [4096 @@ -458,6 +459,7 @@ runroot rpm \ 5 5 0 +1:2.3-4 ], []) AT_CLEANUP |