[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 15/23] qemu-img: resize: do not always eat last argument
From: |
Michael Tokarev |
Subject: |
[PATCH 15/23] qemu-img: resize: do not always eat last argument |
Date: |
Sat, 10 Feb 2024 00:22:36 +0300 |
'qemu-img resize --help' does not work, since it wants more arguments.
Only eat last option at the beginning if it starts like -N.., and allow
getopt() to do its work, and eat it up at the end if not already eaten.
This will not allow to mix options and size anyway, but it is better
than now.
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
---
qemu-img.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/qemu-img.c b/qemu-img.c
index 69d41e0a92..929a25a021 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -4271,13 +4271,13 @@ static int img_resize(const img_cmd_t *ccmd, int argc,
char **argv)
/* Remove size from argv manually so that negative numbers are not treated
* as options by getopt. */
- if (argc < 3) {
- error_exit(ccmd, "Not enough arguments");
- return 1;
+ if (argc > 1 && argv[argc - 1][0] == '-'
+ && argv[argc-1][1] >= '0' && argv[argc-1][1] <= '9') {
+ size = argv[--argc];
+ } else {
+ size = NULL;
}
- size = argv[--argc];
-
/* Parse getopt arguments */
fmt = NULL;
for(;;) {
@@ -4329,10 +4329,13 @@ static int img_resize(const img_cmd_t *ccmd, int argc,
char **argv)
break;
}
}
- if (optind != argc - 1) {
+ if (optind + 1 + (size == NULL) != argc) {
error_exit(ccmd, "Expecting image file name and size");
}
filename = argv[optind++];
+ if (!size) {
+ size = argv[optind++];
+ }
/* Choose grow, shrink, or absolute resize mode */
switch (size[0]) {
--
2.39.2
- [PATCH 06/23] qemu-img: refresh options/--help for "commit" command, (continued)
- [PATCH 06/23] qemu-img: refresh options/--help for "commit" command, Michael Tokarev, 2024/02/09
- [PATCH 07/23] qemu-img: refresh options/--help for "compare" command, Michael Tokarev, 2024/02/09
- [PATCH 08/23] qemu-img: refresh options/--help for "convert" command, Michael Tokarev, 2024/02/09
- [PATCH 09/23] qemu-img: refresh options/--help for "info" command, Michael Tokarev, 2024/02/09
- [PATCH 10/23] qemu-img: refresh options/--help for "map" command, Michael Tokarev, 2024/02/09
- [PATCH 11/23] qemu-img: allow specifying -f fmt for snapshot subcommand, Michael Tokarev, 2024/02/09
- [PATCH 13/23] qemu-img: refresh options/--help for "snapshot" command, Michael Tokarev, 2024/02/09
- [PATCH 14/23] qemu-img: refresh options/--help for "rebase" command, Michael Tokarev, 2024/02/09
- [PATCH 15/23] qemu-img: resize: do not always eat last argument,
Michael Tokarev <=
- [PATCH 16/23] qemu-img: refresh options/--help for "resize" command, Michael Tokarev, 2024/02/09
- [PATCH 12/23] qemu-img: make -l (list) the default for "snapshot" subcommand, Michael Tokarev, 2024/02/09
- [PATCH 17/23] qemu-img: refresh options/--help for "amend" command, Michael Tokarev, 2024/02/09
- [PATCH 19/23] qemu-img: refresh options/--help for "bitmap" command, Michael Tokarev, 2024/02/09
- [PATCH 18/23] qemu-img: refresh options/--help for "bench" command, Michael Tokarev, 2024/02/09