822 |
{ |
{ |
823 |
struct line *linep = screen->lines + i; |
struct line *linep = screen->lines + i; |
824 |
char *p; |
char *p; |
|
grub_command_t c; |
|
825 |
|
|
826 |
/* Trim down space characters. */ |
/* Trim down space characters. */ |
827 |
for (p = linep->buf + linep->len - 1; |
for (p = linep->buf + linep->len - 1; |
838 |
/* Ignore an empty command line. */ |
/* Ignore an empty command line. */ |
839 |
continue; |
continue; |
840 |
|
|
841 |
c = grub_command_find (p); |
if (grub_command_execute (p, 0) != 0) |
|
if (! c) |
|
|
break; |
|
|
|
|
|
if (! (c->flags & GRUB_COMMAND_FLAG_CMDLINE)) |
|
|
{ |
|
|
grub_error (GRUB_ERR_INVALID_COMMAND, "invalid command `%s'", p); |
|
|
break; |
|
|
} |
|
|
|
|
|
if (! (c->flags & GRUB_COMMAND_FLAG_NO_ECHO)) |
|
|
grub_printf ("%s\n", p); |
|
|
|
|
|
if (grub_command_execute (p) != 0) |
|
842 |
break; |
break; |
843 |
} |
} |
844 |
|
|
845 |
if (grub_errno == GRUB_ERR_NONE && grub_loader_is_loaded ()) |
if (grub_errno == GRUB_ERR_NONE && grub_loader_is_loaded ()) |
846 |
/* Implicit execution of boot, only if something is loaded. */ |
/* Implicit execution of boot, only if something is loaded. */ |
847 |
grub_command_execute ("boot"); |
grub_command_execute ("boot", 0); |
848 |
|
|
849 |
if (grub_errno != GRUB_ERR_NONE) |
if (grub_errno != GRUB_ERR_NONE) |
850 |
{ |
{ |