]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
sfdisk: fix --bytes
authorKarel Zak <kzak@redhat.com>
Mon, 19 Jan 2015 11:26:37 +0000 (12:26 +0100)
committerKarel Zak <kzak@redhat.com>
Mon, 19 Jan 2015 11:26:37 +0000 (12:26 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
disk-utils/sfdisk.c

index d609c55a6f0334781aa99a01a33e8687d63af450..86c8b669fa40cfc9c26cc4f92ba9c1a1b8eaa1f9 100644 (file)
@@ -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);