From 5635d1955091ff7084b7cafc22b48cd5a5b17387 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 14 Feb 2017 15:11:35 +0100 Subject: fdisk: improve --wipe functionality * always (except --wipe=never) wipe old partition tables * improve warn messages * improve man page Addresses: https://github.com/karelzak/util-linux/issues/410 Signed-off-by: Karel Zak --- disk-utils/fdisk-menu.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) (limited to 'disk-utils/fdisk-menu.c') diff --git a/disk-utils/fdisk-menu.c b/disk-utils/fdisk-menu.c index 3ea5e3ddd..baac9791a 100644 --- a/disk-utils/fdisk-menu.c +++ b/disk-utils/fdisk-menu.c @@ -1032,22 +1032,25 @@ static int createlabel_menu_cb(struct fdisk_context **cxt0, rc = fdisk_create_disklabel(cxt, "sgi"); break; } - return rc; + } else { + switch (ent->key) { + case 'g': + rc = fdisk_create_disklabel(cxt, "gpt"); + break; + case 'G': + rc = fdisk_create_disklabel(cxt, "sgi"); + break; + case 'o': + rc = fdisk_create_disklabel(cxt, "dos"); + break; + case 's': + rc = fdisk_create_disklabel(cxt, "sun"); + break; + } } - switch (ent->key) { - case 'g': - fdisk_create_disklabel(cxt, "gpt"); - break; - case 'G': - fdisk_create_disklabel(cxt, "sgi"); - break; - case 'o': - fdisk_create_disklabel(cxt, "dos"); - break; - case 's': - fdisk_create_disklabel(cxt, "sun"); - break; - } + if (rc == 0 && fdisk_get_collision(cxt)) + follow_wipe_mode(cxt); + return rc; } -- cgit v1.2.3-55-g7522