qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 28/28] qemu-img: extend cvtnum() and use it in more places


From: Michael Tokarev
Subject: Re: [PATCH 28/28] qemu-img: extend cvtnum() and use it in more places
Date: Mon, 26 Feb 2024 22:16:36 +0300
User-agent: Mozilla Thunderbird

22.02.2024 00:16, Michael Tokarev wrote:

-static int64_t cvtnum_full(const char *name, const char *value, int64_t min,
-                           int64_t max)
+static int64_t cvtnum_full(const char *name, const char *value,
+                           bool issize, int64_t min, int64_t max)
  {
      int err;
      uint64_t res;
- err = qemu_strtosz(value, NULL, &res);
+    err = issize ? qemu_strtosz(value, NULL, &res) :
+                   qemu_strtou64(value, NULL, 0, &res);
      if (err < 0 && err != -ERANGE) {
-        error_report("Invalid %s specified. You may use "
-                     "k, M, G, T, P or E suffixes for", name);
-        error_report("kilobytes, megabytes, gigabytes, terabytes, "
-                     "petabytes and exabytes.");
+        if (issize) {
+            error_report("Invalid %s specified. You may use "
+                         "k, M, G, T, P or E suffixes for", name);
+            error_report("kilobytes, megabytes, gigabytes, terabytes, "
+                         "petabytes and exabytes.");
+        } else {
+            error_report("Invalid %s specified.", name);
+        }

I've added actual value supplied to these error messages now.
And I think the list of possible suffixes makes little sense here.


@@ -5090,7 +5060,7 @@ static int img_bitmap(const img_cmd_t *ccmd, int argc, 
char **argv)
              src_fmt = optarg;
              break;
          case 'g':
-            granularity = cvtnum("granularity", optarg);
+            granularity = cvtnum("granularity", optarg, false);

Here, this is a size, so last arg should be true.  In the tests (190),
we already use -g 2M.  I didn't really knew what a granularity is while
converting it.

/mjt



reply via email to

[Prev in Thread] Current Thread [Next in Thread]