diff options
| author | Karel Zak <kzak@redhat.com> | 2013-07-11 16:56:00 +0200 |
|---|---|---|
| committer | Karel Zak <kzak@redhat.com> | 2013-09-16 16:47:07 +0200 |
| commit | b3ac22eff31bb95bd20f903c7cb4756b0edfc220 (patch) | |
| tree | d1ac84a126ac36bc38a77dca0e9c1909e11b8ae3 /fdisks/fdisk-menu.c | |
| parent | 6d9362988ec5117e4fd8efe50eae0ef3c0a2664a (diff) | |
| download | util-linux-b3ac22eff31bb95bd20f903c7cb4756b0edfc220.tar.gz | |
fdisk: move "create label" actions to menu callback
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'fdisks/fdisk-menu.c')
| -rw-r--r-- | fdisks/fdisk-menu.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/fdisks/fdisk-menu.c b/fdisks/fdisk-menu.c index 05fc7303..20c10e7c 100644 --- a/fdisks/fdisk-menu.c +++ b/fdisks/fdisk-menu.c @@ -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; } |
