Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Aug 2009 05:44:52 +0800 (CST)
From:      Hung-Yi Chen <gaod@hychen.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/137858: [PATCH] chinese/ve: fix terminal initial problem
Message-ID:  <200908162144.n7GLiqSs088585@gaod.tfcis.org>
Resent-Message-ID: <200908162150.n7GLoCjF012406@freefall.freebsd.org>

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

>Number:         137858
>Category:       ports
>Synopsis:       [PATCH] chinese/ve: fix terminal initial problem
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Aug 16 21:50:10 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Hung-Yi Chen
>Release:        FreeBSD 7.2-RELEASE-p3 i386
>Organization:
>Environment:
System: FreeBSD gaod.tfcis.org 7.2-RELEASE-p3 FreeBSD 7.2-RELEASE-p3 #3: Sat Aug 1 22:21:07 CST 2009 gaod@gaod.tfcis.org:/usr/obj/usr/src/sys/gaod i386


>Description:
	Fix the terminal initial problem with color redraw.
>How-To-Repeat:
>Fix:
	Apply the following path:

--- ve begins here ---
===> Generating patch
===> Viewing diff with more
diff -ruN --exclude=CVS /usr/ports/chinese/ve.orig/Makefile /usr/ports/chinese/ve/Makefile
--- /usr/ports/chinese/ve.orig/Makefile	2009-01-06 01:27:25.000000000 +0800
+++ /usr/ports/chinese/ve/Makefile	2009-08-17 05:42:47.000000000 +0800
@@ -7,7 +7,7 @@
 
 PORTNAME=	ve
 PORTVERSION=	1.0
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	chinese
 MASTER_SITES=	LOCAL/chinsan
 EXTRACT_SUFX=	.tgz
diff -ruN --exclude=CVS /usr/ports/chinese/ve.orig/files/patch-Makefile /usr/ports/chinese/ve/files/patch-Makefile
--- /usr/ports/chinese/ve.orig/files/patch-Makefile	2006-03-21 05:58:01.000000000 +0800
+++ /usr/ports/chinese/ve/files/patch-Makefile	2009-08-17 05:37:14.000000000 +0800
@@ -1,5 +1,5 @@
---- Makefile.orig	Wed Aug 25 14:27:23 1999
-+++ Makefile	Thu Dec 18 01:29:56 2003
+--- Makefile.orig	2009-08-17 05:35:44.000000000 +0800
++++ Makefile	2009-08-17 05:37:07.000000000 +0800
 @@ -1,10 +1,11 @@
 -CC = gcc
 +CC ?= cc
@@ -14,14 +14,12 @@
  LIBS = -ltermcap -lcompat
  
  #----------------------------------------------------------
-@@ -26,12 +27,12 @@
- 	rm -f *.o ve entab
+@@ -27,11 +28,11 @@
  
  install: all
--	mkdir -p /usr/local/share/ve
+ 	mkdir -p /usr/local/share/ve
 -	cp ve /usr/local/bin
 -	cp 00readme.txt ve.hlp /usr/local/share/ve
-+	mkdir -p $(PREFIX)/share/ve
 +	$(BSD_INSTALL_PROGRAM) ve $(PREFIX)/bin
 +	$(BSD_INSTALL_DATA) 00readme.txt ve.hlp $(PREFIX)/share/ve
  
diff -ruN --exclude=CVS /usr/ports/chinese/ve.orig/files/patch-bbs.h /usr/ports/chinese/ve/files/patch-bbs.h
--- /usr/ports/chinese/ve.orig/files/patch-bbs.h	2008-05-01 22:08:18.000000000 +0800
+++ /usr/ports/chinese/ve/files/patch-bbs.h	2009-08-17 05:38:55.000000000 +0800
@@ -1,9 +1,18 @@
---- bbs.h.orig	2008-05-01 19:32:07.000000000 +0800
-+++ bbs.h	2008-05-01 19:45:36.000000000 +0800
-@@ -25,14 +25,6 @@
+--- bbs.h.orig	2009-08-17 05:38:33.000000000 +0800
++++ bbs.h	2009-08-17 05:38:47.000000000 +0800
+@@ -12,6 +12,7 @@
+ #define BIT8
+ 
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <setjmp.h>
+ #include <signal.h>
+ #include <unistd.h>
+@@ -24,14 +25,7 @@
+ #include <sys/time.h>
  #include <sys/stat.h>
  #include <sys/file.h>
