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