|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1988 Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution and use in source and binary forms are permitted ! 6: * provided that the above copyright notice and this paragraph are ! 7: * duplicated in all such forms and that any documentation, ! 8: * advertising materials, and other materials related to such ! 9: * distribution and use acknowledge that the software was developed ! 10: * by the University of California, Berkeley. The name of the ! 11: * University may not be used to endorse or promote products derived ! 12: * from this software without specific prior written permission. ! 13: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 14: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 15: * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 16: * ! 17: * @(#)terminal.h 4.2 (Berkeley) 5/30/89 ! 18: */ ! 19: ! 20: #define INCLUDED_TERMINAL ! 21: ! 22: /* ! 23: * In the situation where we have a copy of the terminal screen in front ! 24: * of us, here are some macros to deal with them. ! 25: */ ! 26: ! 27: #define TermAttributes(x) (TermIsStartField(x)? GetTerminal(x)&0xff : \ ! 28: GetTerminal(WhereTermAttrByte(x))&0xff) ! 29: #define TermIsStartField(x) ((GetTerminal(x)&ATTR_MASK) == ATTR_MASK) ! 30: #define TermNewField(p,a) SetTerminal(p, (a)|ATTR_MASK) ! 31: #define TermDeleteField(p) SetTerminal(p, 0) ! 32: #define TermIsNonDisplay(x) \ ! 33: ((TermAttributes(x)&ATTR_DSPD_MASK) == ATTR_DSPD_NONDISPLAY) ! 34: #define TermIsHighlighted(x) \ ! 35: (((TermAttributes(x)&ATTR_DSPD_MASK) == ATTR_DSPD_HIGH) \ ! 36: && !TermIsStartField(x)) ! 37: ! 38: #define TerminalCharacterAttr(c,p,a) (IsNonDisplayAttr(a) ? ' ':c) ! 39: #define TerminalCharacter(c,p) TerminalCharacterAttr(c,p,FieldAttributes(p)) ! 40: ! 41: /* ! 42: * Is the screen formatted? Some algorithms change depending ! 43: * on whether there are any attribute bytes lying around. ! 44: */ ! 45: #define TerminalFormattedScreen() \ ! 46: ((WhereTermAttrByte(0) != 0) || ((GetTerminal(0)&ATTR_MASK) == ATTR_MASK)) ! 47: ! 48: #define NeedToRedisplayFields(p) ((TermIsNonDisplay(p) != IsNonDisplay(p)) || \ ! 49: (TermIsHighlighted(p) != IsHighlighted(p))) ! 50: #define NeedToRedisplayFieldsAttr(p,c) ( \ ! 51: (TermIsNonDisplay(p) != IsNonDisplayAttr(c)) || \ ! 52: (TermIsHighlighted(p) != IsHighlightedAttr(c))) ! 53: ! 54: #define NotVisuallyCompatibleAttributes(p,c,d) ( \ ! 55: (IsNonDisplayAttr(c) != IsNonDisplayAttr(d)) || \ ! 56: (IsHighlightedAttr(c) != IsHighlightedAttr(d))) ! 57: ! 58: #define NeedToRedisplayAttr(c,p,a) \ ! 59: ((c != GetTerminal(p)) || NeedToRedisplayFieldsAttr(p,a)) ! 60: #define NeedToRedisplay(c,p) NeedToRedisplayAttr(c,p,FieldAttributes(p)) ! 61: ! 62: ! 63: #define GetTerminal(i) GetGeneric(i, Terminal) ! 64: #define GetTerminalPointer(p) GetGenericPointer(p) ! 65: #define SetTerminal(i,c) SetGeneric(i,c,Terminal)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.