ldlinux: Support "font"
authorMatt Fleming <matt.fleming@linux.intel.com>
Fri, 27 May 2011 16:57:05 +0000 (17:57 +0100)
committerMatt Fleming <matt.fleming@linux.intel.com>
Tue, 7 Jun 2011 19:02:56 +0000 (20:02 +0100)
Add support for parsing the "font" config directive to ldlinux.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
com32/elflink/ldlinux/readconfig.c
core/font.inc

index 906cbe0..61da2ff 100644 (file)
@@ -727,6 +727,7 @@ static inline void io_delay(void)
 }
 
 extern void get_msg_file(void);
+extern void loadfont(void);
 
 extern char syslinux_banner[];
 extern char copyright_str[];
@@ -1135,7 +1136,25 @@ do_include:
 
                refstr_put(filename);
        } else if (looking_at(p, "font")) {
+               com32sys_t reg;
+               char *filename, *dst = KernelName;
+               size_t len = FILENAME_MAX - 1;
+
+               filename = refstrdup(skipspace(p + 4));
+
+               while (len-- && not_whitespace(*filename))
+                       *dst++ = *filename++;
+               *dst = '\0';
 
+               memset(&reg, 0, sizeof(reg));
+               reg.edi.w[0] = OFFS_WRT(KernelName, 0);
+               call16(core_open, &reg, &reg);
+               if (!(reg.eflags.l & EFLAGS_ZF))
+                       call16(loadfont, &reg, NULL);
+               else
+                       printf("File not found\n");
+
+               refstr_put(filename);
        } else if (looking_at(p, "kbdmap")) {
 
        }
index 1223635..9e840e4 100644 (file)
@@ -25,6 +25,7 @@
 ;
 loadfont.err:  jmp close                       ; Tailcall the close routine
 
+               global loadfont
 loadfont:
                mov di,trackbuf
                mov cx,4