- 
+-
 -
 -#ifdef	LINUX
 -#include <bsd/sgtty.h>
@@ -11,7 +20,7 @@
 -#include <sgtty.h>
 -#endif
 -
--
++#include <termios.h>
+ 
  #ifdef  SYSV
  
- #ifndef LOCK_EX
diff -ruN --exclude=CVS /usr/ports/chinese/ve.orig/files/patch-edit.c /usr/ports/chinese/ve/files/patch-edit.c
--- /usr/ports/chinese/ve.orig/files/patch-edit.c	1970-01-01 08:00:00.000000000 +0800
+++ /usr/ports/chinese/ve/files/patch-edit.c	2009-08-17 05:40:13.000000000 +0800
@@ -0,0 +1,10 @@
+--- edit.c.orig	2009-08-17 05:39:58.000000000 +0800
++++ edit.c	2009-08-17 05:40:01.000000000 +0800
+@@ -6,7 +6,6 @@
+ /* update : 95/12/15                                     */
+ /*-------------------------------------------------------*/
+ 
+-#include <stdlib.h>
+ #include <sys/param.h>
+ #include "bbs.h"
+ 
diff -ruN --exclude=CVS /usr/ports/chinese/ve.orig/files/patch-editor.c /usr/ports/chinese/ve/files/patch-editor.c
--- /usr/ports/chinese/ve.orig/files/patch-editor.c	2009-01-02 16:06:15.000000000 +0800
+++ /usr/ports/chinese/ve/files/patch-editor.c	1970-01-01 08:00:00.000000000 +0800
@@ -1,10 +0,0 @@
---- editor.c.orig	2008-12-21 22:42:24.000000000 +0800
-+++ editor.c	2008-12-21 22:42:35.000000000 +0800
-@@ -21,6 +21,7 @@
-     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
- 
-+#include <stdlib.h>
- #include "bbs.h"
- 
- #define gtty(fd,data)  tcgetattr(fd,data)
diff -ruN --exclude=CVS /usr/ports/chinese/ve.orig/files/patch-screen.c /usr/ports/chinese/ve/files/patch-screen.c
--- /usr/ports/chinese/ve.orig/files/patch-screen.c	2009-01-06 01:27:25.000000000 +0800
+++ /usr/ports/chinese/ve/files/patch-screen.c	2009-08-17 05:41:07.000000000 +0800
@@ -1,16 +1,15 @@
---- screen.c_orig	2008-12-21 22:41:24.000000000 +0800
-+++ screen.c	2008-12-21 22:41:40.000000000 +0800
-@@ -6,7 +6,8 @@
+--- screen.c.orig	1996-11-24 23:45:45.000000000 +0800
++++ screen.c	2009-08-17 05:34:03.000000000 +0800
+@@ -6,7 +6,7 @@
  /* update : 95/12/15                                     */
  /*-------------------------------------------------------*/
  
 -#include <varargs.h>
 +#include <stdarg.h>
-+#include <stdlib.h>
  #include "bbs.h"
  
  extern char clearbuf[];
