diff options
author | Karel Zak | 2015-01-20 14:10:08 +0100 |
---|---|---|
committer | Karel Zak | 2015-01-20 14:20:47 +0100 |
commit | ce9f568c25cc444a8796c599f2539864ab666d5f (patch) | |
tree | 541e928dd4c1d3e5a05e3decacbfde90cebde21a /libfdisk | |
parent | libfdisk: (docs) fix typo (diff) | |
download | kernel-qcow2-util-linux-ce9f568c25cc444a8796c599f2539864ab666d5f.tar.gz kernel-qcow2-util-linux-ce9f568c25cc444a8796c599f2539864ab666d5f.tar.xz kernel-qcow2-util-linux-ce9f568c25cc444a8796c599f2539864ab666d5f.zip |
libfdisk: accept Start offset in {B,M,G..}iB in sfdisk scripts
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libfdisk')
-rw-r--r-- | libfdisk/src/script.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libfdisk/src/script.c b/libfdisk/src/script.c index c75494a2e..684c01401 100644 --- a/libfdisk/src/script.c +++ b/libfdisk/src/script.c @@ -641,9 +641,12 @@ static int parse_script_line(struct fdisk_script *dp, char *s) p = (char *) skip_blank(p); if (!strncasecmp(p, "start=", 6)) { + int pow = 0; p += 6; - rc = next_number(&p, &num, NULL); + rc = next_number(&p, &num, &pow); if (!rc) { + if (pow) /* specified as <num><suffix> */ + num /= dp->cxt->sector_size; fdisk_partition_set_start(pa, num); fdisk_partition_start_follow_default(pa, 0); } @@ -800,9 +803,13 @@ static int parse_commas_line(struct fdisk_script *dp, char *s) if (*p == ',' || *p == ';') fdisk_partition_start_follow_default(pa, 1); else { - rc = next_number(&p, &num, NULL); - if (!rc) + int pow = 0; + rc = next_number(&p, &num, &pow); + if (!rc) { + if (pow) /* specified as <num><suffix> */ + num /= dp->cxt->sector_size; fdisk_partition_set_start(pa, num); + } fdisk_partition_start_follow_default(pa, 0); } break; |