ports/110448: [editors/em] use <termios.h> instead of <sgtty.h>
Ed Schouten
ed at fxq.nl
Sat Mar 17 16:00:12 UTC 2007
>Number: 110448
>Category: ports
>Synopsis: [editors/em] use <termios.h> instead of <sgtty.h>
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat Mar 17 16:00:11 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator: Ed Schouten
>Release: FreeBSD 6.2-STABLE i386
>Organization:
>Environment:
System: FreeBSD palm.hoeg.nl 6.2-STABLE FreeBSD 6.2-STABLE #0: Sun Feb 11 22:32:09 CET 2007 root at palm.hoeg.nl:/usr/obj/usr/src/sys/PALM i386
>Description:
The editor em has the ability to use sgtty and termio. Teach it how
termios works. Now we can use it without COMPAT_43TTY
>How-To-Repeat:
>Fix:
Place the following file in the `files/' directory.
--- termio.c Thu May 2 13:52:00 1996
+++ termio.c Sat Mar 17 16:53:22 2007
@@ -41,16 +41,21 @@
int nxtchar = -1; /* character held from type ahead */
#endif
+#undef USG
+#define USG 1
+#undef BSD
+#define BSD 0
+
#if USG /* System V */
#include <signal.h>
-#include <termio.h>
+#include <termios.h>
#include <fcntl.h>
int kbdflgs; /* saved keyboard fd flags */
int kbdpoll; /* in O_NDELAY mode */
int kbdqp; /* there is a char in kbdq */
char kbdq; /* char we've already read */
-struct termio otermio; /* original terminal characteristics */
-struct termio ntermio; /* charactoristics to use inside */
+struct termios otermio; /* original terminal characteristics */
+struct termios ntermio; /* charactoristics to use inside */
#if XONXOFF
#define XXMASK 0016000
#endif
@@ -154,7 +159,7 @@
#endif
#if USG
- ioctl(0, TCGETA, &otermio); /* save old settings */
+ tcgetattr(0, &otermio); /* save old settings */
ntermio.c_iflag = 0; /* setup new settings */
#if XONXOFF
ntermio.c_iflag = otermio.c_iflag & XXMASK; /* save XON/XOFF P.K. */
@@ -162,11 +167,10 @@
ntermio.c_oflag = 0;
ntermio.c_cflag = otermio.c_cflag;
ntermio.c_lflag = 0;
- ntermio.c_line = otermio.c_line;
ntermio.c_cc[VMIN] = 1;
ntermio.c_cc[VTIME] = 0;
#if PKCODE
- ioctl(0, TCSETAW, &ntermio); /* and activate them */
+ tcsetattr(0, TCSANOW, &ntermio); /* and activate them */
#else
ioctl(0, TCSETA, &ntermio); /* and activate them */
#endif
@@ -244,7 +248,7 @@
#if USG
#if PKCODE
- ioctl(0, TCSETAW, &otermio); /* restore terminal settings */
+ tcsetattr(0, TCSANOW, &otermio); /* and activate them */
#else
ioctl(0, TCSETA, &otermio); /* restore terminal settings */
#endif
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list