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 | } |