Hello Syslinux Team, The following scenario shows some issues when using DISPLAY files (and the SAY directive). *** help.txt start *** LINE 1 OF help.txt LINE 2 OF help.txt LINE 3 (one before last) OF help.txt USE F1 TO TEST *** help.txt end *** Note: in "help.txt", there are no initial nor ending blank lines. After the last line: " USE F1 TO TEST" there is no additional LF/CR. *** syslinux.cfg start *** DEFAULT cat1 PROMPT 1 SAY This is the 1st initial "S A Y" directive SAY This is the 2nd (last) initial "S A Y" directive DISPLAY help.txt SAY This is the 1st ending "S A Y" directive SAY This is the 2nd (last) ending "S A Y" directive F1 help.txt LABEL cat1 COM32 cat.c32 APPEND help.txt *** syslinux.cfg end *** I tested the above with ISOLINUX 5.10pre2. After booting with the above cfg file, the third "say" directive is presented in the SAME row as the last line of "help.txt" (shown by the DISPLAY directive), right after the last character of "help.txt" (at least the SAY statement doesn't overwrite the last line of "help.txt"). The expected behavior for the SAY directive should be to present a new (next) line; right? After booting with the above cfg file (and after noting the aforementioned behavior), press F1. Note that the last line of "help.txt" is now OVERWRITTEN by the "boot:" prompt. In this case, the expected behavior for the F1-F12 keys should be to show the "boot:" prompt (when the F1-F12 key was pressed while being in CLI) right after the last character of the displayed "help.txt" file, in the same line (so the already displayed text is not scrolled up and its last line not overwritten either). After booting with the above cfg file, and after pressing F1 (and after noting the two aforementioned behaviors), press [ENTER] so to execute the default label ("cat1"). Now the last line of "help.txt" is displayed too, and the "boot:" prompt us shown in the same line right after its last character. So the complete text is displayed (not overwritten), while there is no scrolling of the text (which is correct / adequate). The result of the "boot:" prompt being shown right after the last character of the "help.txt" file might be not "pretty", but it is better than overwriting the last line of "help.txt" and better than scrolling the already-displayed text. I hope the current behavior can be improved / corrected, so (old) DISPLAY files (and the SAY directive) can still be used as expected. TIA, Ady.
Jeffrey Hutzelman
2013-Mar-21 13:03 UTC
[syslinux] 5.10 DISPLAY files (and SAY directive) issues
On Thu, 2013-03-21 at 14:17 +0200, Ady wrote:> Note: in "help.txt", there are no initial nor ending blank lines. > After the last line: > " USE F1 TO TEST" > there is no additional LF/CR.> After booting with the above cfg file, the third "say" directive is > presented in the SAME row as the last line of "help.txt" (shown by > the DISPLAY directive), right after the last character of "help.txt" > (at least the SAY statement doesn't overwrite the last line of > "help.txt"). The expected behavior for the SAY directive should be to > present a new (next) line; right?No, what you describe is exactly the behavior I would expect. The DISPLAY directive prints only what is in the file. If there is no CRLF at the end of the last line, then none is printed, and the next output, whatever it is, picks up at that point. It is a feature, not a bug, that Syslinux does not imagine a newline where there wasn't one.> After booting with the above cfg file (and after noting the > aforementioned behavior), press F1. Note that the last line of > "help.txt" is now OVERWRITTEN by the "boot:" prompt. In this case, > the expected behavior for the F1-F12 keys should be to show the > "boot:" prompt (when the F1-F12 key was pressed while being in CLI) > right after the last character of the displayed "help.txt" file, in > the same line (so the already displayed text is not scrolled up and > its last line not overwritten either).I agree -- it sounds like a CR (but not LF) is being emitted just before the "boot:" prompt, even though there is not one in the file. That seems wrong. -- Jeff