[syslinux:elflink] ldlinux: Support "font"
syslinux-bot for Matt Fleming
matt.fleming at linux.intel.com
Tue Jul 12 20:03:27 PDT 2011
Commit-ID: c3d49b20017bb441060536a3422719bdd66255ac
Gitweb: http://syslinux.zytor.com/commit/c3d49b20017bb441060536a3422719bdd66255ac
Author: Matt Fleming <matt.fleming at linux.intel.com>
AuthorDate: Fri, 27 May 2011 17:57:05 +0100
Committer: Matt Fleming <matt.fleming at linux.intel.com>
CommitDate: Tue, 7 Jun 2011 20:02:56 +0100
ldlinux: Support "font"
Add support for parsing the "font" config directive to ldlinux.
Signed-off-by: Matt Fleming <matt.fleming at linux.intel.com>
---
com32/elflink/ldlinux/readconfig.c | 19 +++++++++++++++++++
core/font.inc | 1 +
2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/com32/elflink/ldlinux/readconfig.c b/com32/elflink/ldlinux/readconfig.c
index 906cbe0..61da2ff 100644
--- a/com32/elflink/ldlinux/readconfig.c
+++ b/com32/elflink/ldlinux/readconfig.c
@@ -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(®, 0, sizeof(reg));
+ reg.edi.w[0] = OFFS_WRT(KernelName, 0);
+ call16(core_open, ®, ®);
+ if (!(reg.eflags.l & EFLAGS_ZF))
+ call16(loadfont, ®, NULL);
+ else
+ printf("File not found\n");
+
+ refstr_put(filename);
} else if (looking_at(p, "kbdmap")) {
}
diff --git a/core/font.inc b/core/font.inc
index 1223635..9e840e4 100644
--- a/core/font.inc
+++ b/core/font.inc
@@ -25,6 +25,7 @@
;
loadfont.err: jmp close ; Tailcall the close routine
+ global loadfont
loadfont:
mov di,trackbuf
mov cx,4
More information about the Syslinux-commits
mailing list