ports/119103: [Patch] make net/tintin++ and japanese/tintin++ work without sgtty

Ed Schouten ed at fxq.nl
Fri Dec 28 14:40:01 UTC 2007


>Number:         119103
>Category:       ports
>Synopsis:       [Patch] make net/tintin++ and japanese/tintin++ work without 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 14:40:00 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 net/tintin++ port still makes use of the sgtty interface. We'd
better port it to termios to make it work with COMPAT_43TTY-less
kernels.
>How-To-Repeat:
>Fix:
--- net/tintin++/files/patch-ad	2002-08-23 21:35:21.000000000 +0200
+++ net/tintin++/files/patch-ad	2007-12-28 15:30:19.000000000 +0100
@@ -1,23 +1,21 @@
 --- main.c.orig	Thu Mar 25 11:26:53 1999
 +++ main.c	Tue Sep 26 17:27:58 2000
-@@ -18,6 +18,7 @@
- #include <signal.h>
- #include "tintin.h"
- #include <fcntl.h>
-+#include <termios.h>
+@@ -100,12 +100,8 @@
+ extern void term_echo();
  
- #ifndef BADSIG
- #define BADSIG (void (*)())-1
-@@ -109,7 +110,7 @@
+ int last_line_length;
+-#if defined(HAVE_SYS_TERMIO_H) && !defined(BSD_ECHO) || defined(HAVE_TERMIO_H)
+-#if defined(HAVE_SYS_TERMIO_H)
+-#include <sys/termio.h>
+-#else
+-#include <termio.h>
+-#endif
++#if 1
++#include <termios.h>
  tcflag_t c_lflag;
  cc_t c_cc[NCCS];
  #else
--unsigned char c_cc[NCC];
-+unsigned char c_cc[NCCS];
- unsigned short c_lflag;
- #endif
- 
-@@ -580,7 +581,7 @@
+@@ -580,7 +576,7 @@
      if(ses->logfile) {
        if (!OLD_LOG) {
        count=0;
@@ -26,7 +24,7 @@
           if (buffer[n]!='\r') { 
              temp[count]=buffer[n]; 
              count++;
-@@ -750,7 +751,7 @@
+@@ -750,7 +746,7 @@
        sprintf(strng,"%c8%s\n\r%c7%c[%d;%df", E, cptr, E, E, input_row, input_col);
      else
        sprintf(strng,"%s\n\r", cptr);
@@ -35,7 +33,7 @@
      display_col=1;
      if (redraw && term_echoing && !is_split)
        write(1, k_input, strlen(k_input));
-@@ -806,7 +807,7 @@
+@@ -806,7 +802,7 @@
        cptr++;
        sprintf(strng,"%s\n\r", cptr);
      }
@@ -44,7 +42,7 @@
      display_col=1;
    } 
    text_came=TRUE;  
-@@ -876,7 +877,7 @@
+@@ -876,7 +872,7 @@
    input_col=1;  
    sprintf(fn, "%c[2J%c[1;%dr%c[%d;1f", E, E, display_row, E, split_line);
    write(1,fn, strlen(fn));
--- net/tintin++/files/patch-term.c	1970-01-01 01:00:00.000000000 +0100
+++ net/tintin++/files/patch-term.c	2007-12-28 15:30:19.000000000 +0100
@@ -0,0 +1,79 @@
+--- echo.c	1999-03-04 19:23:42.000000000 +0100
++++ echo.c	2007-12-28 15:23:31.000000000 +0100
+@@ -18,12 +18,8 @@
+ #include <sys/ioctl.h>
+ #endif
+ 
+-#if defined(HAVE_SYS_TERMIO_H) && !defined(BSD_ECHO) || defined(HAVE_TERMIO_H)
+-#if defined(HAVE_SYS_TERMIO_H)
+-#include <sys/termio.h>
+-#else
+-#include <termio.h>
+-#endif
++#if 1
++#include <termios.h>
+ #else
+ #include <sgtty.h>
+ #if DIRTY_REDEFINE
+@@ -34,8 +30,8 @@
+ #endif
+ #endif
+ 
+-#if defined(HAVE_SYS_TERMIO_H) && !defined(BSD_ECHO) || defined(HAVE_TERMIO_H)
+-#ifdef HAVE_TCFLAG_T
++#if 1
++#if 1
+ extern tcflag_t c_lflag;
+ extern cc_t c_cc[NCCS];
+ #else
+@@ -44,10 +40,10 @@
+ #endif
+ void init_echo()
+ {
+-  struct  termio io;
++  struct  termios io;
+ 
+-  if(ioctl(0, TCGETA, &io)<0)
+-    syserr("ioctl");
++  if(tcgetattr(0, &io)<0)
++    syserr("tcgetattr");
+   c_lflag = io.c_lflag;
+   c_cc[VMIN] = io.c_cc[VMIN];
+   c_cc[VTIME] = io.c_cc[VTIME];
+@@ -58,14 +54,14 @@
+ /********************************/
+ void term_echo()
+ {
+-  struct  termio io;
++  struct  termios io;
+ 
+-  if(ioctl(0, TCGETA, &io)<0)
++  if(tcgetattr(0, &io)<0)
+     syserr("ioctl");
+   io.c_lflag = c_lflag;
+   io.c_cc[VMIN] = c_cc[VMIN];
+   io.c_cc[VTIME] = c_cc[VTIME];
+-  if(ioctl(0, TCSETA, &io)<0)
++  if(tcsetattr(0, TCSANOW, &io)<0)
+     syserr("ioctl");
+ }
+ 
+@@ -74,15 +70,15 @@
+ /*********************************/
+ void term_noecho()
+ {
+-  struct  termio io;
++  struct  termios io;
+ 
+-  if(ioctl(0, TCGETA, &io)<0)
++  if(tcgetattr(0, &io)<0)
+     syserr("ioctl");
+   io.c_lflag &= ~ECHO; 
+   io.c_lflag &= ~ICANON;
+   io.c_cc[VMIN]=1;
+   io.c_cc[VTIME]=0;
+-  if(ioctl(0, TCSETA, &io) < 0)
++  if(tcsetattr(0, TCSANOW, &io) < 0)
+     syserr("ioctl");
+ }
+ 
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list