From 1d1d95051a288b6bf64498aac9fb20047f384b7d Mon Sep 17 00:00:00 2001 From: Erik Andersen Date: Fri, 21 Apr 2000 01:26:49 +0000 Subject: More Doc updates. cmdedit and more termio fixes. --- more.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'more.c') diff --git a/more.c b/more.c index f842149..20aa370 100644 --- a/more.c +++ b/more.c @@ -33,17 +33,26 @@ static const char more_usage[] = "more [file ...]\n"; +/* ED: sparc termios is broken: revert back to old termio handling. */ #ifdef BB_FEATURE_USE_TERMIOS -#include +#if #cpu(sparc) +# include +# define termios termio +# define setTermSettings(fd,argp) ioctl(fd,TCSETAF,argp) +# define getTermSettings(fd,argp) ioctl(fd,TCGETA,argp) +#else +# include +# define setTermSettings(fd,argp) tcsetattr(fd,TCSANOW,argp) +# define getTermSettings(fd,argp) tcgetattr(fd, argp); +#endif FILE *cin; -/* sparc and other have broken termios support: use old termio handling. */ -struct termio initial_settings, new_settings; +struct termios initial_settings, new_settings; void gotsig(int sig) { - ioctl(fileno(cin), TCSETAF, &initial_settings); + setTermSettings(fileno(cin), &initial_settings); fprintf(stdout, "\n"); exit(TRUE); } @@ -98,11 +107,11 @@ extern int more_main(int argc, char **argv) cin = fopen("/dev/tty", "r"); if (!cin) cin = fopen("/dev/console", "r"); - ioctl(fileno(cin), TCGETA, &initial_settings); + getTermSettings(fileno(cin), &initial_settings); new_settings = initial_settings; new_settings.c_lflag &= ~ICANON; new_settings.c_lflag &= ~ECHO; - ioctl(fileno(cin), TCSETAF, &new_settings); + setTermSettings(fileno(cin), &new_settings); #ifdef BB_FEATURE_AUTOWIDTH ioctl(fileno(stdout), TIOCGWINSZ, &win); -- cgit v1.1