This version works with 3278-style inline attribute characters.
authorGregory Minshall <minshall@ucbvax.Berkeley.EDU>
Thu, 13 Nov 1986 09:17:20 +0000 (01:17 -0800)
committerGregory Minshall <minshall@ucbvax.Berkeley.EDU>
Thu, 13 Nov 1986 09:17:20 +0000 (01:17 -0800)
SCCS-vsn: usr.bin/tn3270/sys_curses/termout.c 1.2
SCCS-vsn: usr.bin/tn3270/sys_curses/terminal.h 1.2

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

index 15e5f35..d842a72 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].field&0xff : \
-                                   Terminal[WhereTermAttrByte(x)].field&0xff)
-#define TermIsStartField(x)    (Terminal[x].field&ATTR_MASK)
-#define TermNewField(p,a)      (Terminal[p].field = (a)|ATTR_MASK)
-#define TermDeleteField(p)     (Terminal[p].field = 0)
+#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 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) \
index 33aa1f2..5e551a4 100644 (file)
@@ -379,7 +379,8 @@ SlowScreen()
                }
            } else {
                SetHighlightMode(pointer);
                }
            } else {
                SetHighlightMode(pointer);
-               /* The following will terminate at least when we get back
+               /*
+                * The following will terminate at least when we get back
                 * to the original 'pointer' location (since we force
                 * things to be equal).
                 */
                 * to the original 'pointer' location (since we force
                 * things to be equal).
                 */
@@ -470,7 +471,7 @@ FastScreen()
        columnsleft = NumberColumns-ScreenLineOffset(p-Host);
 
        while (p <= upper) {
        columnsleft = NumberColumns-ScreenLineOffset(p-Host);
 
        while (p <= upper) {
-           if (p->field & ATTR_MASK) { /* New field? */
+           if (IsStartFieldPointer(p)) {       /* New field? */
                Highest = HighestScreen();
                Lowest = LowestScreen();
                FastScreen();           /* Recurse */
                Highest = HighestScreen();
                Lowest = LowestScreen();
                FastScreen();           /* Recurse */
@@ -505,14 +506,14 @@ FastScreen()
        DoAttribute(fieldattr); /* Set standout, non-display status */
 
        while (p <= End) {
        DoAttribute(fieldattr); /* Set standout, non-display status */
 
        while (p <= End) {
-           if (p->field & ATTR_MASK) { /* New field? */
+           if (IsStartFieldPointer(p)) {       /* New field? */
                if (tmp != tmpbuf) {
                    *tmp++ = 0;                 /* close out */
                    addstr(tmpbuf);
                    tmp = tmpbuf;
                    tmpend = tmpbuf + NumberColumns - ScreenLineOffset(p-Host);
                }
                if (tmp != tmpbuf) {
                    *tmp++ = 0;                 /* close out */
                    addstr(tmpbuf);
                    tmp = tmpbuf;
                    tmpend = tmpbuf + NumberColumns - ScreenLineOffset(p-Host);
                }
-               fieldattr = p->field;   /* Get attributes */
+               fieldattr = FieldAttributesPointer(p);  /* Get attributes */
                DoAttribute(fieldattr); /* Set standout, non-display */
                *tmp++ = ' ';
            } else {
                DoAttribute(fieldattr); /* Set standout, non-display */
                *tmp++ = ' ';
            } else {