|
|
1.1 ! root 1: .\" Copyright (c) 1980 The Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted ! 5: .\" provided that the above copyright notice and this paragraph are ! 6: .\" duplicated in all such forms and that any documentation, ! 7: .\" advertising materials, and other materials related to such ! 8: .\" distribution and use acknowledge that the software was developed ! 9: .\" by the University of California, Berkeley. The name of the ! 10: .\" University may not be used to endorse or promote products derived ! 11: .\" from this software without specific prior written permission. ! 12: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 13: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 14: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 15: .\" ! 16: .\" @(#)appen.B 6.2 (Berkeley) 3/17/89 ! 17: .\" ! 18: .ie t .oh '\*(Ln Appendix B''PS1:18-%' ! 19: .eh 'PS1:18-%''\*(Ln Appendix B' ! 20: .el .he ''\fIAppendix B\fR'' ! 21: .bp ! 22: .(x ! 23: .ti 0 ! 24: .b "Appendix B" ! 25: .)x ! 26: .nr $1 0 ! 27: .sh 1 "The WINDOW structure" ! 28: .pp ! 29: The WINDOW structure is defined as follows: ! 30: .(l I ! 31: .so win_st.gr ! 32: .)l ! 33: .pp ! 34: .Vn \*_cury \\* ! 35: .(f ! 36: \** ! 37: All variables not normally accessed directly by the user ! 38: are named with an initial ! 39: .Bq \*_ ! 40: to avoid conflicts with the user's variables. ! 41: .)f ! 42: and ! 43: .Vn \*_curx ! 44: are the current \*y for the window. ! 45: New characters added to the screen ! 46: are added at this point. ! 47: .Vn \*_maxy ! 48: and ! 49: .Vn \*_maxx ! 50: are the maximum values allowed for ! 51: .Vn \*_cury\*,\*_curx ). ( ! 52: .Vn \*_begy ! 53: and ! 54: .Vn \*_begx ! 55: are the starting \*y on the terminal for the window, ! 56: .i i.e. , ! 57: the window's home. ! 58: .Vn \*_cury , ! 59: .Vn \*_curx , ! 60: .Vn \*_maxy , ! 61: and ! 62: .Vn \*_maxx ! 63: are measured relative to ! 64: .Vn \*_begy\*,\*_begx ), ( ! 65: not the terminal's home. ! 66: .pp ! 67: .Vn \*_clear ! 68: tells if a clear-screen sequence is to be generated ! 69: on the next ! 70: .Fn refresh ! 71: call. ! 72: This is only meaningful for screens. ! 73: The initial clear-screen for the first ! 74: .Fn refresh ! 75: call is generated by initially setting clear to be TRUE for ! 76: .Vn curscr , ! 77: which always generates a clear-screen if set, ! 78: irrelevant of the dimensions of the window involved. ! 79: .Vn \*_leave ! 80: is TRUE if the current \*y and the cursor ! 81: are to be left after the last character changed on the terminal, ! 82: or not moved if there is no change. ! 83: .Vn \*_scroll ! 84: is TRUE ! 85: if scrolling is allowed. ! 86: .pp ! 87: .Vn \*_y ! 88: is a pointer to an array of lines which describe the terminal. ! 89: Thus: ! 90: .(l ! 91: \*_y[i] ! 92: .)l ! 93: .lp ! 94: is a pointer to the ! 95: .Vn i th ! 96: line, and ! 97: .(l ! 98: \*_y[i][j] ! 99: .)l ! 100: .lp ! 101: is the ! 102: .Vn j th ! 103: character on the ! 104: .Vn i th ! 105: line. ! 106: .Vn \*_flags ! 107: can have one or more values ! 108: or'd into it. ! 109: .pp ! 110: For windows that are not subwindows, ! 111: .Vn \*_orig ! 112: is ! 113: NULL . ! 114: For subwindows, ! 115: it points to the main window ! 116: to which the window is subsidiary. ! 117: .Vn \*_nextp ! 118: is a pointer in a circularly linked list ! 119: of all the windows which are subwindows of the same main window, ! 120: plus the main window itself. ! 121: .pp ! 122: .Vn \*_firstch ! 123: and ! 124: .Vn \*_lastch ! 125: are ! 126: .Fn malloc ed ! 127: arrays which contain the index of the ! 128: first and last changed characters ! 129: on the line. ! 130: .Vn \*_ch\*_off ! 131: is the x offset for the window ! 132: in the ! 133: .Vn \*_firstch ! 134: and ! 135: .Vn \*_lastch ! 136: arrays for this window. ! 137: For main windows, ! 138: this is always 0; ! 139: for subwindows ! 140: it is the difference between the starting point of the main window ! 141: and that of the subindow, ! 142: so that change markers can be set relative to the main window. ! 143: This makes these markers global in scope. ! 144: .pp ! 145: All subwindows share the appropriate portions of ! 146: .Vn _y , ! 147: .Vn _firstch , ! 148: .Vn _lastch , ! 149: and ! 150: .Vn _insdel ! 151: with their main window. ! 152: .pp ! 153: .b \*_ENDLINE ! 154: says that the end of the line for this window ! 155: is also the end of a screen. ! 156: .b \*_FULLWIN ! 157: says that this window is a screen. ! 158: .b \*_SCROLLWIN ! 159: indicates that the last character of this screen ! 160: is at the lower right-hand corner of the terminal; ! 161: .i i.e. , ! 162: if a character was put there, ! 163: the terminal would scroll. ! 164: .b \*_FULLLINE ! 165: says that the width of a line is the same as the width of the terminal. ! 166: If ! 167: .b \*_FLUSH ! 168: is set, ! 169: it says that ! 170: .Fn fflush "" "" stdout ! 171: should be called at the end of each ! 172: .Fn refresh ! 173: .b \*_STANDOUT ! 174: says that all characters added to the screen ! 175: are in standout mode. ! 176: .b \*_INSDEL ! 177: is reserved for future use, ! 178: and is set by ! 179: .Fn idlok . ! 180: .Vn \*_firstch ! 181: is set to ! 182: .b \*_NOCHANGE ! 183: for lines on which there has been no change ! 184: since the last ! 185: .Fn refresh .
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.