fdisk: move "create label" actions to menu callback
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
6d9362988e
commit
b3ac22eff3
|
@ -52,6 +52,7 @@ DECLARE_MENU_CB(sun_menu_cb);
|
|||
DECLARE_MENU_CB(geo_menu_cb);
|
||||
DECLARE_MENU_CB(dos_menu_cb);
|
||||
DECLARE_MENU_CB(bsd_menu_cb);
|
||||
DECLARE_MENU_CB(createlabel_menu_cb);
|
||||
|
||||
/*
|
||||
* Menu entry macros:
|
||||
|
@ -110,7 +111,7 @@ struct menu menu_generic = {
|
|||
};
|
||||
|
||||
struct menu menu_createlabel = {
|
||||
/* .callback = createlabel_menu_cb, */
|
||||
.callback = createlabel_menu_cb,
|
||||
.exclude = FDISK_DISKLABEL_BSD,
|
||||
.entries = {
|
||||
MENU_SEP(N_("Create a new label")),
|
||||
|
@ -619,6 +620,35 @@ static int geo_menu_cb(struct fdisk_context **cxt0,
|
|||
return rc;
|
||||
}
|
||||
|
||||
static int createlabel_menu_cb(struct fdisk_context **cxt0,
|
||||
const struct menu *menu __attribute__((__unused__)),
|
||||
const struct menu_entry *ent)
|
||||
{
|
||||
struct fdisk_context *cxt = *cxt0;
|
||||
int rc = -EINVAL;
|
||||
|
||||
DBG(FRONTEND, dbgprint("enter Create label menu"));
|
||||
|
||||
assert(cxt);
|
||||
assert(ent);
|
||||
|
||||
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;
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
#ifdef TEST_PROGRAM
|
||||
struct fdisk_label *fdisk_new_dos_label(struct fdisk_context *cxt) { return NULL; }
|
||||
struct fdisk_label *fdisk_new_bsd_label(struct fdisk_context *cxt) { return NULL; }
|
||||
|
|
|
@ -528,12 +528,6 @@ static void command_prompt(struct fdisk_context *cxt)
|
|||
if (fdisk_ask_partnum(cxt, &n, FALSE) == 0)
|
||||
delete_partition(cxt, n);
|
||||
break;
|
||||
case 'g':
|
||||
fdisk_create_disklabel(cxt, "gpt");
|
||||
break;
|
||||
case 'G':
|
||||
fdisk_create_disklabel(cxt, "sgi");
|
||||
break;
|
||||
case 'i':
|
||||
if (fdisk_is_disklabel(cxt, SGI))
|
||||
sgi_create_info(cxt);
|
||||
|
@ -546,17 +540,11 @@ static void command_prompt(struct fdisk_context *cxt)
|
|||
case 'n':
|
||||
new_partition(cxt);
|
||||
break;
|
||||
case 'o':
|
||||
fdisk_create_disklabel(cxt, "dos");
|
||||
break;
|
||||
case 'p':
|
||||
list_table(cxt);
|
||||
break;
|
||||
case 'q':
|
||||
handle_quit(cxt);
|
||||
case 's':
|
||||
fdisk_create_disklabel(cxt, "sun");
|
||||
break;
|
||||
case 't':
|
||||
change_partition_type(cxt);
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue