]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
fdisk: (gpt) make PMBR accessible from main menu
authorKarel Zak <kzak@redhat.com>
Thu, 2 Nov 2017 10:09:53 +0000 (11:09 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 2 Nov 2017 10:17:24 +0000 (11:17 +0100)
Don't force users to go to expert menu to toggle between GPT and PMBR.

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

index 532c57b26defba556a99c7f8246372142902139d..8220d6586e1b4bd4bd8bbb81561e36b1abd4de77 100644 (file)
@@ -88,6 +88,7 @@ DECLARE_MENU_CB(generic_menu_cb);
 
 #define MENU_ENT_NEST(k, t, l, p)      { .title = t, .key = k, .normal = 1, .label = l, .parent = p }
 #define MENU_XENT_NEST(k, t, l, p)     { .title = t, .key = k, .expert = 1, .label = l, .parent = p }
+#define MENU_BENT_NEST(k, t, l, p)     { .title = t, .key = k, .expert = 1, .normal = 1, .label = l, .parent = p }
 
 /* Generic menu */
 static const struct menu menu_generic = {
@@ -162,12 +163,12 @@ static const struct menu menu_gpt = {
        .callback = gpt_menu_cb,
        .label = FDISK_DISKLABEL_GPT,
        .entries = {
-               MENU_XSEP(N_("GPT")),
+               MENU_BSEP(N_("GPT")),
                MENU_XENT('i', N_("change disk GUID")),
                MENU_XENT('n', N_("change partition name")),
                MENU_XENT('u', N_("change partition UUID")),
                MENU_XENT('l', N_("change table length")),
-               MENU_XENT('M', N_("enter protective/hybrid MBR")),
+               MENU_BENT('M', N_("enter protective/hybrid MBR")),
 
                MENU_XSEP(""),
                MENU_XENT('A', N_("toggle the legacy BIOS bootable flag")),
@@ -221,7 +222,7 @@ static const struct menu menu_dos = {
                MENU_XENT('b', N_("move beginning of data in a partition")),
                MENU_XENT('i', N_("change the disk identifier")),
 
-               MENU_XENT_NEST('M', N_("return from protective/hybrid MBR to GPT"),
+               MENU_BENT_NEST('M', N_("return from protective/hybrid MBR to GPT"),
                                        FDISK_DISKLABEL_DOS, FDISK_DISKLABEL_GPT),
                { 0, NULL }
        }
@@ -739,7 +740,8 @@ static int gpt_menu_cb(struct fdisk_context **cxt0,
                        if (!mbr)
                                return -ENOMEM;
                        *cxt0 = cxt = mbr;
-                       fdisk_enable_details(cxt, 1);   /* keep us in expert mode */
+                       if (fdisk_is_details(cxt))
+                               fdisk_enable_details(cxt, 1);   /* keep us in expert mode */
                        fdisk_info(cxt, _("Entering protective/hybrid MBR disklabel."));
                        return 0;
                }