diff options
-rw-r--r-- | misc/dt/Makefile | 4 | ||||
-rw-r--r-- | misc/dt/distinfo | 6 | ||||
-rw-r--r-- | misc/dt/patches/patch-ac | 32 | ||||
-rw-r--r-- | misc/dt/patches/patch-ad | 130 |
4 files changed, 145 insertions, 27 deletions
diff --git a/misc/dt/Makefile b/misc/dt/Makefile index ab3c61e0aff..031fe0fa235 100644 --- a/misc/dt/Makefile +++ b/misc/dt/Makefile @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.13 2002/02/10 22:49:53 fredb Exp $ +# $NetBSD: Makefile,v 1.14 2002/02/11 18:30:21 fredb Exp $ # DISTNAME= dt-1.1.7 -PKGREVISION= 1 +PKGREVISION= 2 CATEGORIES= misc MASTER_SITES= ${MASTER_SITE_LOCAL} diff --git a/misc/dt/distinfo b/misc/dt/distinfo index 2e8452d186c..2a742b53be3 100644 --- a/misc/dt/distinfo +++ b/misc/dt/distinfo @@ -1,8 +1,8 @@ -$NetBSD: distinfo,v 1.4 2002/02/11 18:24:55 fredb Exp $ +$NetBSD: distinfo,v 1.5 2002/02/11 18:30:22 fredb Exp $ SHA1 (dt-1.1.7.tar.gz) = 024c3137185dd93ced163e82227f53cfb79b993e Size (dt-1.1.7.tar.gz) = 119975 bytes SHA1 (patch-aa) = 9877c123f2f7f13ece91b40a70fb490524e53f18 SHA1 (patch-ab) = 9d9971e5eaf8c7e8d7206d4174dfa4ccc8baae46 -SHA1 (patch-ac) = c97b65485e053588b36acb0b1f97ad5bc56cdf74 -SHA1 (patch-ad) = 9e59b43fe53c9873e7e71c9ffe00c21e4a178c6b +SHA1 (patch-ac) = 2dfde914d866b3ad5ded30be4252d2675984ce74 +SHA1 (patch-ad) = 68320e1b2bda509cd940cf531d19ec8511ceca91 diff --git a/misc/dt/patches/patch-ac b/misc/dt/patches/patch-ac index 21f5c9ea6c5..18b8acd9fc8 100644 --- a/misc/dt/patches/patch-ac +++ b/misc/dt/patches/patch-ac @@ -1,7 +1,7 @@ -$NetBSD: patch-ac,v 1.2 2002/02/11 18:24:55 fredb Exp $ +$NetBSD: patch-ac,v 1.3 2002/02/11 18:30:22 fredb Exp $ ---- vt.h.orig Sun Jun 9 07:32:33 1996 -+++ vt.h Thu Feb 7 09:12:59 2002 +--- vt.h.orig Mon Feb 11 11:13:44 2002 ++++ vt.h @@ -5,7 +5,7 @@ */ @@ -15,7 +15,31 @@ $NetBSD: patch-ac,v 1.2 2002/02/11 18:24:55 fredb Exp $ #define T_REVERSE 0x04 #define T_SELECTED 0x08 #define T_INSERT 0x10 -+#define T_G0 0x20 ++#define T_LINEDRAW 0x20 /* Cursor types */ #define C_BLOCK 0x01 +@@ -49,6 +50,10 @@ + #define SETBG(x,c) ((x) = ((x) & 0x0F) | ((c) << 4)) + #define SETCOLOR(x,f,b) ((x) = (f) | ((b) << 4)) + ++/* Character sets */ ++#define S_ASCII 0x00 /* ASCII Graphics (normal) */ ++#define S_LINEDRAW 0x01 /* DEC Special Graphics */ ++ + struct vt_s { + /* Scrollback information */ + int line[VT_POOLSIZE]; /* Lines in the scrollback pool */ +@@ -87,6 +92,12 @@ + int pars[VT_MAXPARS]; /* VT100 parameters */ + int ques; /* If ? in VT100 string */ + u_int tab_stop[5]; /* Bit field for tab stops */ ++ ++ /* Graphics set information */ ++ int gset0; /* Character set loaded into GS0 */ ++ int gset0changed; /* GS0 loaded, but not active */ ++ int gset0mapped; /* GS0 loaded and active */ ++ int gset1; /* Character set loaded into GS1 */ + }; + + extern struct vt_s vt[VT_MAXVT]; diff --git a/misc/dt/patches/patch-ad b/misc/dt/patches/patch-ad index 1291486cf5a..41f564b5bd6 100644 --- a/misc/dt/patches/patch-ad +++ b/misc/dt/patches/patch-ad @@ -1,37 +1,131 @@ -$NetBSD: patch-ad,v 1.1 2002/02/10 22:49:55 fredb Exp $ +$NetBSD: patch-ad,v 1.2 2002/02/11 18:30:23 fredb Exp $ --- vt.c.orig Fri May 24 10:13:52 1996 -+++ vt.c Thu Feb 7 09:12:59 2002 ++++ vt.c @@ -748,6 +748,9 @@ register int line, i; if (v->state == ESnormal && ch >= ' ' && ch < 256) { -+ if ( (v->attr & T_G0) && ch >= 'a' && ch <= 'z') ++ if ( (v->attr & T_LINEDRAW) && ch >= 'a' && ch <= 'z') + ch -= 95; + if (v->hanging_cursor) { v->x = 0; movecursordown(v); -@@ -800,8 +803,10 @@ +@@ -796,13 +799,38 @@ + v->hanging_cursor = 0; /* XXX Is this right? */ + return; + case 13: ++ /* ++ * This is a hack! Do what I mean: after setting GS0, ++ * activate GS0 for next line, but don't just activate ++ * GS0 for every new line. ++ */ ++ if (v->gset0changed) { ++ if (v->gset0 == S_ASCII) ++ v->attr &= ~T_LINEDRAW; ++ else ++ v->attr |= T_LINEDRAW; ++ v->gset0changed = 0; ++ v->gset0mapped = 0; ++ } + v->x = 0; /* Carriage return (^M) */ v->hanging_cursor = 0; return; case 14: -+ v->attr |= T_G0; - return; /* Alternate font (^N) */ +- return; /* Alternate font (^N) */ ++ if (v->gset1 == S_ASCII) ++ v->attr &= ~T_LINEDRAW; ++ else ++ v->attr |= T_LINEDRAW; ++ return; /* Lock Shift 1 (^N) */ ++ v->gset0changed = 0; ++ v->gset0mapped = 0; case 15: -+ v->attr &= ~T_G0; - return; /* Normal font (^O) */ +- return; /* Normal font (^O) */ ++ if (v->gset0 == S_ASCII) ++ v->attr &= ~T_LINEDRAW; ++ else ++ v->attr |= T_LINEDRAW; ++ v->gset0changed = 1; /* to clear map bit at EOL */ ++ v->gset0mapped = 1; ++ return; /* Lock Shift 0 (^O) */ case 24: /* (^X) */ case 26: -@@ -1071,9 +1076,11 @@ + v->state = ESnormal; /* (^Z) */ +@@ -1070,36 +1098,38 @@ + break; case ESsetG0: if (ch == '0') { - /* Set graphics character set */ -+ v->attr |= T_G0; - } else - if (ch == 'B') { - /* Set normal character set */ -+ v->attr &= ~T_G0; - } else - if (ch == 'U') { - /* Set null character set */ +- /* Set graphics character set */ +- } else +- if (ch == 'B') { +- /* Set normal character set */ +- } else +- if (ch == 'U') { +- /* Set null character set */ +- } else +- if (ch == 'K') { +- /* Set user-defined character +- * set */ +- } +- /* If currently G0, then make active set */ ++ v->gset0 = S_LINEDRAW; ++ if (v->gset0mapped) ++ /* ++ * Activate immediately. We'll still mark it ++ * changed, so the mapped bit will get cleared ++ * for the next line. ++ */ ++ v->attr |= T_LINEDRAW; ++ v->gset0changed = 1; ++ } else if (ch == 'B') { ++ v->gset0 = S_ASCII; ++ if (v->gset0mapped) ++ /* ++ * Activate immediately. We'll still mark it ++ * changed, so the mapped bit will get cleared ++ * for the next line. ++ */ ++ v->attr &= ~T_LINEDRAW; ++ v->gset0changed = 1; ++ } + v->state = ESnormal; + break; ++ /* ++ * Not very useful. Typically, G1 would be changed to one ++ * of the other character sets, which we don't support. ++ */ + case ESsetG1: + if (ch == '0') { +- /* Set graphics character set */ +- } else +- if (ch == 'B') { +- /* Set normal character set */ +- } else +- if (ch == 'U') { +- /* Set null character set */ +- } else +- if (ch == 'K') { +- /* Set user-defined character +- * set */ +- } +- /* If currently G1, then make active set */ ++ v->gset1 = S_LINEDRAW; ++ } else if (ch == 'B') { ++ v->gset1 = S_ASCII; ++ } + v->state = ESnormal; + break; + default: +@@ -1187,6 +1217,10 @@ + v->tab_stop[3] = 0x01010101; + v->tab_stop[4] = 0x01010101; + v->copying = 0; ++ v->gset0 = S_ASCII; ++ v->gset0changed = 0; ++ v->gset0mapped = 0; ++ v->gset1 = S_LINEDRAW; + } + } + |