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:
};
struct menu menu_createlabel = {
-/* .callback = createlabel_menu_cb, */
+ .callback = createlabel_menu_cb,
.exclude = FDISK_DISKLABEL_BSD,
.entries = {
MENU_SEP(N_("Create a new label")),
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; }
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);
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;