summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--disk-utils/sfdisk.c10
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);