*: use _exit() in sighandlers; showkey: do not use exit-thru-sighandler

While at it, make ESC sequences more readable; and removed check for
isatty(stdin) in reset. Code shrink:

   text    data     bss     dec     hex filename
 884771     936   17216  902923   dc70b busybox_old
 884723     936   17216  902875   dc6db busybox_unstripped

Signed-off-by: Marek Polacek <mmpolacek@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Marek Polacek
2010-10-28 21:34:56 +02:00
committed by Denys Vlasenko
parent 02788ac7e2
commit 7b18107384
8 changed files with 78 additions and 72 deletions

View File

@ -29,16 +29,20 @@ struct globals {
#define new_settings (G.new_settings )
#define cin_fileno (G.cin_fileno )
#define setTermSettings(fd, argp) do { \
if (ENABLE_FEATURE_USE_TERMIOS) tcsetattr(fd, TCSANOW, argp); \
} while (0)
#define setTermSettings(fd, argp) \
do { \
if (ENABLE_FEATURE_USE_TERMIOS) \
tcsetattr(fd, TCSANOW, argp); \
} while (0)
#define getTermSettings(fd, argp) tcgetattr(fd, argp)
static void gotsig(int sig UNUSED_PARAM)
{
bb_putchar('\n');
/* bb_putchar_stderr doesn't use stdio buffering,
* therefore it is safe in signal handler */
bb_putchar_stderr('\n');
setTermSettings(cin_fileno, &initial_settings);
exit(EXIT_FAILURE);
_exit(EXIT_FAILURE);
}
#define CONVERTED_TAB_SIZE 8