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