summaryrefslogtreecommitdiff
path: root/com32/gfxboot/gfxboot.c
diff options
context:
space:
mode:
authorSteffen Winterfeldt <wfeldt@opensuse.org>2010-04-13 17:42:12 +0200
committerSebastian Herbszt <herbszt@gmx.de>2010-04-24 21:58:21 +0200
commit13ae3a4519f69e017bcb3f844964e69b033379fe (patch)
tree66b5c910e17931f170e29b51fb0fb082a550fa44 /com32/gfxboot/gfxboot.c
parenta297f1fd73947a6eea329357aca2f83deebb95e9 (diff)
downloadsyslinux-13ae3a4519f69e017bcb3f844964e69b033379fe.tar.gz
gfxboot: handle IPAPPEND
Signed-off-by: Steffen Winterfeldt <wfeldt@opensuse.org> Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
Diffstat (limited to 'com32/gfxboot/gfxboot.c')
-rw-r--r--com32/gfxboot/gfxboot.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/com32/gfxboot/gfxboot.c b/com32/gfxboot/gfxboot.c
index c300dcb1..daf00560 100644
--- a/com32/gfxboot/gfxboot.c
+++ b/com32/gfxboot/gfxboot.c
@@ -709,6 +709,8 @@ void boot(int index)
char *arg;
menu_t *menu_ptr;
int label_len;
+ unsigned u, ipapp;
+ const struct syslinux_ipappend_strings *ipappend;
for(menu_ptr = menu; menu_ptr; menu_ptr = menu_ptr->next, index--) {
if(!index) break;
@@ -730,6 +732,16 @@ void boot(int index)
arg = skip_spaces(arg);
+ // handle IPAPPEND
+ if(menu_ptr->ipappend && (ipapp = atoi(menu_ptr->ipappend))) {
+ ipappend = syslinux_ipappend_strings();
+ for(u = 0; u < ipappend->count; u++) {
+ if((ipapp & (1 << u)) && ipappend->ptr[u]) {
+ sprintf(arg + strlen(arg), " %s", ipappend->ptr[u]);
+ }
+ }
+ }
+
boot_entry(menu_ptr, arg);
}