[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.

-- 
-Gene


More information about the Syslinux mailing list