1*39833Sbostic static char *sccsid = "@(#)tc.c 4.4 (Berkeley) 01/02/90";
21121Sbill /*
31121Sbill * Simulate typesetter on 4014
41121Sbill */
51121Sbill
637908Sbostic #include <sys/signal.h>
737908Sbostic #include <paths.h>
81121Sbill #include <stdio.h>
91121Sbill
103943Sroot #define oput(c) if (pgskip==0) putchar(c); else (c);
111121Sbill #define MAXY 3071
121121Sbill #define US 037
131121Sbill #define GS 035
141121Sbill #define ESC 033
151121Sbill #define FF 014
161121Sbill #define DBL 0200
171121Sbill
181121Sbill int pl = 11*144;
191121Sbill int mpy = 1;
201121Sbill int div = 1;
211121Sbill char *ap;
221121Sbill int ch;
231121Sbill int nonumb;
241121Sbill int psize = 10;
251121Sbill int dfact = 1;
261121Sbill int esc;
271121Sbill int escd;
281121Sbill int verd;
291121Sbill int esct;
301121Sbill int osize = 02;
311121Sbill int size = 02;
321121Sbill int rx;
331121Sbill int xx;
341121Sbill int yy = MAXY+62+48;
351121Sbill int leadtot = -31;
361121Sbill int ohy = -1;
371121Sbill int ohx = -1;
381121Sbill int oxb = -1;
391121Sbill int oly = -1;
401121Sbill int olx = -1;
411121Sbill int tflag;
421121Sbill int railmag;
431121Sbill int lead;
441121Sbill int skip;
451121Sbill int pgskip;
461121Sbill int ksize = ';';
471121Sbill int mcase;
481121Sbill int stab[] = {010,0,01,07,02,03,04,05,0211,06,0212,0213,0214,0215,0216,0217};
491121Sbill int rtab[] = {6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 28, 36, 18};
501121Sbill int ktab[] = {';',';',';',';',';',';',':',':','9','9','9','9','8','8','8','9'};
511121Sbill int first = 1;
521121Sbill int alpha;
531121Sbill extern char *asctab[128];
541121Sbill extern char *spectab[128];
551121Sbill int erase = 1;
56*39833Sbostic sig_t sigint, sigquit;
571121Sbill
main(argc,argv)581121Sbill main(argc,argv)
591121Sbill int argc;
601121Sbill char **argv;
611121Sbill {
621121Sbill register i, j;
631121Sbill register char *k;
64*39833Sbostic extern void ex();
651121Sbill
661121Sbill while((--argc > 0) && ((++argv)[0][0]=='-')){
671121Sbill switch(argv[0][1]){
681121Sbill case 'p':
691121Sbill ap = &argv[0][2];
701121Sbill dfact = 72;
711121Sbill if(i = atoi())pl = i/3;
721121Sbill continue;
731121Sbill case 't':
741121Sbill tflag++;
751121Sbill continue;
761121Sbill case 's':
771121Sbill ap = &argv[0][2];
781121Sbill dfact = 1;
791121Sbill pgskip = atoi();
801121Sbill continue;
811121Sbill default:
821121Sbill dfact = 1;
831121Sbill ap = &argv[0][1];
841121Sbill if(i = atoi())mpy = i;
851121Sbill if(i = atoi())div = i;
861121Sbill continue;
871121Sbill }
881121Sbill }
891121Sbill if(argc){
901121Sbill if (freopen(argv[0], "r", stdin) == NULL) {
911121Sbill fprintf(stderr, "tc: cannot open %s\n", argv[0]);
921121Sbill exit(1);
931121Sbill }
941121Sbill }
951121Sbill sigint = signal(SIGINT, ex);
961121Sbill sigquit = signal(SIGQUIT, SIG_IGN);
971121Sbill while((i = getchar()) != EOF){
981121Sbill if(!i)continue;
991121Sbill if(i & 0200){
1001121Sbill esc += (~i) & 0177;
1011121Sbill continue;
1021121Sbill }
1031121Sbill if(esc){
1041121Sbill if(escd)esc = -esc;
1051121Sbill esct += esc;
1061121Sbill xx += (esc*mpy + rx)/div;
1071121Sbill rx = (esc*mpy + rx)%div;
1081121Sbill sendpt();
1091121Sbill esc = 0;
1101121Sbill }
1111121Sbill switch(i){
1121121Sbill case 0100: /*init*/
1131121Sbill escd = verd = mcase = railmag = xx = 0;
1141121Sbill yy = MAXY + 48;
1151121Sbill leadtot = -31;
1161121Sbill ohy = oxb = oly = ohx = olx = -1;
1171121Sbill oput(US);
1181121Sbill fflush(stdout);
1191121Sbill if(!first && !tflag)kwait();
1201121Sbill if(first){
1211121Sbill first = 0;
1221121Sbill yy += 62;
1231121Sbill }
1241121Sbill init();
1251121Sbill continue;
1261121Sbill case 0101: /*lower rail*/
1271121Sbill railmag &= ~01;
1281121Sbill continue;
1291121Sbill case 0102: /*upper rail*/
1301121Sbill railmag |= 01;
1311121Sbill continue;
1321121Sbill case 0103: /*upper mag*/
1331121Sbill railmag |= 02;
1341121Sbill continue;
1351121Sbill case 0104: /*lower mag*/
1361121Sbill railmag &= ~02;
1371121Sbill continue;
1381121Sbill case 0105: /*lower case*/
1391121Sbill mcase = 0;
1401121Sbill continue;
1411121Sbill case 0106: /*upper case*/
1421121Sbill mcase = 0100;
1431121Sbill continue;
1441121Sbill case 0107: /*escape forward*/
1451121Sbill escd = 0;
1461121Sbill continue;
1471121Sbill case 0110: /*escape backward*/
1481121Sbill escd = 1;
1491121Sbill continue;
1501121Sbill case 0111: /*stop*/
1511121Sbill continue;
1521121Sbill case 0112: /*lead forward*/
1531121Sbill verd = 0;
1541121Sbill continue;
1551121Sbill case 0113: /*undefined*/
1561121Sbill continue;
1571121Sbill case 0114: /*lead backward*/
1581121Sbill verd = 1;
1591121Sbill continue;
1601121Sbill case 0115: /*undefined*/
1611121Sbill case 0116:
1621121Sbill case 0117:
1631121Sbill continue;
1641121Sbill }
1651121Sbill if((i & 0340) == 0140){ /*leading*/
1661121Sbill lead = (~i) & 037;
1671121Sbill if(verd)lead = -lead;
1681121Sbill if((leadtot += lead) > pl){
1691121Sbill leadtot = lead;
1701121Sbill oput(US);
1711121Sbill fflush(stdout);
1721121Sbill if(!tflag)kwait();
1731121Sbill yy = MAXY;
1741121Sbill if(pgskip)--pgskip;
1751121Sbill init();
1761121Sbill continue;
1771121Sbill }
1781121Sbill if(skip)continue;
1791121Sbill if((yy -= (lead<<1)) < 0){
1801121Sbill skip++;
1811121Sbill yy = 0;
1821121Sbill }else sendpt();
1831121Sbill continue;
1841121Sbill }
1851121Sbill if((i & 0360) == 0120){ /*size change*/
1861121Sbill i &= 017;
1871121Sbill for(j = 0; i != (stab[j] & 017); j++);
1881121Sbill osize = size;
1891121Sbill size = stab[j];
1901121Sbill psize = rtab[j];
1911121Sbill ksize = ktab[j];
1921121Sbill oput(ESC);
1931121Sbill oput(ksize);
1941121Sbill i = 0;
1951121Sbill if(!(osize & DBL) && (size & DBL))i = -55;
1961121Sbill else if((osize & DBL) && !(size & DBL))i = 55;
1971121Sbill if(escd)i = -i;
1981121Sbill esc += i;
1991121Sbill continue;
2001121Sbill }
2011121Sbill if(i & 0300)continue;
2021121Sbill i = (i & 077) | mcase;
2031121Sbill if(railmag != 03)k = asctab[i];
2041121Sbill else k = spectab[i];
2051121Sbill if(alpha)sendpt();
2061121Sbill if(*k!='\0'){
2071121Sbill oput(US);
2081121Sbill while(*k & 0377)oput(*k++);
2091121Sbill alpha++;
2101121Sbill continue;
2111121Sbill }else{
2121121Sbill if(railmag != 03){
2131121Sbill switch(i){
2141121Sbill case 0124: lig("fi"); break;
2151121Sbill case 0125: lig("fl"); break;
2161121Sbill case 0126: lig("ff"); break;
2171121Sbill case 0130: lig("ffl"); break;
2181121Sbill case 0131: lig("ffi"); break;
2191121Sbill default: continue;
2201121Sbill }
2211121Sbill }
2221121Sbill continue;
2231121Sbill }
2241121Sbill }
2251121Sbill ex();
2261121Sbill }
lig(x)2271121Sbill lig(x)
2281121Sbill char *x;
2291121Sbill {
2301121Sbill register i, j;
2311121Sbill register char *k;
2321121Sbill
2331121Sbill j = 0;
2341121Sbill k = x;
2351121Sbill oput(US);
2361121Sbill oput(*k++);
2371121Sbill i = psize * 8 * mpy / (div * 6); /* 8/36 em */
2381121Sbill while(*k){
2391121Sbill xx += i;
2401121Sbill j += i;
2411121Sbill sendpt();
2421121Sbill oput(US);
2431121Sbill oput(*k++);
2441121Sbill }
2451121Sbill xx -= j;
2461121Sbill sendpt();
2471121Sbill }
init()2481121Sbill init(){
2491121Sbill
2501121Sbill fflush(stdout);
2511121Sbill if(erase){
2521121Sbill oput(ESC);
2531121Sbill oput(FF);
2541121Sbill }else erase = 1;
2551121Sbill oput(ESC);
2561121Sbill oput(ksize);
2571121Sbill /*delay about a second*/
2581121Sbill /* let the system do it...
2591121Sbill for(i = 960; i > 0; i--)oput(GS);
2601121Sbill */
2611121Sbill skip = 0;
2621121Sbill sendpt();
2631121Sbill }
264*39833Sbostic
265*39833Sbostic void
ex()2661121Sbill ex(){
2671121Sbill yy = MAXY;
2681121Sbill xx = 0;
2691121Sbill sendpt();
2701121Sbill oput(ESC);
2711121Sbill oput(';');
2721121Sbill oput(US);
2731121Sbill fflush(stdout);
2741121Sbill exit(0);
2751121Sbill }
kwait()2761121Sbill kwait(){
2771121Sbill char buf[128]; char *bptr; char c;
2781121Sbill if(pgskip) return;
2791121Sbill next:
2801121Sbill bptr=buf;
2811121Sbill while((c=readch())&&(c!='\n')) *bptr++=c;
2821121Sbill *bptr=0;
2831121Sbill if(bptr!=buf){
2841121Sbill bptr = buf;
2851121Sbill if(*bptr == '!'){callunix(&buf[1]); fputs("!\n", stderr); goto next;}
2861121Sbill else switch(*bptr++){
2871121Sbill case 'e':
2881121Sbill erase = 0;
2891121Sbill goto next;
2901121Sbill case 's':
2911121Sbill ap = &buf[1];
2921121Sbill dfact = 1;
2931121Sbill pgskip = atoi() + 1;
2941121Sbill goto next;
2951121Sbill default:
2961121Sbill fputs("?\n", stderr);
2971121Sbill goto next;
2981121Sbill }
2991121Sbill }
3001121Sbill else if (c==0) ex();
3011121Sbill else return;
3021121Sbill }
callunix(line)3031121Sbill callunix(line)
3041121Sbill char line[];
3051121Sbill {
3061121Sbill int rc, status, unixpid;
3071121Sbill if( (unixpid=fork())==0 ) {
3081121Sbill signal(SIGINT,sigint); signal(SIGQUIT,sigquit);
3091121Sbill close(0); dup(2);
31037908Sbostic execl(_PATH_BSHELL, "-sh", "-c", line, 0);
3111121Sbill exit(255);
3121121Sbill }
3131121Sbill else if(unixpid == -1)
3141121Sbill return;
3151121Sbill else{ signal(SIGINT, SIG_IGN); signal(SIGQUIT, SIG_IGN);
3161121Sbill while( (rc = wait(&status)) != unixpid && rc != -1 ) ;
3171121Sbill signal(SIGINT,ex); signal(SIGQUIT,sigquit);
3181121Sbill }
3191121Sbill }
readch()3201121Sbill readch(){
3211121Sbill char c;
3221121Sbill if (read(2,&c,1)<1) c=0;
3231121Sbill return(c);
3241121Sbill }
sendpt()3251121Sbill sendpt(){
3261121Sbill int hy,xb,ly,hx,lx;
3271121Sbill
3281121Sbill oput(GS);
3291121Sbill hy = ((yy>>7) & 037);
3301121Sbill xb = ((xx & 03) + ((yy<<2) & 014) & 017);
3311121Sbill ly = ((yy>>2) & 037);
3321121Sbill hx = ((xx>>7) & 037);
3331121Sbill lx = ((xx>>2) & 037);
3341121Sbill if(hy != ohy)oput(hy | 040);
3351121Sbill if(xb != oxb)oput(xb | 0140);
3361121Sbill if((ly != oly) || (hx != ohx) || (xb != oxb))
3371121Sbill oput(ly | 0140);
3381121Sbill if(hx != ohx)oput(hx | 040);
3391121Sbill oput(lx | 0100);
3401121Sbill ohy = hy;
3411121Sbill oxb = xb;
3421121Sbill oly = ly;
3431121Sbill ohx = hx;
3441121Sbill olx = lx;
3451121Sbill alpha = 0;
3461121Sbill return;
3471121Sbill }
atoi()3481121Sbill atoi()
3491121Sbill {
3501121Sbill register i, j, acc;
3511121Sbill int field, digits;
3521121Sbill long dd;
3531121Sbill long tscale();
3541121Sbill
3551121Sbill field = digits = acc = 0;
3561121Sbill a1:
3571121Sbill while(((j = (i = getch()) - '0') >= 0) && (j <= 9)){
3581121Sbill field++;
3591121Sbill digits++;
3601121Sbill acc = 10*acc + j;
3611121Sbill }
3621121Sbill if(i == '.'){
3631121Sbill field++;
3641121Sbill digits = 0;
3651121Sbill goto a1;
3661121Sbill }
3671121Sbill if(!(ch = i))ch = 'x';
3681121Sbill dd = tscale(acc);
3691121Sbill acc = dd;
3701121Sbill if((field != digits) && (digits > 0)){
3711121Sbill j = 1;
3721121Sbill while(digits--)j *= 10;
3731121Sbill acc = dd/j;
3741121Sbill }
3751121Sbill nonumb = !field;
3761121Sbill ch = 0;
3771121Sbill return(acc);
3781121Sbill }
tscale(n)3791121Sbill long tscale(n)
3801121Sbill int n;
3811121Sbill {
3821121Sbill register i, j;
3831121Sbill
3841121Sbill switch(i = getch()){
3851121Sbill case 'u':
3861121Sbill j = 1;
3871121Sbill break;
3881121Sbill case 'p': /*Points*/
3891121Sbill j = 6;
3901121Sbill break;
3911121Sbill case 'i': /*Inches*/
3921121Sbill j = 432;
3931121Sbill break;
3941121Sbill case 'c': /*Centimeters; should be 170.0787*/
3951121Sbill j = 170;
3961121Sbill break;
3971121Sbill case 'P': /*Picas*/
3981121Sbill j = 72;
3991121Sbill break;
4001121Sbill default:
4011121Sbill j = dfact;
4021121Sbill ch = i;
4031121Sbill }
4041121Sbill return((long)n*j);
4051121Sbill }
getch()4061121Sbill getch(){
4071121Sbill register i;
4081121Sbill
4091121Sbill if(ch){
4101121Sbill i = ch;
4111121Sbill ch = 0;
4121121Sbill return(i);
4131121Sbill }
4141121Sbill return(*ap++);
4151121Sbill }
4161121Sbill
4171121Sbill char *asctab[128] = {
4181121Sbill "\0", /*blank*/
4191121Sbill "h", /*h*/
4201121Sbill "t", /*t*/
4211121Sbill "n", /*n*/
4221121Sbill "m", /*m*/
4231121Sbill "l", /*l*/
4241121Sbill "i", /*i*/
4251121Sbill "z", /*z*/
4261121Sbill "s", /*s*/
4271121Sbill "d", /*d*/
4281121Sbill "b", /*b*/
4291121Sbill "x", /*x*/
4301121Sbill "f", /*f*/
4311121Sbill "j", /*j*/
4321121Sbill "u", /*u*/
4331121Sbill "k", /*k*/
4341121Sbill "\0", /*blank*/
4351121Sbill "p", /*p*/
4361121Sbill "-", /*_ 3/4 em dash*/
4371121Sbill ";", /*;*/
4381121Sbill "\0", /*blank*/
4391121Sbill "a", /*a*/
4401121Sbill "_", /*rule*/
4411121Sbill "c", /*c*/
4421121Sbill "`", /*` open*/
4431121Sbill "e", /*e*/
4441121Sbill "\'", /*' close*/
4451121Sbill "o", /*o*/
4461121Sbill "\0", /*1/4*/
4471121Sbill "r", /*r*/
4481121Sbill "\0", /*1/2*/
4491121Sbill "v", /*v*/
4501121Sbill "-", /*- hyphen*/
4511121Sbill "w", /*w*/
4521121Sbill "q", /*q*/
4531121Sbill "/", /*/*/
4541121Sbill ".", /*.*/
4551121Sbill "g", /*g*/
4561121Sbill "\0", /*3/4*/
4571121Sbill ",", /*,*/
4581121Sbill "&", /*&*/
4591121Sbill "y", /*y*/
4601121Sbill "\0", /*blank*/
4611121Sbill "%", /*%*/
4621121Sbill "\0", /*blank*/
4631121Sbill "Q", /*Q*/
4641121Sbill "T", /*T*/
4651121Sbill "O", /*O*/
4661121Sbill "H", /*H*/
4671121Sbill "N", /*N*/
4681121Sbill "M", /*M*/
4691121Sbill "L", /*L*/
4701121Sbill "R", /*R*/
4711121Sbill "G", /*G*/
4721121Sbill "I", /*I*/
4731121Sbill "P", /*P*/
4741121Sbill "C", /*C*/
4751121Sbill "V", /*V*/
4761121Sbill "E", /*E*/
4771121Sbill "Z", /*Z*/
4781121Sbill "D", /*D*/
4791121Sbill "B", /*B*/
4801121Sbill "S", /*S*/
4811121Sbill "Y", /*Y*/
4821121Sbill "\0", /*blank*/
4831121Sbill "F", /*F*/
4841121Sbill "X", /*X*/
4851121Sbill "A", /*A*/
4861121Sbill "W", /*W*/
4871121Sbill "J", /*J*/
4881121Sbill "U", /*U*/
4891121Sbill "K", /*K*/
4901121Sbill "0", /*0*/
4911121Sbill "1", /*1*/
4921121Sbill "2", /*2*/
4931121Sbill "3", /*3*/
4941121Sbill "4", /*4*/
4951121Sbill "5", /*5*/
4961121Sbill "6", /*6*/
4971121Sbill "7", /*7*/
4981121Sbill "8", /*8*/
4991121Sbill "9", /*9*/
5001121Sbill "*", /***/
5011121Sbill "-", /*minus*/
5021121Sbill "", /*fi*/
5031121Sbill "", /*fl*/
5041121Sbill "", /*ff*/
5051121Sbill "\033\016Z\bM\033\017", /*cent sign*/
5061121Sbill "", /*ffl*/
5071121Sbill "", /*ffi*/
5081121Sbill "(", /*(*/
5091121Sbill ")", /*)*/
5101121Sbill "[", /*[*/
5111121Sbill "]", /*]*/
5121121Sbill "\033\016J\033\017", /*degree*/
5131121Sbill "\033\016M\b_\033\017", /*dagger*/
5141121Sbill "=", /*=*/
5151121Sbill "\033\016O\b&\033\017", /*registered*/
5161121Sbill ":", /*:*/
5171121Sbill "+", /*+*/
5181121Sbill "\0", /*blank*/
5191121Sbill "!", /*!*/
5201121Sbill "\033\016O\b~\033\017", /*bullet*/
5211121Sbill "?", /*?*/
5221121Sbill "\'", /*foot mark*/
5231121Sbill "|", /*|*/
5241121Sbill "\0", /*blank*/
5251121Sbill "\033\016O\b#\033\017", /*copyright*/
5261121Sbill "\033\016L\033\017", /*square*/
5271121Sbill "$" }; /*$*/
5281121Sbill
5291121Sbill char *spectab[128] = {
5301121Sbill "\0", /*blank*/
5311121Sbill "\033\016(\bM\033\017", /*psi*/
5321121Sbill "\033\016o\b_\033\017", /*theta*/
5331121Sbill "v\b)", /*nu*/
5341121Sbill "\033\016V\b,\033\017", /*mu*/
5351121Sbill "\033\016)\b?\033\017", /*lambda*/
5361121Sbill "\033\016I\033\017", /*iota*/
5371121Sbill "S\b\033\016Z\033\017", /*zeta*/
5381121Sbill "o\b\'", /*sigma*/
5391121Sbill "o\b\033\0165\033\017", /*delta*/
5401121Sbill "\033\016b\033\017", /*beta*/
5411121Sbill "\033\016e\bc\033\017", /*xi*/
5421121Sbill "j\b\033\016C\033\017", /*eta*/
5431121Sbill "\033\016O\bM\033\017", /*phi*/
5441121Sbill "\033\016(\033\017", /*upsilon*/
5451121Sbill "\033\016k\033\017", /*kappa*/
5461121Sbill "\0", /*blank*/
5471121Sbill "T\b\033\016S\033\017", /*pi*/
5481121Sbill "@", /*at-sign*/
5491121Sbill "\033\016U\033\017", /*down arrow*/
5501121Sbill "\0", /*blank*/
5511121Sbill "\033\016A\033\017", /*alpha*/
5521121Sbill "|", /*or*/
5531121Sbill "l\b/", /*chi*/
5541121Sbill "\"", /*"*/
5551121Sbill "\033\016E\033\017", /*epsilon*/
5561121Sbill "=", /*=*/
5571121Sbill "\033\016O\033\017", /*omicron*/
5581121Sbill "\033\016[\033\017", /*left arrow*/
5591121Sbill "\033\016R\033\017", /*rho*/
5601121Sbill "\033\016Y\033\017", /*up arrow*/
5611121Sbill "\033\016N\033\017", /*tau*/
5621121Sbill "_", /*underrule*/
5631121Sbill "\\", /*\*/
5641121Sbill "I\b\033\016(\033\017", /*Psi*/
5651121Sbill "\033\016O\bJ\033\017", /*bell system sign*/
5661121Sbill "\033\016W\bX\033\017", /*infinity*/
5671121Sbill "`\b/", /*gamma*/
5681121Sbill "\033\016X\bF\033\017", /*improper superset*/
5691121Sbill "\033\016A\033\017", /*proportional to*/
5701121Sbill "\033\016\\\b]\033\017", /*right hand*/
5711121Sbill "\033\016W\033\017", /*omega*/
5721121Sbill "\0", /*blank*/
5731121Sbill "\033\016G\033\017", /*gradient*/
5741121Sbill "\0", /*blank*/
5751121Sbill "I\033\016\bO\033\017", /*Phi*/
5761121Sbill "O\b=", /*Theta*/
5771121Sbill "O\b_", /*Omega*/
5781121Sbill "\033\016V\033\017", /*cup (union)*/
5791121Sbill "\033\016@\033\017", /*root en*/
5801121Sbill "s", /*terminal sigma*/
5811121Sbill "\033\016)\bK\033\017", /*Lambda*/
5821121Sbill "-", /*minus*/
5831121Sbill "\033\016S\bK\033\017", /*Gamma*/
5841121Sbill "\033\016i\033\017", /*integral sign*/
5851121Sbill "\033\016t\b'\033\017", /*Pi*/
5861121Sbill "\033\016Z\033\017", /*subset of*/
5871121Sbill "\033\016X\033\017", /*superset of*/
5881121Sbill "\033\016T\033\017", /*approximates*/
5891121Sbill "o\b`", /*partial derivative*/
5901121Sbill "\033\016H\033\017", /*Delta*/
5911121Sbill "\033\016I\b'\033\017", /*square root*/
5921121Sbill ">\b\033\016F\b@\033\017", /*Sigma*/
5931121Sbill "\033\016T\bF\033\017", /*approx =*/
5941121Sbill "\0", /*blank*/
5951121Sbill ">", /*>*/
5961121Sbill "\033\016_\bF\b@\033\017", /*Xi*/
5971121Sbill "<", /*<*/
5981121Sbill "/", /*slash (longer)*/
5991121Sbill "\033\016C\033\017", /*cap (intersection)*/
6001121Sbill "\033\016y\033\017", /*Upsilon*/
6011121Sbill "\033\016|\033\017", /*not*/
6021121Sbill "|", /*right ceiling (rt of ")*/
6031121Sbill "|", /*left top (of big curly)*/
6041121Sbill "|", /*bold vertical*/
6051121Sbill "|", /*left center of big curly bracket*/
6061121Sbill "|", /*left bottom*/
6071121Sbill "|", /*right top*/
6081121Sbill "|", /*right center of big curly bracket*/
6091121Sbill "|", /*right bot*/
6101121Sbill "|", /*right floor (rb of ")*/
6111121Sbill "|", /*left floor (left bot of big sq bract)*/
6121121Sbill "|", /*left ceiling (lt of ")*/
6131121Sbill "\033\016=\033\017", /*multiply*/
6141121Sbill "\033\016+\033\017", /*divide*/
6151121Sbill "+\b_", /*plus-minus*/
6161121Sbill "\033\016$\033\017", /*<=*/
6171121Sbill "\033\016^\033\017", /*>=*/
6181121Sbill "=\b_", /*identically equal*/
6191121Sbill "\033\016*\033\017", /*not equal*/
6201121Sbill "{", /*{*/
6211121Sbill "}", /*}*/
6221121Sbill "\'", /*' acute accent*/
6231121Sbill "`", /*` grave accent*/
6241121Sbill "^", /*^*/
6251121Sbill "#", /*sharp*/
6261121Sbill "\033\016|\b[\033\017", /*left hand*/
6271121Sbill "\033\016c\b_\033\017", /*member of*/
6281121Sbill "~", /*~*/
6291121Sbill "\033\016O\b/\033\017", /*empty set*/
6301121Sbill "\0", /*blank*/
6311121Sbill "\033\016%\bM\033\017", /*dbl dagger*/
6321121Sbill "|", /*box rule*/
6331121Sbill "*", /*asterisk*/
6341121Sbill "\033\016Z\bF\033\017", /*improper subset*/
6351121Sbill "\033\016O\033\017", /*circle*/
6361121Sbill "\0", /*blank*/
6371121Sbill "+", /*eqn plus*/
6381121Sbill "\033\016]\033\017", /*right arrow*/
6391121Sbill "g\b\033\016C\033\017" }; /*section mark*/
640