This welcomes textproc/ispell in the 1990s and switches it from sgtty ioctls to POSIX termios.
ok? Index: Makefile =================================================================== RCS file: /cvs/ports/textproc/ispell/Makefile,v retrieving revision 1.59 diff -u -p -r1.59 Makefile --- Makefile 14 Mar 2013 09:25:09 -0000 1.59 +++ Makefile 5 Dec 2013 20:30:18 -0000 @@ -57,7 +57,7 @@ EXTRACT_ONLY= ${DISTNAME}.tar.gz \ SUBST_VARS+= VERSION PKGNAME-main= ${DISTNAME} -REVISION-main= 7 +REVISION-main= 8 MULTI_PACKAGES= -main -dutch -french -german -swedish -russian -portuguese \ -slovak -spanish .for i in ${MULTI_PACKAGES} Index: patches/patch-config_X =================================================================== RCS file: patches/patch-config_X diff -N patches/patch-config_X --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-config_X 5 Dec 2013 20:30:18 -0000 @@ -0,0 +1,14 @@ +$OpenBSD$ +--- config.X.orig Wed Jul 25 23:51:45 2001 ++++ config.X Thu Dec 5 21:27:28 2013 +@@ -172,6 +172,10 @@ + #include <sys/dir.h> + #endif /* USG */ + ++#ifndef TERMIOS ++#define TERMIOS 1 /* POSIX termios.h */ ++#endif /* TERMIOS */ ++ + /* + ** Things that normally go in a Makefile. Define these just like you + ** might in the Makefile, except you should use #define instead of Index: patches/patch-term_c =================================================================== RCS file: patches/patch-term_c diff -N patches/patch-term_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-term_c 5 Dec 2013 20:30:18 -0000 @@ -0,0 +1,155 @@ +$OpenBSD$ +--- term.c.orig Wed Jul 25 23:51:46 2001 ++++ term.c Thu Dec 5 21:13:57 2013 +@@ -80,7 +80,9 @@ static char Rcs_Id[] = + #include "ispell.h" + #include "proto.h" + #include "msgs.h" +-#ifdef USG ++#if defined(TERMIOS) ++#include <termios.h> ++#elif defined(USG) + #include <termio.h> + #else + #include <sgtty.h> +@@ -151,7 +153,10 @@ static int putch (c) + return putchar (c); + } + +-#ifdef USG ++#if defined(TERMIOS) ++static struct termios sbuf; ++static struct termios osbuf; ++#elif defined(USG) + static struct termio sbuf; + static struct termio osbuf; + #else +@@ -257,12 +262,32 @@ retry: + #endif /* SIGTSTP */ + #endif /* TIOCPGRP */ + +-#ifdef USG ++#if defined(TERMIOS) + if (!isatty (0)) + { + (void) fprintf (stderr, TERM_C_NO_BATCH); + exit (1); + } ++ (void) tcgetattr (0, &osbuf); ++ termchanged = 1; ++ ++ sbuf = osbuf; ++ sbuf.c_lflag &= ~(ECHO | ECHOK | ECHONL | ICANON); ++ sbuf.c_oflag &= ~(OPOST); ++ sbuf.c_iflag &= ~(INLCR | IGNCR | ICRNL); ++ sbuf.c_cc[VMIN] = 1; ++ sbuf.c_cc[VTIME] = 1; ++ (void) tcsetattr (0, TCSADRAIN, &sbuf); ++ ++ uerasechar = osbuf.c_cc[VERASE]; ++ ukillchar = osbuf.c_cc[VKILL]; ++ ++#elif defined(USG) ++ if (!isatty (0)) ++ { ++ (void) fprintf (stderr, TERM_C_NO_BATCH); ++ exit (1); ++ } + (void) ioctl (0, TCGETA, (char *) &osbuf); + termchanged = 1; + +@@ -306,7 +331,7 @@ retry: + #endif + #endif + +-#ifndef USG ++#if !defined(TERMIOS) && !defined(USG) + (void) ioctl (0, TIOCGETP, (char *) &osbuf); + #ifdef TIOCGLTC + (void) ioctl (0, TIOCGLTC, (char *) &oltc); +@@ -327,7 +352,7 @@ retry: + (void) ioctl (0, TIOCSLTC, (char *) <c); + #endif + +-#endif /* USG */ ++#endif /* TERMIOS && USG */ + + if ((oldint = signal (SIGINT, SIG_IGN)) != SIG_IGN) + (void) signal (SIGINT, done); +@@ -359,7 +384,9 @@ SIGNAL_TYPE done (signo) + { + if (te) + tputs (te, 1, putch); +-#ifdef USG ++#if defined(TERMIOS) ++ (void) tcsetattr (0, TCSADRAIN, &osbuf); ++#elif defined(USG) + (void) ioctl (0, TCSETAW, (char *) &osbuf); + #else + (void) ioctl (0, TIOCSETP, (char *) &osbuf); +@@ -375,7 +402,9 @@ SIGNAL_TYPE done (signo) + static SIGNAL_TYPE onstop (signo) + int signo; + { +-#ifdef USG ++#if defined(TERMIOS) ++ (void) tcsetattr (0, TCSADRAIN, &osbuf); ++#elif defined(USG) + (void) ioctl (0, TCSETAW, (char *) &osbuf); + #else + (void) ioctl (0, TIOCSETP, (char *) &osbuf); +@@ -390,7 +419,9 @@ static SIGNAL_TYPE onstop (signo) + (void) kill (0, signo); + /* stop here until continued */ + (void) signal (signo, onstop); +-#ifdef USG ++#if defined(TERMIOS) ++ (void) tcsetattr (0, TCSADRAIN, &sbuf); ++#elif defined(USG) + (void) ioctl (0, TCSETAW, (char *) &sbuf); + #else + (void) ioctl (0, TIOCSETP, (char *) &sbuf); +@@ -450,7 +481,9 @@ int shellescape (buf) + } + argv[i] = NULL; + +-#ifdef USG ++#if defined(TERMIOS) ++ (void) tcsetattr (0, TCSADRAIN, &osbuf); ++#elif defined(USG) + (void) ioctl (0, TCSETAW, (char *) &osbuf); + #else + (void) ioctl (0, TIOCSETP, (char *) &osbuf); +@@ -496,7 +529,9 @@ int shellescape (buf) + (void) signal (SIGTSTP, onstop); + #endif + +-#ifdef USG ++#if defined(TERMIOS) ++ (void) tcsetattr (0, TCSADRAIN, &sbuf); ++#elif defined(USG) + (void) ioctl (0, TCSETAW, (char *) &sbuf); + #else + (void) ioctl (0, TIOCSETP, (char *) &sbuf); +@@ -529,7 +564,9 @@ void shescape (buf) + int ch; + #endif + +-#ifdef USG ++#if defined(TERMIOS) ++ (void) tcsetattr (0, TCSADRAIN, &osbuf); ++#elif defined(USG) + (void) ioctl (0, TCSETAW, (char *) &osbuf); + #else + (void) ioctl (0, TIOCSETP, (char *) &osbuf); +@@ -561,7 +598,9 @@ void shescape (buf) + (void) signal (SIGTSTP, onstop); + #endif + +-#ifdef USG ++#if defined(TERMIOS) ++ (void) tcsetattr (0, TCSADRAIN, &sbuf); ++#elif defined(USG) + (void) ioctl (0, TCSETAW, (char *) &sbuf); + #else + (void) ioctl (0, TIOCSETP, (char *) &sbuf); -- Christian "naddy" Weisgerber na...@mips.inka.de