]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
analyze: use '' instead of the empty string when showing versions
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 25 May 2022 08:18:14 +0000 (10:18 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 25 May 2022 14:01:14 +0000 (16:01 +0200)
It looks like garbled output… I didn't use shell-escape, because the other
characters that are special for the shell that are used in versions should
not be escaped.

src/analyze/analyze-compare-versions.c
test/test-compare-versions.sh

index 9545326fa9c93ed7f3efd92db953355204108da1..acc9bbfcf0046c04d9cad85f94ab8059ce7fc811 100644 (file)
@@ -16,9 +16,9 @@ int verb_compare_versions(int argc, char *argv[], void *userdata) {
         if (argc == 3) {
                 r = strverscmp_improved(ASSERT_PTR(argv[1]), ASSERT_PTR(argv[2]));
                 printf("%s %s %s\n",
-                       argv[1],
+                       isempty(argv[1]) ? "''" : argv[1],
                        r < 0 ? "<" : r > 0 ? ">" : "==",
-                       argv[2]);
+                       isempty(argv[2]) ? "''" : argv[2]);
 
                 /* This matches the exit convention used by rpmdev-vercmp.
                  * We don't use named values because 11 and 12 don't have names. */
index 6cfcc158e6fc9ee6d769e0c857eb709299686fed..c40208be60802a4b8aa0aca2d3022b2c798d7ef5 100755 (executable)
@@ -17,9 +17,10 @@ $ANALYZE compare-versions 1 '!=' 2
 ( ! $ANALYZE compare-versions 1 gt 2 )
 ( ! $ANALYZE compare-versions 1 '>' 2 )
 
-$ANALYZE compare-versions 1 2 | grep ' < '
-$ANALYZE compare-versions 2 2 | grep ' == '
-$ANALYZE compare-versions 2 1 | grep ' > '
+test "$($ANALYZE compare-versions 1 2)" = '1 < 2'
+test "$($ANALYZE compare-versions 2 2)" = '2 == 2'
+test "$($ANALYZE compare-versions 2 1)" = '2 > 1'
+test "$($ANALYZE compare-versions '' '')" = "'' == ''"
 
 set +e