Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Dec 2007 20:02:14 +0100 (CET)
From:      Ed Schouten <ed@fxq.nl>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/119114: [Patch] japanese/edict: use termios instead of sgtty
Message-ID:  <20071228190214.B8A021CCD9@palm.hoeg.nl>
Resent-Message-ID: <200712281910.lBSJA2IR041846@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071228190214.B8A021CCD9>