ports/119107: [Patch] vietnamese/vnless: use termios instead of sgtty

Ed Schouten ed at fxq.nl
Fri Dec 28 16:00:06 UTC 2007


>Number:         119107
>Category:       ports
>Synopsis:       [Patch] vietnamese/vnless: use termios instead of sgtty
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Dec 28 16:00:06 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator:     Ed Schouten
>Release:        FreeBSD 6.3-PRERELEASE i386
>Organization:
>Environment:
System: FreeBSD palm.hoeg.nl 6.3-PRERELEASE FreeBSD 6.3-PRERELEASE #0: Wed Dec 19 16:07:46 CET 2007 ed at palm.hoeg.nl:/usr/obj/usr/src/sys/PALM i386
>Description:
The port vietnamese/vnless still uses the sgtty interface, which is a
bad thing, because this will break when using a COMPAT_43TTY-less
kernel. We'd better change it to use termios.
>How-To-Repeat:
>Fix:
The following patch changes the existing patches to change the existing
termio interface to termios.

--- vietnamese/vnless/files/patch-03	1996-12-06 13:38:53.000000000 +0100
+++ vietnamese/vnless/files/patch-03	2007-12-28 16:52:10.000000000 +0100
@@ -1,6 +1,14 @@
 --- defines.h.orig	Mon Feb 24 12:45:37 1992
 +++ defines.h	Wed Dec  4 02:33:51 1996
-@@ -47,7 +47,7 @@
+@@ -40,14 +40,14 @@
+  * If TERMIO is 0 your system must have /usr/include/sgtty.h.
+  * This is normally the case for BSD.
+  */
+-/*#define	TERMIO		1*/
++#define	TERMIO		1
+ 
+ /*
+  * SIGSETMASK is 1 if your system has the sigsetmask() call.
   * This is normally the case only for BSD 4.2,
   * not for BSD 4.1 or System 5.
   */
--- vietnamese/vnless/files/patch-screen.c	2000-11-03 12:02:31.000000000 +0100
+++ vietnamese/vnless/files/patch-screen.c	2007-12-28 16:52:10.000000000 +0100
@@ -1,9 +1,64 @@
 --- screen.c.orig	Mon Feb 24 12:45:41 1992
 +++ screen.c	Sat May 20 01:40:56 2000
-@@ -481,5 +481,5 @@
+@@ -12,7 +12,7 @@
+ #endif
+ 
+ #if TERMIO
+-#include <termio.h>
++#include <termios.h>
+ #else
+ #include <sgtty.h>
+ #endif
+@@ -92,21 +92,21 @@
+ 	int on;
+ {
+ #if TERMIO
+-	struct termio s;
+-	static struct termio save_term;
++	struct termios s;
++	static struct termios save_term;
+ 
+ 	if (on)
+ 	{
+ 		/*
+ 		 * Get terminal modes.
+ 		 */
+-		ioctl(2, TCGETA, &s);
++		tcgetattr(2, &s);
+ 
+ 		/*
+ 		 * Save modes and set certain variables dependent on modes.
+ 		 */
+ 		save_term = s;
+-		ospeed = s.c_cflag & CBAUD;
++		ospeed = cfgetospeed(&s);
+ 		erase_char = s.c_cc[VERASE];
+ 		kill_char = s.c_cc[VKILL];
+ 
+@@ -114,7 +114,7 @@
+ 		 * Set the modes to the way we want them.
+ 		 */
+ 		s.c_lflag &= ~(ICANON|ECHO|ECHOE|ECHOK|ECHONL);
+-		s.c_oflag |=  (OPOST|ONLCR|TAB3);
++		s.c_oflag |=  (OPOST|ONLCR|OXTABS);
+ 		s.c_oflag &= ~(OCRNL|ONOCR|ONLRET);
+ 		s.c_cc[VMIN] = 1;
+ 		s.c_cc[VTIME] = 0;
+@@ -125,7 +125,7 @@
+ 		 */
+ 		s = save_term;
+ 	}
+-	ioctl(2, TCSETAW, &s);
++	tcsetattr(2, TCSANOW, &s);
+ #else
+ 	struct sgttyb s;
+ 	static struct sgttyb save_term;
+@@ -480,7 +480,7 @@
+  * Clear the screen.
   */
  	public void
 -clear()
 +clearscr()
  {
  	tputs(sc_clear, sc_height, putchr);
+ }
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list