-@@ -46,8 +47,6 @@
+@@ -46,8 +46,6 @@
  {
    if (!dumb_term && !big_picture)
    {
@@ -19,7 +18,7 @@
      scr_lns = t_lines;
      scr_cols = t_columns = ANSILINELEN;
      /* scr_cols = MIN(t_columns, ANSILINELEN); */
-@@ -601,13 +600,12 @@
+@@ -601,14 +599,12 @@
  
  
  void
@@ -32,7 +31,8 @@
 +  char buff[512];
  
 -  va_start(args);
+-  fmt = va_arg(args, char *);
 +  va_start(args, fmt);
-   fmt = va_arg(args, char *);
    vsprintf(buff, fmt, args);
    va_end(args);
+   outs(buff);
diff -ruN --exclude=CVS /usr/ports/chinese/ve.orig/files/patch-term.c /usr/ports/chinese/ve/files/patch-term.c
--- /usr/ports/chinese/ve.orig/files/patch-term.c	2008-05-07 05:49:59.000000000 +0800
+++ /usr/ports/chinese/ve/files/patch-term.c	2009-08-17 05:41:45.000000000 +0800
@@ -1,27 +1,24 @@
---- term.c.orig	2008-05-01 19:34:15.000000000 +0800
-+++ term.c	2008-05-01 19:44:06.000000000 +0800
-@@ -9,17 +9,16 @@
- 
+--- term.c.orig	1997-01-25 00:36:57.000000000 +0800
++++ term.c	2009-08-17 05:34:15.000000000 +0800
+@@ -10,17 +10,6 @@
  #include "bbs.h"
  #include <sys/ioctl.h>
-+#include <stdlib.h>
- 
- #ifdef HP_UX
- #define O_HUPCL 01
- #define O_XTABS 02
- #endif
  
+-#ifdef HP_UX
+-#define O_HUPCL 01
+-#define O_XTABS 02
+-#endif
+-
 -#ifdef LINUX
 -#include <linux/termios.h>
 -#define stty(fd, data) tcsetattr( fd, TCSETS, data )
-+#include <termios.h>
-+#define stty(fd, data) tcsetattr( fd, TCSANOW, data )
- #define gtty(fd, data) tcgetattr( fd, data )
+-#define gtty(fd, data) tcgetattr( fd, data )
 -#endif
- 
+-
  #ifndef TANDEM
  #define TANDEM  0x00000001
-@@ -29,11 +28,7 @@
+ #endif
+@@ -29,11 +18,7 @@
  #define CBREAK  0x00000002
  #endif
  
@@ -33,7 +30,28 @@
  
  
  /* ----------------------------------------------------- */
-@@ -62,37 +57,11 @@
+@@ -44,55 +29,47 @@
+ void
+ get_tty()
+ {
+-  if (gtty (1, &tty_state) < 0)
++  if (tcgetattr(1, &tty_state) < 0)
+   {
+      fprintf (stderr, "gtty failed\n");
+      exit (-1);
+   }
+ }
+ 
+-
++#if 0
+ void
+ init_tty()
+ {
+-  if (gtty(1, &tty_state) < 0)
++  if (tcgetattr(1, &tty_state) < 0)
+   {
+     fprintf(stderr, "gtty failed\n");
+     exit(-1);
    }
    memcpy(&tty_new, &tty_state, sizeof(tty_new));
  
@@ -55,7 +73,24 @@
 -
 +  tty_new.c_lflag &= ~(ICANON | ECHO | ISIG);
    stty(1, &tty_new);
--#endif
++}
+ #endif
++void
++init_tty(void)
++{
++    struct termios tty_state, tty_new;
++
++    if (tcgetattr(1, &tty_state) < 0) {
++	fprintf(stderr, "tcgetattr(): %m");
++        return;
++    }
++    memcpy(&tty_new, &tty_state, sizeof(tty_new));
++    tty_new.c_lflag &= ~(ICANON | ECHO | ISIG);
++    /*
++     * tty_new.c_cc[VTIME] = 0; tty_new.c_cc[VMIN] = 1;
++     */
++    tcsetattr(1, TCSANOW, &tty_new);
++    system("stty raw -echo");
  }
  
  
@@ -72,16 +107,17 @@
  void
  reset_tty()
  {
-@@ -104,8 +73,6 @@
+@@ -104,9 +81,6 @@
    stty(1, &tty_new);
  }
  
 -#endif
 -
- 
+-
  
  /* ----------------------------------------------------- */
-@@ -171,11 +138,7 @@
+ /* init tty control code                                 */
+@@ -171,11 +145,7 @@
    char *sbp, *s;
    char *tgetstr();
  
===> Done
--- ve ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



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