[syslinux] 5.10 DISPLAY files (and SAY directive) issues

Gene Cumm gene.cumm at gmail.com
Thu Mar 21 21:16:59 PDT 2013

On Thu, Mar 21, 2013 at 11:25 AM, Ady <ady-sf at hotmail.com> wrote:
>> 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.
> You are talking about the content of the DISPLAY file. In this
> particular case, I am talking about the SAY directive.
> When a SAY directive is about to print the message, the pseudo-code
> should be: if the cursor is not at column 1, go to column 1 of the
> next row before printing the message.

Perhaps there would be a case for someone to want this behavior.

>> > 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.
> The behavior seems to be related to the "boot:" prompt.
> During 5.00 pre-releases, after a text was shown by means of the
> DISPLAY directive, the "boot:" prompt used to go back to column 1,
> overwriting the last displayed row of "help.txt". At some point
> during the development, this was corrected for the DISPLAY directive,
> by leaving (showing) the "boot:" prompt at the next column of the
> same row after the last character of "help.txt".
> It would seem that a similar effect needs to be implemented for
> F1-F12.

I'm pretty sure the *nix and DOS "standard" prefer having a trailing
delimiter, *nix a LF, DOS a EM(EOF/Ctrl-Z), iirc.  I'd say the
recoverable error is that the file doesn't have this.  However, this
requirement should be documented or the behavior should be to ensure
the last line is not overwritten.


More information about the Syslinux mailing list