summaryrefslogtreecommitdiff
path: root/libre/syslinux/0002-gfxboot-menu-label.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libre/syslinux/0002-gfxboot-menu-label.patch')
-rw-r--r--libre/syslinux/0002-gfxboot-menu-label.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/libre/syslinux/0002-gfxboot-menu-label.patch b/libre/syslinux/0002-gfxboot-menu-label.patch
new file mode 100644
index 000000000..0666a8832
--- /dev/null
+++ b/libre/syslinux/0002-gfxboot-menu-label.patch
@@ -0,0 +1,53 @@
+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);
+