Disgusting hack for U Md. windows on h-19
jim at uw-beaver.UUCP
jim at uw-beaver.UUCP
Wed Jul 6 06:05:06 AEST 1983
I have modified TrmTERM.c in the recently posted Maryland window
package to support graphics mode on a Heath/Zenith h-19. A cleaner way
to do this would have been to add graphics to termcap or write a
TrmH19.c, but I was feeling lazy so I just hacked it in.
*** TrmTERM.c_o Thu Mar 10 19:49:32 1983
--- TrmTERM.c Fri Jun 10 15:20:20 1983
***************
*** 21,26
* - Secured the cost algorithms from buffer overflow (16-Jul-82)
* - Does not use standout if 'sg#' is nonzero.
* Modified by Chris Torek (ACT): added %m cursor motion code
*/
/*
--- 21,27 -----
* - Secured the cost algorithms from buffer overflow (16-Jul-82)
* - Does not use standout if 'sg#' is nonzero.
* Modified by Chris Torek (ACT): added %m cursor motion code
+ * Modified by Jim Rees at UW for frames on h19 (ugly!)
*/
#define H19 /* For special gross h19 hacks */
***************
*** 23,28
* Modified by Chris Torek (ACT): added %m cursor motion code
*/
/*
* Notes on things not normally in TERMCAP:
* :rn: indicates that \r acts like \r\n
--- 24,31 -----
* Modified by Jim Rees at UW for frames on h19 (ugly!)
*/
+ #define H19 /* For special gross h19 hacks */
+
/*
* Notes on things not normally in TERMCAP:
* :rn: indicates that \r acts like \r\n
***************
*** 45,50
static
int curX, curY;
char *tgetstr (), *getenv ();
char *UP, *BC, PC;
--- 48,56 -----
static
int curX, curY;
+ #ifdef H19
+ static int CurGraph;
+ #endif H19
char *tgetstr (), *getenv ();
char *UP, *BC, PC;
***************
*** 187,192
putchar (' ');
putchar (*BC);
}
if (HZflag && *start == '~') putchar ('`'), ++start;
else putchar (*start++);
if (CurMode == m_insert && ICPDstr)
--- 193,199 -----
putchar (' ');
putchar (*BC);
}
+ #ifndef H19
if (HZflag && *start == '~') putchar ('`'), ++start;
else putchar (*start++);
#else H19
***************
*** 189,194
}
if (HZflag && *start == '~') putchar ('`'), ++start;
else putchar (*start++);
if (CurMode == m_insert && ICPDstr)
tputs(ICPDstr, W_tt.t_width-curX, dumpchar);
curX++;
--- 196,217 -----
#ifndef H19
if (HZflag && *start == '~') putchar ('`'), ++start;
else putchar (*start++);
+ #else H19
+ if (*start & 0x80) {
+ if (CurGraph == 0) {
+ printf ("\033F");
+ CurGraph = 1;
+ }
+ putchar (*start++ & 0x7f);
+ }
+ else {
+ if (CurGraph && *start != ' ') {
+ printf ("\033G");
+ CurGraph = 0;
+ }
+ putchar (*start++);
+ }
+ #endif H19
if (CurMode == m_insert && ICPDstr)
tputs(ICPDstr, W_tt.t_width-curX, dumpchar);
curX++;
***************
*** 507,512
ULINEOFF |= WINVERSE;
HLOFF |= WULINE;
}
return 0;
};
--- 530,550 -----
ULINEOFF |= WINVERSE;
HLOFF |= WULINE;
}
+ #ifdef H19
+ /*
+ * Special gross hack for h19 by Jim Rees
+ */
+ if (!strcmp(getenv("TERM"), "h19")) {
+ W_tt.t_frames[0] = 'f' | 0x80; /* ulc */
+ W_tt.t_frames[1] =
+ W_tt.t_frames[6] = 'a' | 0x80; /* top, bottom */
+ W_tt.t_frames[2] = 'c' | 0x80; /* urc */
+ W_tt.t_frames[3] =
+ W_tt.t_frames[4] = '`' | 0x80; /* left, right */
+ W_tt.t_frames[5] = 'e' | 0x80; /* llc */
+ W_tt.t_frames[7] = 'd' | 0x80; /* lrc */
+ }
+ #endif H19
return 0;
};
***************
*** 527,532
if (TIstr) tputs(TIstr, 0, dumpchar);
if (VSstr) tputs(VSstr, 0, dumpchar);
tputs(ESstr, 0, dumpchar); /* Also homes cursor: */
curX = curY = 1;
CurMode = m_insert;
DesMode = m_overwrite;
--- 565,573 -----
if (TIstr) tputs(TIstr, 0, dumpchar);
if (VSstr) tputs(VSstr, 0, dumpchar);
tputs(ESstr, 0, dumpchar); /* Also homes cursor: */
+ #ifdef H19
+ CurGraph = 0;
+ #endif H19
curX = curY = 1;
CurMode = m_insert;
DesMode = m_overwrite;
***************
*** 545,550
static
wipeline (z,p) register p; {
clearmodes ();
if (ELstr) tputs (ELstr, W_tt.t_width-curX, dumpchar);
else {
register i = p - curX + 1/*, oldX = curX*/;
--- 586,597 -----
static
wipeline (z,p) register p; {
clearmodes ();
+ #ifdef H19
+ if (CurGraph) {
+ printf ("\033G");
+ CurGraph = 0;
+ }
+ #endif H19
if (ELstr) tputs (ELstr, W_tt.t_width-curX, dumpchar);
else {
register i = p - curX + 1/*, oldX = curX*/;
More information about the Comp.sources.unix
mailing list