diff --git a/src/sysunix.c b/src/sysunix.c index 4cff17c..74bd1ac 100644 --- a/src/sysunix.c +++ b/src/sysunix.c @@ -20,6 +20,7 @@ */ #include "editline.h" +/* Prefer termios over the others since it is likely the most portable. */ #if defined(HAVE_TCGETATTR) #include @@ -28,8 +29,9 @@ void rl_ttyset(int Reset) static struct termios old; struct termios new; - if (Reset == 0) { - if (tcgetattr(0, &old) < 0) perror("tcgetattr"); + if (!Reset) { + if (-1 == tcgetattr(0, &old)) + perror("Failed tcgetattr"); rl_erase = old.c_cc[VERASE]; rl_kill = old.c_cc[VKILL]; rl_eof = old.c_cc[VEOF]; @@ -44,9 +46,11 @@ void rl_ttyset(int Reset) new.c_iflag &= ~(ISTRIP | INPCK); new.c_cc[VMIN] = 1; new.c_cc[VTIME] = 0; - if (tcsetattr(0, TCSADRAIN, &new) < 0) perror("tcsetattr"); + if (-1 == tcsetattr(0, TCSADRAIN, &new)) + perror("Failed tcsetattr"); } else { - (void)tcsetattr(0, TCSADRAIN, &old); + if (-1 == tcsetattr(0, TCSADRAIN, &old)) + perror("Failed tcsetattr"); } } @@ -58,8 +62,9 @@ void rl_ttyset(int Reset) static struct termio old; struct termio new; - if (Reset == 0) { - (void)ioctl(0, TCGETA, &old); + if (!Reset) { + if (-1 == ioctl(0, TCGETA, &old)) + perror("Failed ioctl(TCGETA)"); rl_erase = old.c_cc[VERASE]; rl_kill = old.c_cc[VKILL]; rl_eof = old.c_cc[VEOF]; @@ -74,13 +79,15 @@ void rl_ttyset(int Reset) new.c_iflag &= ~(ISTRIP | INPCK); new.c_cc[VMIN] = 1; new.c_cc[VTIME] = 0; - (void)ioctl(0, TCSETAW, &new); + if (-1 == ioctl(0, TCSETAW, &new)) + perror("Failed ioctl(TCSETAW)"); } else { - (void)ioctl(0, TCSETAW, &old); + if (-1 == ioctl(0, TCSETAW, &old)) + perror("Failed ioctl(TCSETAW)"); } } -#else /* Neither HAVE_TERMIO_H or HAVE_TCGETATTR */ +#elif defined(HAVE_SGTTY_H) #include void rl_ttyset(int Reset) @@ -93,18 +100,21 @@ void rl_ttyset(int Reset) struct ltchars old_ltchars; #endif - if (Reset == 0) { - (void)ioctl(0, TIOCGETP, &old_sgttyb); + if (!Reset) { + if (-1 == ioctl(0, TIOCGETP, &old_sgttyb)) + perror("Failed TIOCGETP"); rl_erase = old_sgttyb.sg_erase; rl_kill = old_sgttyb.sg_kill; - (void)ioctl(0, TIOCGETC, &old_tchars); + if (-1 == ioctl(0, TIOCGETC, &old_tchars)) + perror("Failed TIOCGETC"); rl_eof = old_tchars.t_eofc; rl_intr = old_tchars.t_intrc; rl_quit = old_tchars.t_quitc; #ifdef CONFIG_SIGSTOP - (void)ioctl(0, TIOCGLTC, &old_ltchars); + if (-1 == ioctl(0, TIOCGLTC, &old_ltchars)) + perror("Failed TIOCGLTC"); rl_susp = old_ltchars.t_suspc; #endif @@ -114,24 +124,37 @@ void rl_ttyset(int Reset) #ifdef PASS8 new_sgttyb.sg_flags |= PASS8; #endif - (void)ioctl(0, TIOCSETP, &new_sgttyb); - + if (-1 == ioctl(0, TIOCSETP, &new_sgttyb)) + perror("Failed TIOCSETP"); new_tchars = old_tchars; new_tchars.t_intrc = -1; new_tchars.t_quitc = -1; - (void)ioctl(0, TIOCSETC, &new_tchars); + if (-1 == ioctl(0, TIOCSETC, &new_tchars)) + perror("Failed TIOCSETC"); } else { - (void)ioctl(0, TIOCSETP, &old_sgttyb); - (void)ioctl(0, TIOCSETC, &old_tchars); + if (-1 == ioctl(0, TIOCSETP, &old_sgttyb)) + perror("Failed TIOCSETP"); + if (-1 == ioctl(0, TIOCSETC, &old_tchars)) + perror("Failed TIOCSETC"); } } -#endif /* Neither HAVE_TERMIO_H or HAVE_TCGETATTR */ +#else /* Neither HAVE_SGTTY_H, HAVE_TERMIO_H or HAVE_TCGETATTR */ +#error Unsupported platform, missing tcgetattr(), termio.h and sgtty.h +#endif /* Neither HAVE_SGTTY_H, HAVE_TERMIO_H or HAVE_TCGETATTR */ void rl_add_slash(char *path, char *p) { struct stat Sb; if (stat(path, &Sb) >= 0) - (void)strcat(p, S_ISDIR(Sb.st_mode) ? "/" : " "); + strcat(p, S_ISDIR(Sb.st_mode) ? "/" : " "); } +/** + * Local Variables: + * version-control: t + * indent-tabs-mode: t + * c-file-style: "ellemtel" + * c-basic-offset: 4 + * End: + */