Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #126433
| From | Egor <egor@ruby.local> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Correct way to detect F1 |
| Date | 2018-02-08 14:21 +0200 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <uurtke-ad.ln1@ruby.opensrc.club> (permalink) |
| References | <800430537@f122.n1.z21.fsxnet> |
shinobi <shinobi@f122.n1.z21.fsxnet> wrote:
> I wonder. What's the correct way to detect F1 in Linux Console?
Various terminals produce different sequences for F-keys. The terminal
I use (PuTTY) produces the following sequences under different
configurations:
\33[[A
\33OP
\33[11~
\33[M
(\33 is ESC)
Linux console produces \33[[A, but it is a bad practice to hardcode
terminal escape sequences. If you want your code to work on variety of
terminals, you need to use terminfo library.
Here's an example of how to get escape sequence for F1 using terminfo:
#include <term.h>
#include <stdio.h>
...
setupterm(NULL, fileno(stdio), NULL);
char* kf1 = tigetstr("kf1");
"kf1" is a terminal capability. There are many different ones, but this
particular one is responsible for input of the F1 key.
Manpage terminfo(5) has a full list of capabilities.
A very important thing to note is that tigetstr returns -1 on error,
and not NULL as one might expect.
To get proper input you need to enable raw mode using termios, as been
shown by another poster in this thread.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Correct way to detect F1 shinobi@f122.n1.z21.fsxnet (shinobi) - 2018-01-29 03:44 +1200
Re: Correct way to detect F1 Lorinczy Zsigmond <zsiga@nospam.for.me> - 2018-01-29 10:34 +0100
Re: Correct way to detect F1 Keith Thompson <kst-u@mib.org> - 2018-01-29 09:24 -0800
Re: Correct way to detect F1 "James R. Kuyper" <jameskuyper@verizon.net> - 2018-01-29 12:43 -0500
Re: Correct way to detect F1 scott@slp53.sl.home (Scott Lurndal) - 2018-01-29 18:20 +0000
Re: Correct way to detect F1 ais523 <ais523@nethack4.org> - 2018-01-29 21:03 +0000
Re: Correct way to detect F1 Robert Wessel <robertwessel2@yahoo.com> - 2018-01-29 20:47 -0600
Re: Correct way to detect F1 Keith Thompson <kst-u@mib.org> - 2018-01-29 20:01 -0800
Re: Correct way to detect F1 Robert Wessel <robertwessel2@yahoo.com> - 2018-01-29 22:43 -0600
Re: Correct way to detect F1 Ike Naar <ike@iceland.freeshell.org> - 2018-01-29 10:26 +0000
Re: Correct way to detect F1 "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2018-01-30 14:14 +0800
Re: Correct way to detect F1 luser droog <luser.droog@gmail.com> - 2018-01-30 09:26 -0800
Re: Correct way to detect F1 bartc <bc@freeuk.com> - 2018-01-30 18:39 +0000
Re: Correct way to detect F1 Egor <egor@ruby.local> - 2018-02-08 14:21 +0200
Re: Correct way to detect F1 shinobi@f153.n1.z21.fsxnet (shinobi) - 2018-02-08 16:41 +1200
Re: Correct way to detect F1 Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-02-08 20:43 +0000
Re: Correct way to detect F1 Keith Thompson <kst-u@mib.org> - 2018-02-08 13:13 -0800
Re: Correct way to detect F1 scott@slp53.sl.home (Scott Lurndal) - 2018-02-08 22:14 +0000
Re: Correct way to detect F1 Keith Thompson <kst-u@mib.org> - 2018-02-08 10:29 -0800
Re: Correct way to detect F1 Egor <egor@ruby.local> - 2018-02-09 15:05 +0200
Re: Correct way to detect F1 Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-02-09 17:30 +0000
Re: Correct way to detect F1 Keith Thompson <kst-u@mib.org> - 2018-02-09 10:06 -0800
Re: Correct way to detect F1 luser droog <luser.droog@gmail.com> - 2018-02-08 16:31 -0800
csiph-web