home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!island!argv
- From: argv@island.uu.net (Dan Heller)
- Newsgroups: comp.sources.x
- Subject: v04i043: kterm, Patch1
- Message-ID: <871@island.uu.net>
- Date: 12 Jul 89 23:23:20 GMT
- Organization: Island Graphics, Marin County, California
- Lines: 265
- Approved: island!argv@sun.com
-
- Submitted-by: sun!argv
- Posting-number: Volume 4, Issue 43
- Archive-name: kterm/patch1
- Patch-To: Volume 4, Issue 10
-
-
- Two bugs are fixed.
- 1. Originally, cutting Kanji text under SystemV caused kterm dump core.
- 2. Text operations on a Kanji character sometimes left a half part of it.
- New kterm clears the character before such an operation.
- --
- Hiroto Kagotani
- kagotani@cs.titech.ac.jp
- ------------
- *** kterm.3.1.0/button.c Tue May 30 14:53:31 1989
- --- kterm.3.1.1/button.c Sat Jul 8 16:10:15 1989
- ***************
- *** 1,6 ****
- /*
- * $XConsortium: button.c,v 1.32 89/01/05 12:47:45 swick Exp $
- ! * $Header: button.c,v 1.1 89/05/30 14:53:29 kagotani Rel $
- */
-
-
- --- 1,6 ----
- /*
- * $XConsortium: button.c,v 1.32 89/01/05 12:47:45 swick Exp $
- ! * $Header: button.c,v 1.2 89/07/08 16:10:08 kagotani Rel $
- */
-
-
- ***************
- *** 37,43 ****
- */
- #ifndef lint
- static char rcs_id[] = "$XConsortium: button.c,v 1.32 89/01/05 12:47:45 swick Exp $";
- ! static char kterm_id[] = "$Header: button.c,v 1.1 89/05/30 14:53:29 kagotani Rel $";
- #endif /* lint */
- #include <X11/Xos.h>
- #include <X11/Xlib.h>
- --- 37,43 ----
- */
- #ifndef lint
- static char rcs_id[] = "$XConsortium: button.c,v 1.32 89/01/05 12:47:45 swick Exp $";
- ! static char kterm_id[] = "$Header: button.c,v 1.2 89/07/08 16:10:08 kagotani Rel $";
- #endif /* lint */
- #include <X11/Xos.h>
- #include <X11/Xlib.h>
- ***************
- *** 1294,1307 ****
- if ((*p++ & 0x8080) == 0)
- nc++;
- }
- ! p = term->screen.selection;
- ! s = q = (char *)LOCAL_ALLOC(nc);
- ! for (nw = term->screen.selection_length; nw > 0; nw--, p++) {
- ! if ((*p & 0x8080) == 0)
- ! *q++ = *p & 0x7f;
- }
- ! XStoreBytes( XtDisplay((Widget)term), s, nc, buffer);
- ! LOCAL_FREE(s);
- }
- #else
- XStoreBytes( XtDisplay((Widget)term), term->screen.selection,
- --- 1294,1311 ----
- if ((*p++ & 0x8080) == 0)
- nc++;
- }
- ! if (nc > 0) {
- ! p = term->screen.selection;
- ! s = q = (char *)LOCAL_ALLOC(nc);
- ! for (nw = term->screen.selection_length; nw > 0; nw--, p++) {
- ! if ((*p & 0x8080) == 0)
- ! *q++ = *p & 0x7f;
- ! }
- ! XStoreBytes( XtDisplay((Widget)term), s, nc, buffer);
- ! LOCAL_FREE(s);
- }
- ! else
- ! XStoreBytes( XtDisplay((Widget)term), NULL, nc, buffer);
- }
- #else
- XStoreBytes( XtDisplay((Widget)term), term->screen.selection,
- *** kterm.3.1.0/charproc.c Tue May 30 14:53:35 1989
- --- kterm.3.1.1/charproc.c Sat Jul 8 16:10:28 1989
- ***************
- *** 1,6 ****
- /*
- * $XConsortium: charproc.c,v 1.64 89/01/04 13:37:50 jim Exp $
- ! * $Header: charproc.c,v 1.1 89/05/30 14:53:32 kagotani Rel $
- */
-
-
- --- 1,6 ----
- /*
- * $XConsortium: charproc.c,v 1.64 89/01/04 13:37:50 jim Exp $
- ! * $Header: charproc.c,v 1.2 89/07/08 16:10:16 kagotani Rel $
- */
-
-
- ***************
- *** 165,171 ****
-
- #ifndef lint
- static char rcs_id[] = "$XConsortium: charproc.c,v 1.64 89/01/04 13:37:50 jim Exp $";
- ! static char kterm_id[] = "$Header: charproc.c,v 1.1 89/05/30 14:53:32 kagotani Rel $";
- #endif /* lint */
-
- static long arg;
- --- 165,171 ----
-
- #ifndef lint
- static char rcs_id[] = "$XConsortium: charproc.c,v 1.64 89/01/04 13:37:50 jim Exp $";
- ! static char kterm_id[] = "$Header: charproc.c,v 1.2 89/07/08 16:10:16 kagotani Rel $";
- #endif /* lint */
-
- static long arg;
- ***************
- *** 1679,1684 ****
- --- 1679,1688 ----
- cx = CursorX(screen, screen->cur_col);
- cy = CursorY(screen, screen->cur_row)+screen->fnt_norm->ascent;
- #ifdef KANJI /* sano & michael */
- + BreakKanji(screen);
- + screen->cur_col += len;
- + BreakKanji(screen);
- + screen->cur_col -= len;
- if (fgs & KCS) {
- /*
- * Draw Kanji string with currentGC. If no k_boldGC nor
- *** kterm.3.1.0/patchlevel.c Tue May 30 14:53:50 1989
- --- kterm.3.1.1/patchlevel.c Sat Jul 8 16:10:30 1989
- ***************
- *** 2,7 ****
- /*
- * Patchlevel for the difference between xterm and kterm.
- */
- ! static char kterm_patchlevel[] = "kterm 3.1.0 based on xterm in release 3";
- ! char menuname[] = "kterm X11/3.1.0";
- #endif KANJI
- --- 2,7 ----
- /*
- * Patchlevel for the difference between xterm and kterm.
- */
- ! static char kterm_patchlevel[] = "kterm 3.1.1 based on xterm in release 3";
- ! char menuname[] = "kterm X11/3.1.1";
- #endif KANJI
- *** kterm.3.1.0/util.c Tue May 30 14:53:59 1989
- --- kterm.3.1.1/util.c Sat Jul 8 16:10:36 1989
- ***************
- *** 1,6 ****
- /*
- * $XConsortium: util.c,v 1.10 88/10/07 08:20:08 swick Exp $
- ! * $Header: util.c,v 1.1 89/05/30 14:53:58 kagotani Rel $
- */
-
- #include <X11/copyright.h>
- --- 1,6 ----
- /*
- * $XConsortium: util.c,v 1.10 88/10/07 08:20:08 swick Exp $
- ! * $Header: util.c,v 1.2 89/07/08 16:10:32 kagotani Rel $
- */
-
- #include <X11/copyright.h>
- ***************
- *** 32,38 ****
-
- #ifndef lint
- static char rcs_id[] = "$XConsortium: util.c,v 1.10 88/10/07 08:20:08 swick Exp $";
- ! static char kterm_id[] = "$Header: util.c,v 1.1 89/05/30 14:53:58 kagotani Rel $";
- #endif /* lint */
-
- #include <stdio.h>
- --- 32,38 ----
-
- #ifndef lint
- static char rcs_id[] = "$XConsortium: util.c,v 1.10 88/10/07 08:20:08 swick Exp $";
- ! static char kterm_id[] = "$Header: util.c,v 1.2 89/07/08 16:10:32 kagotani Rel $";
- #endif /* lint */
-
- #include <stdio.h>
- ***************
- *** 587,592 ****
- --- 587,596 ----
- if(!AddToRefresh(screen)) {
- if(screen->scroll_amt)
- FlushScroll(screen);
- +
- + #ifdef KANJI /* kagotani */
- + BreakKanji(screen);
- + #endif KANJI
-
- if (screen->incopy)
- CopyWait (screen);
- ***************
- *** 645,650 ****
- --- 649,661 ----
- FlushScroll(screen);
-
- width = n * FontWidth(screen);
- +
- + #ifdef KANJI /* kagotani */
- + BreakKanji(screen);
- + screen->cur_col += n;
- + BreakKanji(screen);
- + screen->cur_col -= n;
- + #endif KANJI
-
- if (screen->incopy)
- CopyWait (screen);
- ***************
- *** 741,746 ****
- --- 752,760 ----
- if(!AddToRefresh(screen)) {
- if(screen->scroll_amt)
- FlushScroll(screen);
- + #ifdef KANJI /* kagotani */
- + BreakKanji(screen);
- + #endif KANJI
- XFillRectangle(screen->display, TextWindow(screen),
- #ifdef STATUSLINE /* michael */
- screen->instatus ? screen->normalGC :
- ***************
- *** 776,781 ****
- --- 790,798 ----
- if(!AddToRefresh(screen)) {
- if(screen->scroll_amt)
- FlushScroll(screen);
- + #ifdef KANJI /* kagotani */
- + BreakKanji(screen);
- + #endif KANJI
- XFillRectangle (screen->display, TextWindow(screen),
- #ifdef STATUSLINE /* michael */
- screen->instatus ? screen->normalGC :
- ***************
- *** 1050,1052 ****
- --- 1067,1094 ----
- return;
- }
-
- + #ifdef KANJI /* kagotani */
- + /*
- + * If the cursor points KCS2 character, replace this Kanji into two blanks.
- + */
- + BreakKanji(screen)
- + register TScreen *screen;
- + {
- + register char *col;
- + register char *att;
- + if (screen->cur_col >= 1 && screen->cur_col <= screen->max_col
- + && *(att = screen->buf[2*screen->cur_row+1]+screen->cur_col) & KCS2) {
- + col = screen->buf[2*screen->cur_row] + screen->cur_col;
- + XFillRectangle(screen->display, TextWindow(screen),
- + #ifdef STATUSLINE
- + screen->instatus ? screen->normalGC :
- + #endif STATUSLINE
- + screen->reverseGC,
- + CursorX(screen, screen->cur_col - 1),
- + CursorY(screen, screen->cur_row),
- + 2 * FontWidth(screen), FontHeight(screen));
- + bzero(col - 1, 2);
- + bzero(att - 1, 2);
- + }
- + }
- + #endif KANJI
-