SCCS-vsn: usr.bin/tn3270/sys_curses/terminal.h 1.3
SCCS-vsn: usr.bin/tn3270/sys_curses/termout.c 1.10
* of us, here are some macros to deal with them.
*/
* of us, here are some macros to deal with them.
*/
-#define TermAttributes(x) (TermIsStartField(x)? Terminal[x].data&0xff : \
- Terminal[WhereTermAttrByte(x)].data&0xff)
-#define TermIsStartField(x) (Terminal[x].data&ATTR_MASK)
-#define TermNewField(p,a) (Terminal[p].data = (a)|ATTR_MASK)
-#define TermDeleteField(p) (Terminal[p].data = 0)
+#define TermAttributes(x) (TermIsStartField(x)? GetTerminal(x)&0xff : \
+ GetTerminal(WhereTermAttrByte(x))&0xff)
+#define TermIsStartField(x) (GetTerminal(x)&ATTR_MASK)
+#define TermNewField(p,a) SetTerminal(p, (a)|ATTR_MASK)
+#define TermDeleteField(p) SetTerminal(p, 0)
#define TermIsNonDisplay(x) \
((TermAttributes(x)&ATTR_DSPD_MASK) == ATTR_DSPD_NONDISPLAY)
#define TermIsHighlighted(x) \
#define TermIsNonDisplay(x) \
((TermAttributes(x)&ATTR_DSPD_MASK) == ATTR_DSPD_NONDISPLAY)
#define TermIsHighlighted(x) \
((c != GetTerminal(p)) || NeedToRedisplayFieldsAttr(p,a))
#define NeedToRedisplay(c,p) NeedToRedisplayAttr(c,p,FieldAttributes(p))
((c != GetTerminal(p)) || NeedToRedisplayFieldsAttr(p,a))
#define NeedToRedisplay(c,p) NeedToRedisplayAttr(c,p,FieldAttributes(p))
-#define GetTerminal(i) Terminal[i].data
-#define SetTerminal(i,c) (Terminal[i].data = c)
-
#endif /* defined(SLOWSCREEN) */
#endif /* defined(SLOWSCREEN) */
+
+#define GetTerminal(i) GetGeneric(i, Terminal)
+#define GetTerminalPointer(p) GetGenericPointer(p)
+#define SetTerminal(i,c) SetGeneric(i,c,Terminal)
FastScreen(); /* Recurse */
return;
} else if (fieldattr) { /* Should we display? */
FastScreen(); /* Recurse */
return;
} else if (fieldattr) { /* Should we display? */
- addch(disp_asc[p->data]); /* Display translated data */
+ /* Display translated data */
+ addch(disp_asc[GetTerminalPointer(p)]);
} else {
addch(' '); /* Display a blank */
}
} else {
addch(' '); /* Display a blank */
}
} else {
if (fieldattr) { /* Should we display? */
/* Display translated data */
} else {
if (fieldattr) { /* Should we display? */
/* Display translated data */
- *tmp++ = disp_asc[p->data];
+ *tmp++ = disp_asc[GetTerminalPointer(p)];