[syslinux] keystrokes
Ady
ady-sf at hotmail.com
Sat Sep 6 19:15:48 PDT 2014
> Ady <ady-sf at hotmail.com> writes:
>
> >> Ady <ady-sf at hotmail.com> writes:
> >>
> >>>> On Sat, Sep 6, 2014 at 8:18 AM, Ady <ady-sf at hotmail.com> wrote:
> >>>>
> >>>>> What actions are _supposed_ to be triggered by each of:
> >>>>>
> >>>>> [Ctrl-J]
> >>>>> [Ctrl-M]
> >>>>>
> >>>>> in the Syslinux command line in version 6.03-pre20?
> >>>>
> >>>> They should do nothing special but either might be interpreted like
> >>>> an <enter>.
> >>>
> >>> Well, for a common user, "nothing special" doesn't seem exactly the
> >>> same as "<enter>".
> >>>
> >>> I had already seen [Ctrl+J] being the same as [Enter] in "cli.c", but
> >>> I couldn't find the meaning (or intention of) [Ctrl+M].
> >>
> >> get_key() returns 13 (ASCII CR, \r) for Enter, just like for Ctrl-M.
> >> Ctrl-J is LF (\n). Either or both is used to terminate lines under
> >> different operating systems, so it makes sense to handle them the same.
> >>
> >> > [Ctrl+M] _seems_ to be behaving as [Enter], but since it is not in
> >> > "cli.c", I decided to post here in the mailing list.
> >>
> >> See above> Ctrl-M _is_ Enter, in some sense.
> >
> >
> > Please forgive my ignorance (I am not a developer). Where in the
> > Syslinux code we can find that [Ctrl-M] is "CR"?
>
> Read http://en.wikipedia.org/wiki/ASCII: the CR ASCII control character
> is typed in as Ctrl-M.
>
Yes, I have already visited
http://en.wikipedia.org/wiki/ASCII#ASCII_control_code_chart
in the past, so (I think) I understood what you meant by ASCII 13 and
"^M" being "CR" and "^J" meaning "LF". I was trying to find something
of that sort in the Syslinux source code.
> > For example, in "./com32/elflink/ldlinux/cli.c", line 219, we can
> > see:
> > case KEY_ENTER:
> > case KEY_CTRL('J'):
> > ret = cmdline;
> > done = true;
> > break;
> >
> > So I can see that [Ctrl-J] has the same effect as [Enter] in the
> > Syslinux CLI.
> >
> > But I can't find [Ctrl-M], or rather, I don't know how to find it.
> >
> > As with other keystroke combinations that are not listed or
> > mentioned, I would had expected for [Ctrl-M] to do "nothing".
> >
> > So, where in the Syslinux source code the effect of [Ctrl-M] is
> > defined as to be "CR" (or [Enter], or whatever)?
>
> com32/libutil/include/getkey.h:#define KEY_ENTER 0x000d
>
> that is, CR. While in some cases (eg. with directly connected keyboard)
> it would be possible to tell apart the Enter key from Ctrl-M, sometimes
> (eg. over a serial line) this would be impossible. To ensure uniformity,
> it's not worth making this distinction.
Aha! OK, that also explains why, for example, [Ctrl-I] (ASCII 9,
"Horizontal Tab") is equivalent to [Tab] (KEY_TAB) in the Syslinux
CLI even though [Ctrl-I] is not mentioned in "cli.c".
> --
> Regards,
> Feri.
Thank you,
Ady.
More information about the Syslinux
mailing list