summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-08-29 05:00:40 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2010-08-29 05:00:40 +0200
commitcc131534e2bc96a5005dc98a9559de009a68068a (patch)
treefdd0936f98cd5f1e2d752fe014ca99c65cf38ee4
parent140ac91fe154c9a1bb33cba38380c3cc81e1cf15 (diff)
showkey: code shrink
function old new delta signal_handler 52 45 -7 showkey_main 461 454 -7 xset1 40 29 -11 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--console-tools/showkey.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/console-tools/showkey.c b/console-tools/showkey.c
index ef16f6fb1..149ea6465 100644
--- a/console-tools/showkey.c
+++ b/console-tools/showkey.c
@@ -13,21 +13,19 @@
// set raw tty mode
// also used by microcom
// libbb candidates?
-static void xget1(int fd, struct termios *t, struct termios *oldt)
+static void xget1(struct termios *t, struct termios *oldt)
{
- tcgetattr(fd, oldt);
+ tcgetattr(STDIN_FILENO, oldt);
*t = *oldt;
cfmakeraw(t);
}
-static int xset1(int fd, struct termios *tio, const char *device)
+static void xset1(struct termios *tio)
{
- int ret = tcsetattr(fd, TCSAFLUSH, tio);
-
+ int ret = tcsetattr(STDIN_FILENO, TCSAFLUSH, tio);
if (ret) {
- bb_perror_msg("can't tcsetattr for %s", device);
+ bb_perror_msg("can't tcsetattr for stdin");
}
- return ret;
}
/*
@@ -49,7 +47,7 @@ struct globals {
static void signal_handler(int signo)
{
// restore keyboard and console settings
- xset1(STDIN_FILENO, &tio0, "stdin");
+ xset1(&tio0);
xioctl(STDIN_FILENO, KDSKBMODE, (void *)(ptrdiff_t)kbmode);
// alarmed? -> exit 0
exit(SIGALRM == signo);
@@ -79,15 +77,15 @@ int showkey_main(int argc UNUSED_PARAM, char **argv)
, (option_mask32 & OPT_a) ? "when CTRL+D pressed" : "10s after last keypress"
);
// prepare for raw mode
- xget1(STDIN_FILENO, &tio, &tio0);
+ xget1(&tio, &tio0);
// put stdin in raw mode
- xset1(STDIN_FILENO, &tio, "stdin");
+ xset1(&tio);
if (option_mask32 & OPT_a) {
- char c;
+ unsigned char c;
// just read stdin char by char
while (1 == safe_read(STDIN_FILENO, &c, 1)) {
- printf("%3d 0%03o 0x%02x\r\n", c, c, c);
+ printf("%3u 0%03o 0x%02x\r\n", c, c, c);
if (04 /*CTRL-D*/ == c)
break;
}
@@ -114,16 +112,18 @@ int showkey_main(int argc UNUSED_PARAM, char **argv)
// show interpreted scancodes (default) ? ->
} else {
int kc;
- if (i+2 < n && (c & 0x7f) == 0
- && (buf[i+1] & 0x80) != 0
- && (buf[i+2] & 0x80) != 0) {
+ if (i+2 < n
+ && (c & 0x7f) == 0
+ && (buf[i+1] & 0x80) != 0
+ && (buf[i+2] & 0x80) != 0
+ ) {
kc = ((buf[i+1] & 0x7f) << 7) | (buf[i+2] & 0x7f);
i += 3;
} else {
kc = (c & 0x7f);
i++;
}
- printf("keycode %3d %s", kc, (c & 0x80) ? "release" : "press");
+ printf("keycode %3u %s", kc, (c & 0x80) ? "release" : "press");
}
}
puts("\r");