1: /* 2: * sroff driving tables 3: */ 4: #include "sdef.h" 5: 6: /* 7: * struct t is not overlaid by -F options. 8: */ 9: 10: struct { 11: #ifndef TTY 12: int bflags; 13: int bspeed; 14: #else 15: int bset; 16: int breset; 17: #endif 18: int Newline; 19: int Halfline; 20: char *twinit; 21: char *twrest; 22: char *twnl; 23: #ifdef ADJ 24: char *twfp; 25: #endif 26: char *hlr; 27: char *hlf; 28: char *flr; 29: char *bdon; 30: char *bdoff; 31: char *ploton; 32: char *plotoff; 33: char *up; 34: char *down; 35: char *right; 36: char *left; 37: char *ulon; /* underlining enables */ 38: char *uloff; /* underlining disabled */ 39: int zzz; 40: } t { 41: 42: #ifndef TTY 43: #ifdef ADJ 44: /*bflags*/ CR1|NL1|FF1|EVENP|ODDP, 45: #else 46: /*bflags*/ CR1|NL1|FF1|EVENP|ODDP|CRMOD, 47: #endif 48: /*bspeed*/ BSPEED, 49: 50: #else 51: 52: /*bset*/ CR1|NL1|FF1|EVENP|ODDP, 53: #ifdef ADJ 54: /*breset*/ ECHO|CRMOD, 55: #else 56: /*breset*/ ECHO, 57: #endif 58: #endif TTY 59: 60: /*Newline*/ INCH/6, 61: /*Halfline*/ INCH/12, 62: /*twinit*/ "\033I\033rA\033B@@A", /* reset, ribbon usage, bottom margin */ 63: /*twrest*/ "", 64: #ifdef ADJ 65: /*twnl*/ "\r\n", 66: /*twfp*/ "\033P\n", /* force print */ 67: #else 68: /*twnl*/ "\n", 69: #endif 70: /*hlr*/ "\033D", 71: /*hlf*/ "\033U", 72: /*flr*/ "\033\012", /*reverse line feed for col*/ 73: /*bdon*/ "\033b", /* bold on - next char is offset */ 74: /*bdoff*/ "\033b@", /* try to turn it back off!! */ 75: /*ploton*/ "", 76: /*plotoff*/ "", 77: /*up*/ "", 78: /*down*/ "", 79: /*right*/ "", 80: /*left*/ "", 81: /*ulon*/ "\033uM", 82: /*uloff*/ "\033uM" 83: }; 84: 85: /* 86: * code tables 87: * In the first byte, the 88: * 0100 bit specifies that special fonts are used; if set, the rightmost octal 89: * digit is the font to be set initially, and the middle octal digit 90: * is the final font that will be used (always the same if no font changes 91: * are done in the string). 92: * The leftmost bit of each of the remaining bytes 93: * turns on plot mode (see s10.c) 94: */ 95: 96: char *codetab[MAXCHAR-0200] = { 97: "\000\000", /* 200: null; not output */ 98: "\000\010", /* 201: bs */ 99: "\000\011", /* 202: tab */ 100: "\000\012", /* 203: lf */ 101: "\000\014", /* 204: ff */ 102: "\000\015", /* 205: cr */ 103: "\000\033", /* 206: esc */ 104: "\000\\", /* backslash (never escaped) */ 105: "\000\000", /* unused */ 106: "\000\000", /* unused */ 107: /* sanders control sequences */ 108: "\000\033a", /* 212: select font */ 109: "\000\033s", /* 213: repeat character */ 110: "\000\033x", /* 214: insert sequence of characters */ 111: "\000\033y", /* 215: insert space */ 112: "\000\033U", /* 216: half-line feed */ 113: "\000\033\012", /* 217: neqative line feed */ 114: "\000\033D", /* 220: negative half-line feed */ 115: "\000\033n", /* 221: select format */ 116: "\000\033e", /* 222: set line length */ 117: "\000\033I", /* 223: set temporary indent */ 118: "\000\033g", /* 224: set indentation */ 119: #ifdef ADJ 120: "\000\033w@@,@@,FP.", /* 225: set word space */ 121: /* allow up to 400 mils between words */ 122: #else 123: "\000\033w", /* 225: set word space */ 124: #endif 125: "\000\033i", /* 226: set form length */ 126: "\000\033t", /* 227: toggle draft mode */ 127: /* greek: */ 128: "\177a", /* 230: alpha */ 129: "\177b", /* beta */ 130: "\177c", /* gamma */ 131: "\177d", /* delta */ 132: "\177e", /* epsilon */ 133: "\177g", /* zeta */ 134: "\177h", /* eta */ 135: "\177i", /* theta */ 136: "\177j", /*240: iota */ 137: "\177k", /* kappa */ 138: "\177l", /* lambda */ 139: "\177m", /* mu */ 140: "\177n", /* nu */ 141: "\177o", /* xi */ 142: "\177p", /* omicron */ 143: "\177q", /* pi */ 144: "\177r", /*250: rho */ 145: "\177s", /* sigma */ 146: "\177t", /* tau */ 147: "\177u", /* upsilon */ 148: "\177v", /* phi */ 149: "\177x", /* chi */ 150: "\177y", /* psi */ 151: "\177z", /*omega*/ 152: "\177A", /*260: Alpha */ 153: "\177B", /* Beta */ 154: "\177C", /* Gamma */ 155: "\177D", /* Delta */ 156: "\177E", /* Epsilon */ 157: "\177G", /* Zeta */ 158: "\177H", /* Eta */ 159: "\177I", /* Theta */ 160: "\177J", /*270: Iota */ 161: "\177K", /* Kappa */ 162: "\177L", /* Lambda */ 163: "\177M", /* Mu */ 164: "\177N", /* Nu */ 165: "\177O", /* Xi */ 166: "\177P", /* Omicron */ 167: "\177Q", /* Pi */ 168: "\177R", /*300: Rho */ 169: "\177S", /* Sigma */ 170: "\177T", /* Tau */ 171: "\177U", /* Upsilon */ 172: "\177V", /* Phi */ 173: "\177X", /* Chi */ 174: "\177Y", /* Psi */ 175: "\177Z", /* Omega */ 176: "\177`", /*310: square root*/ 177: "\177_", /*root en */ 178: "\166h", /*>=*/ 179: "\166H", /*<=*/ 180: "\166N", /*identically equal*/ 181: "\166k", /*approx =*/ 182: "\166J", /*approximates*/ 183: "\166j", /*not equal*/ 184: "\166W", /*320: right arrow*/ 185: "\166w", /*left arrow*/ 186: "\166^", /*up arrow*/ 187: "\166\177", /*down arrow*/ 188: "\166x", /*multiply*/ 189: "\166f", /*divide*/ 190: "\166L", /*plus-minus*/ 191: "\166T", /*cup (union)*/ 192: "\166t", /*330: cap (intersection)*/ 193: "\166U", /*subset of*/ 194: "\166u", /*superset of*/ 195: "\166\033uDU\033uD", /*improper subset*/ 196: "\166\033uDu\033uD", /* improper superset*/ 197: "\166z", /*infinity*/ 198: "\166X", /*partial derivative*/ 199: "\166V", /*gradient*/ 200: "\166Z", /*340: proportional to*/ 201: "\166\033l\177Nd\033o\177p\033l~\134d\033o@P\033l\177N", /* box vert rule */ 202: "\177|", /*or */ 203: "\000*", /*bullet*/ 204: "\166[", /*square*/ 205: "\177;", /*degree*/ 206: "\166_", /*dagger*/ 207: "\000\033o@K\_\033o\177u", /* underrule */ 208: "\177-", /* 350: 3/4 Em dash */ 209: /* bracket building symbols */ 210: "\166\033o@Dd\033o\177l\033l~\134d\033o@P", /* vertical solid bar */ 211: "\166A\033o@N\033l~\134d\033o\177r", /* left top curly */ 212: "\166B\033o\177t\033l~\134d\033o@L", /* left bottom curly */ 213: "\166C\033o\177r\033l~\134d\033o@N", /* right center curly */ 214: "\166D\033o@N\033l~\134d\033o\177r", /* left top square */ 215: "\166E\033o\177t\033l~\134d\033o@L", /* left bottom square */ 216: "\166F\033o\177t\033l~\134d\033o@L", /* right bottom square */ 217: "\166b\033o@N\033l~\134d\033o\177r", /*360: right top curly */ 218: "\166c\033o\177t\033l~\134d\033o@L", /* right bottom curly */ 219: "\166e\033o@N\033l~\134d\033o\177r", /* right top square */ 220: "\166/\033o\177r\033l~\134d\033o@N", /* left center curly */ 221: "\167!\033aF\033o@N\033l~\134d\033o\177r", /* top of integral */ 222: "\176\033o\177rd\033o@N\033l~\134\033aG*", /* bottom of integral */ 223: "\166d\033o\177r\033l~\134d\033o@N", /* bracket upper */ 224: "\166d\033o\177r\033l~\134d\033o@N", /* bracket lower */ 225: "\177\\", /* 370: angled slash for sqrt */ 226: /* more constructed characters: */ 227: "\177|\033N=", /*371: dbl dagger*/ 228: "\166d" /* solid single bar */ 229: };