Fixes to make ScreenImage type NOT hardcoded.
authorGregory Minshall <minshall@ucbvax.Berkeley.EDU>
Tue, 19 May 1987 07:06:19 +0000 (23:06 -0800)
committerGregory Minshall <minshall@ucbvax.Berkeley.EDU>
Tue, 19 May 1987 07:06:19 +0000 (23:06 -0800)
SCCS-vsn: usr.bin/tn3270/sys_curses/terminal.h 1.3
SCCS-vsn: usr.bin/tn3270/sys_curses/termout.c 1.10

usr/src/usr.bin/tn3270/sys_curses/terminal.h
usr/src/usr.bin/tn3270/sys_curses/termout.c

index d842a72..faba629 100644 (file)
  * 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) \
@@ -39,7 +39,8 @@
                        ((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)
index 26e2c06..e57facf 100644 (file)
@@ -499,7 +499,8 @@ FastScreen()
                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 */
            }
@@ -541,7 +542,7 @@ FastScreen()
            } 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)];
                } else {
                    *tmp++ = ' ';
                }
                } else {
                    *tmp++ = ' ';
                }