ports/119114: [Patch] japanese/edict: use termios instead of sgtty
Ed Schouten
ed at fxq.nl
Fri Dec 28 19:10:02 UTC 2007
>Number: 119114
>Category: ports
>Synopsis: [Patch] japanese/edict: 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 19:10:02 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 japanese/edict port uses sgtty, but we can make it use termios. For
some reason, the authors of edit attempted to implement termios, but
didn't completely finish it. This patch adds the missing termios bits to
xjdfrontend.c.
>How-To-Repeat:
>Fix:
The following patch changes __STRICT_BSD__ to __POSIX__ and implements
the missing termios bits in xjdfrontend.c.
--- japanese/edict/files/patch-aa 1999-07-17 19:13:47.000000000 +0200
+++ japanese/edict/files/patch-aa 2007-12-28 19:58:22.000000000 +0100
@@ -14,7 +14,7 @@
SAOBJECTS = xjdsa.o xjdcomm_sa.o xjdservcomm_sa.o xjdfrontend_sa.o
#SACFLAGS = -DXJDFRONTEND -DXJDDIC -DDEMAND_PAGING
-SACFLAGS = -DXJDFRONTEND -DXJDDIC -DMMAP
-+SACFLAGS = -D__STRICT_BSD__ -DXJDFRONTEND -DXJDDIC -DMMAP ${CFLAGS}
++SACFLAGS = -D__POSIX__ -DXJDFRONTEND -DXJDDIC -DMMAP ${CFLAGS}
#SACFLAGS = -DXJDFRONTEND -DXJDDIC -DRAM_LOAD
xjdic_sa: $(SAOBJECTS)
$(CC) $(SAOBJECTS) -o xjdic_sa
@@ -23,7 +23,7 @@
#
CLOBJECTS = xjdclient.o xjdcomm_cl.o xjdfrontend_cl.o
-CLCFLAGS = -DXJDFRONTEND -DXJDCLSERV
-+CLCFLAGS = -D__STRICT_BSD__ -DXJDFRONTEND -DXJDCLSERV ${CFLAGS}
++CLCFLAGS = -D__POSIX__ -DXJDFRONTEND -DXJDCLSERV ${CFLAGS}
xjdic_cl: $(CLOBJECTS)
$(CC) $(CLOBJECTS) $(LIBS) -o xjdic_cl
xjdclient.o: xjdclient.c
--- japanese/edict/files/patch-xjdfrontend.c 1970-01-01 01:00:00.000000000 +0100
+++ japanese/edict/files/patch-xjdfrontend.c 2007-12-28 19:55:22.000000000 +0100
@@ -0,0 +1,32 @@
+--- xjdfrontend.c 1998-09-16 02:28:03.000000000 +0200
++++ xjdfrontend.c 2007-12-28 19:54:07.000000000 +0100
+@@ -55,6 +55,8 @@
+
+ #ifdef __STRICT_BSD__
+ static struct sgttyb orig,new;
++#elif defined(__POSIX__)
++static struct termios orig,new;
+ #else
+ static struct termio orig,new;
+ #endif
+@@ -240,6 +242,11 @@
+ ioctl(0, TIOCGETP, &orig); ioctl(0, TIOCGETP, &new);
+ new.sg_flags |= CBREAK; new.sg_flags &= ~ECHO;
+ ioctl(0, TIOCSETP, &new);
++#elif defined(__POSIX__)
++ tcgetattr(0, &orig); tcgetattr(0, &new);
++ new.c_lflag &= ~ICANON; new.c_lflag &= ~ISIG; new.c_lflag &= ~ECHO;
++ new.c_lflag &= ~IXON;
++ new.c_cc[4] = 1; new.c_cc[5] = 0; tcsetattr(0, TCSANOW, &new);
+ #else
+ ioctl(0, TCGETA, &orig); ioctl(0, TCGETA, &new);
+ new.c_lflag &= ~ICANON; new.c_lflag &= ~ISIG; new.c_lflag &= ~ECHO;
+@@ -255,6 +262,8 @@
+ {
+ #ifdef __STRICT_BSD__
+ ioctl(0, TIOCSETP, &orig);
++#elif defined(__POSIX__)
++ tcsetattr(0, TCSANOW, &orig);
+ #else
+ ioctl(0, TCSETA, &orig);
+ #endif
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list