*: 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:
committed by
Denys Vlasenko
parent
02788ac7e2
commit
7b18107384
@ -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
|
||||
|
Reference in New Issue
Block a user