[comp.sources.bugs] kterm 4.1.1 patch 2

mleisher@nmsu.edu (Mark Leisher) (11/28/90)

Here are the second set of patches for kterm 4.1.1.  They fix these
problems:

1. EUC input from kinput to kterm in JIS mode
2. Displaying JIS text in Hanzi mode
3. Displaying 7-bit GuoBiao text
   [text surrounded by ESC $ ( A ..... ESC ( B]

Thanks to John Melby of Fujitsu for pointing out these problems.
------------------------ Cut Here -----------------------------
*** charproc.c.ORIG	Sun Nov 25 19:07:04 1990
--- charproc.c	Tue Nov 27 16:23:29 1990
***************
*** 853,858 ****
--- 853,862 ----
  	register Char *dcp = dotextbuf;
          Char oc, oc1;
  
+         if (((term->misc.do_hz) && (gset & MBCS) && (gset != GSET_HANZI)) ||
+             (!(term->misc.do_hz) && (gset & MBCS) && (gset == GSET_HANZI)))
+           gset &= ~MBCS;
+ 
  	if (gset & CS96) {
  		min = 0x20; max = 0x7f;
  	} else {
***************
*** 903,908 ****
--- 907,921 ----
                          cp--;
                          break;
                      }
+ 
+                     /*
+                      * Catch 7-bit GuoBiao
+                      */
+                     if ((gset == GSET_HANZI) && !(term->flags & BIG5_HANZI)) {
+                         c  |= 0x80;
+                         c1 |= 0x80;
+                     }
+ 
                      oc = c; oc1 = c1;
                      if (USINGBIG5FONT &&
                          !(term->flags & BIG5_HANZI))
*** kconvert.c.ORIG	Tue Nov 27 14:42:38 1990
--- kconvert.c	Tue Nov 27 14:44:44 1990
***************
*** 96,105 ****
                    convfunc = convCStoSGB;
                  else if (term->flags & BIG5_HANZI)
                    convfunc = convCStoBIG5;
! #else /* !KTERM_HANZI */
  		else
  		    convfunc = convCStoJIS;
- #endif /* KTERM_HANZI */
  
  		n = (*convfunc)(cs, NULL);
  		lstr = (n > 256) ? (unsigned char *)XtMalloc(n + 1) : lbuf;
--- 96,104 ----
                    convfunc = convCStoSGB;
                  else if (term->flags & BIG5_HANZI)
                    convfunc = convCStoBIG5;
! #endif /* KTERM_HANZI */
  		else
  		    convfunc = convCStoJIS;
  
  		n = (*convfunc)(cs, NULL);
  		lstr = (n > 256) ? (unsigned char *)XtMalloc(n + 1) : lbuf;
*** patchlevel.h.ORIG	Tue Nov 27 16:33:22 1990
--- patchlevel.h	Tue Nov 27 16:33:45 1990
***************
*** 1 ****
! #define patchlevel 1
--- 1 ----
! #define patchlevel 2
*** ptyx.h.ORIG	Tue Nov 27 16:11:16 1990
--- ptyx.h	Tue Nov 27 16:11:54 1990
***************
*** 595,601 ****
  #ifdef KTERM
  #ifdef KTERM_KANJI
  #define HighEncoding(screen,fnum) \
! (screen->_fnt_norm[fnum]->min_char_or_byte2 > 0x80)
  #endif /* KTERM_KANJI */
  
  #ifdef KTERM_HANZI
--- 595,602 ----
  #ifdef KTERM
  #ifdef KTERM_KANJI
  #define HighEncoding(screen,fnum) \
! ((screen->_fnt_norm[fnum]) && \
! (screen->_fnt_norm[fnum]->min_char_or_byte2 > 0x80))
  #endif /* KTERM_KANJI */
  
  #ifdef KTERM_HANZI

-----------------------------------------------------------------------------
mleisher@nmsu.edu                      "I laughed.
Mark Leisher                                I cried.
Computing Research Lab                          I fell down.
New Mexico State University                        It changed my life."
Las Cruces, NM                     - Rich [Cowboy Feng's Space Bar and Grille]