Commit 245014892041640d634ee4cf458e7961a78dfd53
1 parent
72fcd388
qemu-img: accept sizes with decimal values
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6786 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
5 additions
and
4 deletions
qemu-img.c
| @@ -220,6 +220,7 @@ static int img_create(int argc, char **argv) | @@ -220,6 +220,7 @@ static int img_create(int argc, char **argv) | ||
| 220 | const char *filename; | 220 | const char *filename; |
| 221 | const char *base_filename = NULL; | 221 | const char *base_filename = NULL; |
| 222 | uint64_t size; | 222 | uint64_t size; |
| 223 | + double sizef; | ||
| 223 | const char *p; | 224 | const char *p; |
| 224 | BlockDriver *drv; | 225 | BlockDriver *drv; |
| 225 | 226 | ||
| @@ -260,13 +261,13 @@ static int img_create(int argc, char **argv) | @@ -260,13 +261,13 @@ static int img_create(int argc, char **argv) | ||
| 260 | if (optind >= argc) | 261 | if (optind >= argc) |
| 261 | help(); | 262 | help(); |
| 262 | p = argv[optind]; | 263 | p = argv[optind]; |
| 263 | - size = strtoul(p, (char **)&p, 0); | 264 | + sizef = strtod(p, (char **)&p); |
| 264 | if (*p == 'M') { | 265 | if (*p == 'M') { |
| 265 | - size *= 1024 * 1024; | 266 | + size = (uint64_t)(sizef * 1024 * 1024); |
| 266 | } else if (*p == 'G') { | 267 | } else if (*p == 'G') { |
| 267 | - size *= 1024 * 1024 * 1024; | 268 | + size = (uint64_t)(sizef * 1024 * 1024 * 1024); |
| 268 | } else if (*p == 'k' || *p == 'K' || *p == '\0') { | 269 | } else if (*p == 'k' || *p == 'K' || *p == '\0') { |
| 269 | - size *= 1024; | 270 | + size = (uint64_t)(sizef * 1024); |
| 270 | } else { | 271 | } else { |
| 271 | help(); | 272 | help(); |
| 272 | } | 273 | } |