123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- From: Colin Watson <cjwatson@ubuntu.com>
- Date: Wed, 2 Nov 2011 07:57:23 +0100
- Subject: Allow boot entry to start with label instead of menu_label.
- menu_ptr->menu_label is human-readable (perhaps even translatable!) text if
- the MENU LABEL command is used, which isn't very convenient at the start of
- a boot entry. Allow the entry to start with menu_ptr->label (an
- identifier) as an alternative.
- ---
- com32/gfxboot/gfxboot.c | 16 ++++++++++------
- 1 file changed, 10 insertions(+), 6 deletions(-)
- diff --git a/com32/gfxboot/gfxboot.c b/com32/gfxboot/gfxboot.c
- index f67132c..4c76a35 100644
- --- a/com32/gfxboot/gfxboot.c
- +++ b/com32/gfxboot/gfxboot.c
- @@ -818,7 +818,7 @@ void boot(int index)
- {
- char *arg, *alt_kernel;
- menu_t *menu_ptr;
- - int i, label_len;
- + int i, label_len, menu_label_len;
- unsigned ipapp;
- const struct syslinux_ipappend_strings *ipappend;
- char *gfxboot_cwd = (char *) gfx_config.gfxboot_cwd;
- @@ -836,18 +836,22 @@ void boot(int index)
- if(!menu_ptr || !menu_ptr->menu_label) return;
-
- arg = skipspace(cmdline);
- - label_len = strlen(menu_ptr->menu_label);
- + label_len = strlen(menu_ptr->label);
- + menu_label_len = strlen(menu_ptr->menu_label);
-
- // if it does not start with label string, assume first word is kernel name
- - if(strncmp(arg, menu_ptr->menu_label, label_len)) {
- + if(!strncmp(arg, menu_ptr->label, label_len)) {
- + arg += label_len;
- + }
- + else if(!strncmp(arg, menu_ptr->menu_label, menu_label_len)) {
- + arg += menu_label_len;
- + }
- + else {
- alt_kernel = arg;
- arg = skip_nonspaces(arg);
- if(*arg) *arg++ = 0;
- if(*alt_kernel) menu_ptr->alt_kernel = alt_kernel;
- }
- - else {
- - arg += label_len;
- - }
-
- arg = skipspace(arg);
-
|