diff options
-rw-r--r-- | disk-utils/sfdisk.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/disk-utils/sfdisk.c b/disk-utils/sfdisk.c index d609c55a6..86c8b669f 100644 --- a/disk-utils/sfdisk.c +++ b/disk-utils/sfdisk.c @@ -1364,7 +1364,7 @@ static void __attribute__ ((__noreturn__)) usage(FILE *out) int main(int argc, char *argv[]) { const char *outarg = NULL; - int rc = -EINVAL, c, longidx = -1; + int rc = -EINVAL, c, longidx = -1, bytes = 0; struct sfdisk _sf = { .partno = -1, .interactive = isatty(STDIN_FILENO) ? 1 : 0, @@ -1425,8 +1425,6 @@ int main(int argc, char *argv[]) textdomain(PACKAGE); atexit(close_stdout); - sfdisk_init(sf); - while ((c = getopt_long(argc, argv, "aAbcdfghlLo:O:nN:qsTu:vVX:Y:", longopts, &longidx)) != -1) { switch(c) { @@ -1523,13 +1521,17 @@ int main(int argc, char *argv[]) sf->noreread = 1; break; case OPT_BYTES: - fdisk_set_size_unit(sf->cxt, FDISK_SIZEUNIT_BYTES); + bytes = 1; break; default: usage(stderr); } } + sfdisk_init(sf); + if (bytes) + fdisk_set_size_unit(sf->cxt, FDISK_SIZEUNIT_BYTES); + if (outarg) init_fields(NULL, outarg, NULL); |