Handle vga={ask|normal|ext} in linux.c32 syslinux-3.55-pre4
authorH. Peter Anvin <hpa@zytor.com>
Sat, 5 Jan 2008 00:24:11 +0000 (16:24 -0800)
committerH. Peter Anvin <hpa@zytor.com>
Sat, 5 Jan 2008 00:24:11 +0000 (16:24 -0800)
linux.c32 didn't handle vga={ask|normal|ext}, fix that.

com32/modules/linux.c

index c20536f..90aab68 100644 (file)
@@ -204,8 +204,22 @@ int main(int argc, char *argv[])
   if ((arg = find_argument(argp, "mem=")))
     mem_limit = saturate32(suffix_number(arg));
 
-  if ((arg = find_argument(argp, "vga=")))
-    video_mode = strtoul(arg, NULL, 0);
+  if ((arg = find_argument(argp, "vga="))) {
+    switch (arg[0] | 0x20) {
+    case 'a':                  /* "ask" */
+      video_mode = 0xfffd;
+      break;
+    case 'e':                  /* "ext" */
+      video_mode = 0xfffe;
+      break;
+    case 'n':                  /* "normal" */
+      video_mode = 0xffff;
+      break;
+    default:
+      video_mode = strtoul(arg, NULL, 0);
+      break;
+    }
+  }
 
   if ((arg = find_argument(argp, "initrd="))) {
     do {