Change the prompt format when check device failed. (#2094)

pull/2101/head
longpanda 2 years ago
parent 911d5dcab9
commit 12b51bcf09

@ -5005,40 +5005,73 @@ int ventoy_load_part_table(const char *diskname)
return 0; return 0;
} }
static grub_err_t ventoy_cmd_load_part_table(grub_extcmd_context_t ctxt, int argc, char **args) static void ventoy_prompt_end(void)
{ {
int ret; int op = 0;
char c; char c;
(void)argc;
(void)ctxt;
ret = ventoy_load_part_table(args[0]); grub_printf("\n\n\n");
if (ret) grub_printf(" 1 --- Exit grub\n");
{ grub_printf(" 2 --- Reboot\n");
grub_printf("\n\nPress r/h/e for the corresponding operation.\n"); grub_printf(" 3 --- Shut down\n");
grub_printf(" r --- Reboot\n"); grub_printf("Please enter your choice: ");
grub_printf(" h --- Halt\n"); grub_refresh();
grub_printf(" e --- Exit grub\n");
grub_refresh();
while (1) while (1)
{
c = grub_getkey();
if (c >= '1' && c <= '3')
{ {
c = grub_getkey(); if (op == 0)
if (c == 'r')
{ {
grub_reboot(); op = c - '0';
grub_printf("%c", c);
grub_refresh();
} }
else if (c == 'h') }
{ else if (c == '\r' || c == '\n')
grub_script_execute_sourcecode("halt"); {
if (op)
{
if (op == 1)
{
grub_exit();
}
else if (op == 2)
{
grub_reboot();
}
else if (op == 3)
{
grub_script_execute_sourcecode("halt");
}
} }
else if (c == 'e') }
else if (c == '\b')
{
if (op)
{ {
grub_exit(); op = 0;
grub_printf("\rPlease enter your choice: ");
grub_printf("\rPlease enter your choice: ");
grub_refresh();
} }
} }
} }
}
static grub_err_t ventoy_cmd_load_part_table(grub_extcmd_context_t ctxt, int argc, char **args)
{
int ret;
(void)argc;
(void)ctxt;
ret = ventoy_load_part_table(args[0]);
if (ret)
{
ventoy_prompt_end();
}
g_ventoy_disk_part_size[0] = ventoy_get_vtoy_partsize(0); g_ventoy_disk_part_size[0] = ventoy_get_vtoy_partsize(0);
g_ventoy_disk_part_size[1] = ventoy_get_vtoy_partsize(1); g_ventoy_disk_part_size[1] = ventoy_get_vtoy_partsize(1);

Loading…
Cancel
Save