]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
cfdisk: use /dev/sda by default
authorKarel Zak <kzak@redhat.com>
Fri, 18 Jul 2014 10:54:40 +0000 (12:54 +0200)
committerKarel Zak <kzak@redhat.com>
Fri, 18 Jul 2014 10:54:40 +0000 (12:54 +0200)
.. this all is for backward compatibility.

Signed-off-by: Karel Zak <kzak@redhat.com>
disk-utils/cfdisk.c

index e5a47bf3c61431310c8d44d3b2489d67afcf924e..715e07ddb6aedb738a57f95dd0137b09884996d3 100644 (file)
 
 #include "fdiskP.h"
 
+#ifdef __GNU__
+# define DEFAULT_DEVICE "/dev/hd0"
+# define ALTERNATE_DEVICE "/dev/sd0"
+#elif defined(__FreeBSD__)
+# define DEFAULT_DEVICE "/dev/ad0"
+# define ALTERNATE_DEVICE "/dev/da0"
+#else
+# define DEFAULT_DEVICE "/dev/sda"
+# define ALTERNATE_DEVICE "/dev/hda"
+#endif
+
 #define ARROW_CURSOR_STRING    ">>  "
 #define ARROW_CURSOR_DUMMY     "    "
 #define ARROW_CURSOR_WIDTH     (sizeof(ARROW_CURSOR_STRING) - 1)
@@ -1981,6 +1992,7 @@ static void __attribute__ ((__noreturn__)) usage(FILE *out)
 
 int main(int argc, char *argv[])
 {
+       const char *diskpath;
        int rc, c, colormode = UL_COLORMODE_UNDEF;
        struct cfdisk _cf = { .lines_idx = 0 },
                      *cf = &_cf;
@@ -2019,8 +2031,6 @@ int main(int argc, char *argv[])
                }
        }
 
-
-
        colors_init(colormode, "cfdisk");
 
        fdisk_init_debug(0);
@@ -2033,13 +2043,17 @@ int main(int argc, char *argv[])
        fdisk_context_set_ask(cf->cxt, ask_callback, (void *) cf);
 
        if (optind == argc)
-               usage(stderr);
+               diskpath = access(DEFAULT_DEVICE, F_OK) == 0 ?
+                                       DEFAULT_DEVICE : ALTERNATE_DEVICE;
+       else
+               diskpath = argv[optind];
 
-       rc = fdisk_context_assign_device(cf->cxt, argv[optind], 0);
+       rc = fdisk_context_assign_device(cf->cxt, diskpath, 0);
        if (rc == -EACCES)
-               rc = fdisk_context_assign_device(cf->cxt, argv[optind], 1);
+               rc = fdisk_context_assign_device(cf->cxt, diskpath, 1);
        if (rc != 0)
-               err(EXIT_FAILURE, _("cannot open %s"), argv[optind]);
+               err(EXIT_FAILURE, _("cannot open %s"),
+                               optind == argc ? DEFAULT_DEVICE : diskpath);
 
        /* Don't use err(), warn() from this point */
        ui_init(cf);