178 |
while (get_line (file, cmdline, sizeof (cmdline))) |
while (get_line (file, cmdline, sizeof (cmdline))) |
179 |
{ |
{ |
180 |
grub_command_t cmd; |
grub_command_t cmd; |
181 |
|
|
182 |
cmd = grub_command_find (cmdline); |
cmd = grub_command_find (cmdline); |
183 |
grub_errno = GRUB_ERR_NONE; |
grub_errno = GRUB_ERR_NONE; |
184 |
|
|
185 |
|
if (cur_entry) |
186 |
|
{ |
187 |
|
if (! cmd || ! (cmd->flags & GRUB_COMMAND_FLAG_TITLE)) |
188 |
|
{ |
189 |
|
cur_cmd = (grub_command_list_t) grub_malloc (sizeof (*cur_cmd)); |
190 |
|
if (! cur_cmd) |
191 |
|
goto fail; |
192 |
|
|
193 |
|
cur_cmd->command = grub_strdup (cmdline); |
194 |
|
if (! cur_cmd->command) |
195 |
|
{ |
196 |
|
grub_free (cur_cmd); |
197 |
|
goto fail; |
198 |
|
} |
199 |
|
|
200 |
|
cur_cmd->next = 0; |
201 |
|
|
202 |
|
*next_cmd = cur_cmd; |
203 |
|
next_cmd = &(cur_cmd->next); |
204 |
|
|
205 |
|
cur_entry->num++; |
206 |
|
continue; |
207 |
|
} |
208 |
|
} |
209 |
|
|
210 |
if (! cmd) |
if (! cmd) |
211 |
{ |
{ |
212 |
grub_printf ("Unknown command `%s' is ignored.\n", cmdline); |
grub_printf ("Unknown command `%s' is ignored.\n", cmdline); |
244 |
|
|
245 |
menu->size++; |
menu->size++; |
246 |
} |
} |
247 |
else if (! cur_entry) |
else |
248 |
{ |
{ |
249 |
/* Run the command if possible. */ |
/* Run the command if possible. */ |
250 |
if (cmd->flags & GRUB_COMMAND_FLAG_MENU) |
if (cmd->flags & GRUB_COMMAND_FLAG_MENU) |
251 |
{ |
{ |
252 |
grub_command_execute (cmdline); |
grub_command_execute (cmdline, 0); |
253 |
if (grub_errno != GRUB_ERR_NONE) |
if (grub_errno != GRUB_ERR_NONE) |
254 |
{ |
{ |
255 |
grub_print_error (); |
grub_print_error (); |
262 |
continue; |
continue; |
263 |
} |
} |
264 |
} |
} |
|
else |
|
|
{ |
|
|
cur_cmd = (grub_command_list_t) grub_malloc (sizeof (*cur_cmd)); |
|
|
if (! cur_cmd) |
|
|
goto fail; |
|
|
|
|
|
cur_cmd->command = grub_strdup (cmdline); |
|
|
if (! cur_cmd->command) |
|
|
{ |
|
|
grub_free (cur_cmd); |
|
|
goto fail; |
|
|
} |
|
|
|
|
|
cur_cmd->next = 0; |
|
|
|
|
|
*next_cmd = cur_cmd; |
|
|
next_cmd = &(cur_cmd->next); |
|
|
|
|
|
cur_entry->num++; |
|
|
} |
|
265 |
} |
} |
266 |
|
|
267 |
fail: |
fail: |
469 |
{ |
{ |
470 |
grub_menu_t menu = 0; |
grub_menu_t menu = 0; |
471 |
|
|
472 |
|
read_command_list (); |
473 |
|
read_fs_list (); |
474 |
|
|
475 |
if (config) |
if (config) |
476 |
{ |
{ |
477 |
menu = read_config_file (config); |
menu = read_config_file (config); |
480 |
grub_errno = GRUB_ERR_NONE; |
grub_errno = GRUB_ERR_NONE; |
481 |
} |
} |
482 |
|
|
|
read_command_list (); |
|
|
read_fs_list (); |
|
|
|
|
483 |
if (menu) |
if (menu) |
484 |
{ |
{ |
485 |
grub_menu_run (menu, nested); |
grub_menu_run (menu, nested); |