diff options
author | H. Peter Anvin <hpa@zytor.com> | 2006-10-02 21:44:00 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2006-10-02 21:44:00 -0700 |
commit | 72677e475f8f292c4d2c83e7a6c9fccb66993dc9 (patch) | |
tree | 4b567de72cea6f883f02b92733420d94a1a8eec3 | |
parent | f50f6ed18ba4aa2776b697581d0c3874c0335e0f (diff) | |
download | syslinux-72677e475f8f292c4d2c83e7a6c9fccb66993dc9.tar.gz |
New TEXT..ENDTEXT statement for the benefit of the menu system
-rw-r--r-- | keywords | 1 | ||||
-rw-r--r-- | keywords.inc | 69 | ||||
-rw-r--r-- | parseconfig.inc | 25 |
3 files changed, 62 insertions, 33 deletions
@@ -1,4 +1,5 @@ menu +text append default display diff --git a/keywords.inc b/keywords.inc index cffe6a75..811d5bd8 100644 --- a/keywords.inc +++ b/keywords.inc @@ -1,6 +1,6 @@ ;; ----------------------------------------------------------------------- ;; -;; Copyright 1994-2002 H. Peter Anvin - All Rights Reserved +;; Copyright 1994-2006 H. Peter Anvin - All Rights Reserved ;; ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -42,42 +42,45 @@ keywd_size equ 8 ; Bytes per keyword align 4, db 0 +%define FKeyN(n) (FKeyName+(((n)-1) << FILENAME_MAX_LG2)) + keywd_table: - keyword menu, pc_comment - keyword append, pc_append - keyword default, pc_default - keyword display, pc_filecmd, get_msg_file - keyword font, pc_filecmd, loadfont - keyword implicit, pc_setint16, AllowImplicit - keyword kbdmap, pc_filecmd, loadkeys - keyword kernel, pc_kernel - keyword label, pc_label - keyword prompt, pc_setint16, ForcePrompt - keyword say, pc_say - keyword serial, pc_serial - keyword console, pc_setint16, DisplayCon - keyword timeout, pc_timeout, KbdTimeout - keyword totaltimeout, pc_timeout, TotalTimeout - keyword ontimeout, pc_ontimeout - keyword onerror, pc_onerror - keyword allowoptions, pc_setint16, AllowOptions - keyword noescape, pc_setint16, NoEscape - keyword f1, pc_fkey, FKeyName+(0<<FILENAME_MAX_LG2) - keyword f2, pc_fkey, FKeyName+(1<<FILENAME_MAX_LG2) - keyword f3, pc_fkey, FKeyName+(2<<FILENAME_MAX_LG2) - keyword f4, pc_fkey, FKeyName+(3<<FILENAME_MAX_LG2) - keyword f5, pc_fkey, FKeyName+(4<<FILENAME_MAX_LG2) - keyword f6, pc_fkey, FKeyName+(5<<FILENAME_MAX_LG2) - keyword f7, pc_fkey, FKeyName+(6<<FILENAME_MAX_LG2) - keyword f8, pc_fkey, FKeyName+(7<<FILENAME_MAX_LG2) - keyword f9, pc_fkey, FKeyName+(8<<FILENAME_MAX_LG2) - keyword f10, pc_fkey, FKeyName+(9<<FILENAME_MAX_LG2) - keyword f0, pc_fkey, FKeyName+(9<<FILENAME_MAX_LG2) + keyword menu, pc_comment + keyword text, pc_text + keyword append, pc_append + keyword default, pc_default + keyword display, pc_filecmd, get_msg_file + keyword font, pc_filecmd, loadfont + keyword implicit, pc_setint16, AllowImplicit + keyword kbdmap, pc_filecmd, loadkeys + keyword kernel, pc_kernel + keyword label, pc_label + keyword prompt, pc_setint16, ForcePrompt + keyword say, pc_say + keyword serial, pc_serial + keyword console, pc_setint16, DisplayCon + keyword timeout, pc_timeout, KbdTimeout + keyword totaltimeout, pc_timeout, TotalTimeout + keyword ontimeout, pc_ontimeout + keyword onerror, pc_onerror + keyword allowoptions, pc_setint16, AllowOptions + keyword noescape, pc_setint16, NoEscape + keyword f1, pc_fkey, FKeyN(1) + keyword f2, pc_fkey, FKeyN(2) + keyword f3, pc_fkey, FKeyN(3) + keyword f4, pc_fkey, FKeyN(4) + keyword f5, pc_fkey, FKeyN(5) + keyword f6, pc_fkey, FKeyN(6) + keyword f7, pc_fkey, FKeyN(7) + keyword f8, pc_fkey, FKeyN(8) + keyword f9, pc_fkey, FKeyN(9) + keyword f10, pc_fkey, FKeyN(10) + keyword f0, pc_fkey, FKeyN(10) %if IS_PXELINUX - keyword ipappend, pc_ipappend + keyword ipappend, pc_ipappend %endif %if IS_PXELINUX || IS_ISOLINUX - keyword localboot, pc_localboot + keyword localboot, pc_localboot %endif keywd_count equ ($-keywd_table)/keywd_size diff --git a/parseconfig.inc b/parseconfig.inc index aef31613..de64a18f 100644 --- a/parseconfig.inc +++ b/parseconfig.inc @@ -306,6 +306,31 @@ pc_say: call pc_getline ; "say" command jmp crlf ; tailcall ; +; "text" command; ignore everything until we get an "endtext" line +; +pc_text: call pc_getline ; Ignore rest of line +.loop: + call pc_getline +.skipspace: + lodsb + and al,al + jz .loop + cmp al,' ' + jbe .skipspace + + dec si + lodsd + and eax,0xfdfdfdfd + cmp eax,'ENDT' + jne .loop + lodsd + and eax,0x00fdfdfd + cmp eax,'EXT' + jne .loop + ; If we get here we hit ENDTEXT + ret + +; ; Comment line ; pc_comment: ; Fall into pc_getline |