home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / 3b1 / volume02 / maketab / part01 < prev    next >
Encoding:
Internet Message Format  |  1993-11-25  |  17.6 KB

  1. Path: comp-sources-3b1
  2. From: adh@rambla.East.Sun.COM (Sandwich Maker)
  3. Subject:  v02i043:  Printer table assembler and disassembler for old nroff, Part01/01
  4. Newsgroups: comp.sources.3b1
  5. Approved: dave@galaxia.network23.com
  6. X-Checksum-Snefru: 30ae1188 50380154 29424859 a025555d
  7.  
  8. Submitted-by: adh@rambla.East.Sun.COM (Sandwich Maker)
  9. Posting-number: Volume 2, Issue 43
  10. Archive-name: maketab/part01
  11.  
  12. This is a printer table assembler and disassembler for old nroff from
  13. Andrew Hay.  Andrew did not have shar available on his system so with
  14. his permission I took the pieces and built a shar file.  Andrews
  15. original comments from his email messages are collected into the README
  16. file.
  17.     Dave B.
  18.  
  19.  
  20. #! /bin/sh
  21. # This is a shell archive.  Remove anything before this line, then unpack
  22. # it by saving it into a file and typing "sh file".  To overwrite existing
  23. # files, type "sh file -c".  You can also feed this as standard input via
  24. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  25. # will see the following message at the end:
  26. #        "End of shell archive."
  27. # Contents:  README maketab.c printertab.c tab850p.src
  28. # Wrapped by dave@galaxia on Wed Nov 24 22:56:51 1993
  29. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  30. if test -f 'README' -a "${1}" != "-c" ; then 
  31.   echo shar: Will not clobber existing file \"'README'\"
  32. else
  33. echo shar: Extracting \"'README'\" \(2577 characters\)
  34. sed "s/^X//" >'README' <<'END_OF_FILE'
  35. XThe original posting from Andrew did not contain a README.  In fact it was
  36. Xnot even packed with shar.  The following are Andrews comments for the 3
  37. Xpieces of this package.   -- Dave
  38. X
  39. X
  40. X*******************************************************************************
  41. X> > > > > > > > > > > > original comments for maketab.c < < < < < < < < < < < <
  42. X*******************************************************************************
  43. X
  44. Xmaketab takes one argument, the name of the tabXX file that you want
  45. Xto create.  it reads its input from a file with the same name and
  46. Xextension .src.
  47. Xit has limitations:
  48. X    it doesn't handle blank or comment lines in the .src file
  49. X    there can only be *2* un-escaped quotes ["] on a line
  50. X    since the octal conversion is *not* restricted to 3 digits,
  51. X        \0335 [esc-5] will *not* do what you expect - use \033\065
  52. X    the numbers at the top of the file must be integers, not
  53. X    'INCH/4' stuff.
  54. X
  55. Xon the other hand, the numbers at the top of the .src file can be
  56. Xoctal [0], hex [0x], or decimal notation.
  57. X
  58. Xi don't know why i put INCH in -- i don't use it.
  59. X
  60. X******************************************************************************
  61. X> > > > > > > > > > > original comments for printertab.c < < < < < < < < < < <
  62. X******************************************************************************
  63. X
  64. Xhere's printertab.
  65. X
  66. Xthis has one limitation -- you can't feed its output directly to
  67. Xmaketab; it must be massaged first.
  68. X
  69. Xby design, it doesn't name the codetab strings individually; that was
  70. Xtoo complicated.  keep a copy of term(5) handy.
  71. X
  72. Xprintertab takes one argument, the tabXX file you want to read.
  73. X
  74. X*****************************************************************************
  75. X> > > > > > > > > > > original comments for tab850p.src < < < < < < < < < < <
  76. X*****************************************************************************
  77. X
  78. Xthis should be valid for all printers that have an epson lq850
  79. Xemulation mode.
  80. X
  81. Xsave this as tab850p.src, run maketab on it, move the resulting
  82. Xtab850p to /usr/lib/term, and you should be able to nroff -T850p <doc>
  83. Xand have it come out proportionally spaced!
  84. Xthis presumes that you have the old nroff that uses
  85. X/usr/lib/term/tabXX files.
  86. X
  87. Xn.b.  i haven't tried this yet.  i suspect strings with embedded nulls
  88. Xwon't work, and the carriage-left motion also.
  89. X
  90. Xi'm not sure if 'Em' is the width of an 'm' or a space.
  91. X--
  92. X        although you should be doing something productive
  93. X        with your life, you are instead wasting your time
  94. X        reading this inane mindless rambling drivel from
  95. X        the keyboard of:    Andrew Hay, adh@turbo.east.sun.com
  96. X
  97. END_OF_FILE
  98. if test 2577 -ne `wc -c <'README'`; then
  99.     echo shar: \"'README'\" unpacked with wrong size!
  100. fi
  101. # end of 'README'
  102. fi
  103. if test -f 'maketab.c' -a "${1}" != "-c" ; then 
  104.   echo shar: Will not clobber existing file \"'maketab.c'\"
  105. else
  106. echo shar: Extracting \"'maketab.c'\" \(2562 characters\)
  107. sed "s/^X//" >'maketab.c' <<'END_OF_FILE'
  108. X/* maketab.c - create /usr/lib/term/tabXX files */
  109. X/* ver 1.0 11/10/93 adh */
  110. X
  111. X#include <stdio.h>
  112. X#include <string.h>
  113. X
  114. X#define    INCH    240    /* calculates in 240ths,
  115. X                    therefore 1 in. = 240 thingies */
  116. X
  117. Xmain(argc, argv)
  118. Xint argc;
  119. Xchar **argv;
  120. X{
  121. X    struct {
  122. X        int    bset;
  123. X        int    breset;
  124. X        int    Hor;
  125. X        int    Vert;
  126. X        int    Newline;
  127. X        int    Char;
  128. X        int    Em;
  129. X        int    Halfline;
  130. X        int    Adj;
  131. X        char    *twinit;
  132. X        char    *twrest;
  133. X        char    *twnl;
  134. X        char    *hlr;
  135. X        char    *hlf;
  136. X        char    *flr;
  137. X        char    *bdon;
  138. X        char    *bdoff;
  139. X        char    *iton;
  140. X        char    *itoff;
  141. X        char    *ploton;
  142. X        char    *plotoff;
  143. X        char    *up;
  144. X        char    *down;
  145. X        char    *right;
  146. X        char    *left;
  147. X        char    *codetab[211];
  148. X        char    *zzz;
  149. X    } printer;
  150. X
  151. X    int *int_ptr, in_quote, string_space;
  152. X
  153. X    char strings[2048], *string_pointer, **tab_ptr, tab_buf[256], *p;
  154. X
  155. X    FILE *roffsrc, *rofftab;
  156. X^L
  157. X    sprintf(tab_buf, "%s.src", argv[1]);
  158. X    roffsrc = fopen(tab_buf, "r");
  159. X
  160. X    /* all the ints */
  161. X    for(int_ptr = &printer.bset; int_ptr <= &printer.Adj; int_ptr++)
  162. X    {
  163. X        fgets(tab_buf, sizeof(tab_buf), roffsrc);
  164. X        for(p = tab_buf; !isdigit(*p) && p < tab_buf + strlen(tab_buf); p++);
  165. X        *int_ptr = strtol(p, (char *)NULL, 0);
  166. X    }
  167. X
  168. X    string_pointer = strings;
  169. X
  170. X    /* all the char*s */
  171. X    for(tab_ptr = &printer.twinit; tab_ptr < &printer.zzz; tab_ptr++)
  172. X    {
  173. X        *tab_ptr = (char*)(string_pointer - strings);
  174. X        fgets(tab_buf, sizeof(tab_buf), roffsrc);
  175. X        in_quote = 0;
  176. X        for(p = tab_buf + strlen(tab_buf); p >= tab_buf; p--)
  177. X        {
  178. X            if (*p == '"' && *(p-1) != '\\')
  179. X                if ( in_quote )
  180. X                    break;
  181. X                else
  182. X                {
  183. X                    in_quote = 1;
  184. X                    *p = '\0';
  185. X                }
  186. X        }
  187. X        p++;
  188. X        while(*p != '\0')
  189. X        {
  190. X            if(*p == '\\')
  191. X                switch(*(++p))
  192. X                {
  193. X                case '"': *string_pointer++ = '"';    p++; break;
  194. X                case '\\': *string_pointer++ = '\\';    p++; break;
  195. X                case 'a': *string_pointer++ = '\007';    p++; break;
  196. X                case 'b': *string_pointer++ = '\b';    p++; break;
  197. X                case 'e': *string_pointer++ = '\033';    p++; break;
  198. X                case 'f': *string_pointer++ = '\f';    p++; break;
  199. X                case 'n': *string_pointer++ = '\n';    p++; break;
  200. X                case 'r': *string_pointer++ = '\r';    p++; break;
  201. X                case 't': *string_pointer++ = '\t';    p++; break;
  202. X                default:
  203. X                    if(isdigit(*p))
  204. X                        *string_pointer++ = (char)strtol(p, &p, 8);
  205. X                    else
  206. X                        *string_pointer++ = *p++;
  207. X                }
  208. X            else
  209. X                *string_pointer++ = *p++;
  210. X        }
  211. X        *string_pointer++ = '\0';
  212. X    }
  213. X
  214. X    fclose(roffsrc);
  215. X
  216. X    string_space = string_pointer - strings;
  217. X
  218. X    rofftab = fopen(argv[1], "w");
  219. X
  220. X    fwrite((char*)&string_space, sizeof(string_space), 1, rofftab);
  221. X    fwrite((char*)&printer, sizeof(printer), 1, rofftab);
  222. X    fwrite(strings, string_space, 1, rofftab);
  223. X
  224. X    fclose(rofftab);
  225. X
  226. X    exit(0);
  227. X}
  228. END_OF_FILE
  229. if test 2562 -ne `wc -c <'maketab.c'`; then
  230.     echo shar: \"'maketab.c'\" unpacked with wrong size!
  231. fi
  232. # end of 'maketab.c'
  233. fi
  234. if test -f 'printertab.c' -a "${1}" != "-c" ; then 
  235.   echo shar: Will not clobber existing file \"'printertab.c'\"
  236. else
  237. echo shar: Extracting \"'printertab.c'\" \(2649 characters\)
  238. sed "s/^X//" >'printertab.c' <<'END_OF_FILE'
  239. X/* printertab.c - read /usr/lib/term/tabXX files */
  240. X/* ver 1.0 11/4/93 adh */
  241. X
  242. X#include <stdio.h>
  243. X#include <string.h>
  244. X
  245. X#define    INCH    240    /* calculates in 240ths,
  246. X                    therefore 1 in. = 240 thingies */
  247. X
  248. Xmain(argc, argv)
  249. Xint argc;
  250. Xchar **argv;
  251. X{
  252. X    struct {
  253. X        int    bset;
  254. X        int    breset;
  255. X        int    Hor;
  256. X        int    Vert;
  257. X        int    Newline;
  258. X        int    Char;
  259. X        int    Em;
  260. X        int    Halfline;
  261. X        int    Adj;
  262. X        char    *twinit;
  263. X        char    *twrest;
  264. X        char    *twnl;
  265. X        char    *hlr;
  266. X        char    *hlf;
  267. X        char    *flr;
  268. X        char    *bdon;
  269. X        char    *bdoff;
  270. X        char    *iton;
  271. X        char    *itoff;
  272. X        char    *ploton;
  273. X        char    *plotoff;
  274. X        char    *up;
  275. X        char    *down;
  276. X        char    *right;
  277. X        char    *left;
  278. X        char    *codetab[211];
  279. X        char    *zzz;
  280. X    } printer, print_out;
  281. X
  282. X    int fd, string_space;
  283. X
  284. X    char *strings, *string_pointer, **tab_ptr, **tout_ptr, tab_buf[256], c_o[5];
  285. X
  286. X    FILE *rofftab;
  287. X^L
  288. X    rofftab = fopen(argv[1], "r");
  289. X
  290. X    fread((char*)&string_space, sizeof(string_space), 1, rofftab);
  291. X    fread((char*)&printer, sizeof(printer), 1, rofftab);
  292. X
  293. X    strings = (char*)malloc(string_space);
  294. X
  295. X    fread(strings, string_space, 1, rofftab);
  296. X
  297. X    fclose(rofftab);
  298. X
  299. X    for( tab_ptr = &printer.twinit, tout_ptr = &print_out.twinit; tab_ptr < &printer.zzz; tab_ptr++, tout_ptr++)
  300. X    {
  301. X        *tab_ptr = strings + ((int) *tab_ptr);
  302. X        strcpy(tab_buf, "\0");
  303. X        for( string_pointer = *tab_ptr; *string_pointer != '\0'; string_pointer++)
  304. X        {
  305. X            if (isprint((int)*string_pointer&0377))
  306. X                strncat(tab_buf, string_pointer, 1);
  307. X            else
  308. X            {
  309. X                sprintf(c_o, "\\%03o", ((int)*string_pointer)&0377);
  310. X                strcat(tab_buf, c_o);
  311. X            }
  312. X        }
  313. X        *tout_ptr = strcpy((char*)malloc(strlen(tab_buf)+1), tab_buf);
  314. X    }
  315. X    
  316. X    /* all the ints */
  317. X    fprintf(stdout, "bset\t= %o\nbreset\t= %o\nhor\t= %d\nvert\t= %d\nnewline\t= %d\nchar\t= %d\nem\t= %d\nhalfline= %d\nadj\t= %d\n",
  318. X        printer.bset, printer.breset, printer.Hor, printer.Vert,
  319. X        printer.Newline, printer.Char, printer.Em, printer.Halfline, printer.Adj);
  320. X
  321. X    /* all the misc. char*s */
  322. X    fprintf(stdout, "twinit\t= \"%s\"\ntwrest\t= \"%s\"\ntwnl\t= \"%s\"\nhlr\t= \"%s\"\nhlf\t= \"%s\"\nflr\t= \"%s\"\nbdon\t= \"%s\"\nbdoff\t= \"%s\"\niton\t= \"%s\"\nitoff\t= \"%s\"\nploton\t= \"%s\"\nplotoff\t= \"%s\"\nup\t= \"%s\"\ndown\t= \"%s\"\nright\t= \"%s\"\nleft\t= \"%s\"\n",
  323. X        print_out.twinit, print_out.twrest, print_out.twnl,
  324. X        print_out.hlr, print_out.hlf, print_out.flr,
  325. X        print_out.bdon, print_out.bdoff, print_out.iton,
  326. X        print_out.itoff, print_out.ploton, print_out.plotoff,
  327. X        print_out.up, print_out.down, print_out.right, print_out.left);
  328. X
  329. X    /* all the codetab char*s */
  330. X    for ( fd = 0; fd < 211; fd++ )
  331. X        fprintf(stdout, "codetab[%3d] = \"%s\"\n", fd, print_out.codetab[fd]);
  332. X
  333. X    /* the zzz char* */
  334. X    /* printf( "zzz\t= \"%s\"\n", print_out.zzz); */
  335. X
  336. X    exit(0);
  337. X}
  338. END_OF_FILE
  339. if test 2649 -ne `wc -c <'printertab.c'`; then
  340.     echo shar: \"'printertab.c'\" unpacked with wrong size!
  341. fi
  342. # end of 'printertab.c'
  343. fi
  344. if test -f 'tab850p.src' -a "${1}" != "-c" ; then 
  345.   echo shar: Will not clobber existing file \"'tab850p.src'\"
  346. else
  347. echo shar: Extracting \"'tab850p.src'\" \(6883 characters\)
  348. sed "s/^X//" >'tab850p.src' <<'END_OF_FILE'
  349. X/* bset        */    0
  350. X/* breset    */    0
  351. X/* Hor        */    4    /* must be consistent with plot incrmts    */
  352. X/* Vert        */    4    /* likewise    */
  353. X/* Newline    */    40
  354. X/* Char        */    4    /* character unit size for codetab    */
  355. X/* Em        */    28    /* size of a space    */
  356. X/* Halfline    */    20
  357. X/* Adj        */    4    /* whitespace resulting from plot moves    */
  358. X/* twinit    */    "\033@\033CB\033\062\033a\000\033p\001\033P\033x\001\033U\000\033<\033s\000\033#"    /* set printer for proportional mode    */
  359. X/* twrest    */    "\033@\007"    /* reset printer to 'normal'    */
  360. X/* twnl        */    "\n"        /* newline    */
  361. X/* hlr        */    "\033j\015"    /* half lf back    */
  362. X/* hlf        */    "\033J\015"    /* half lf forw    */
  363. X/* flr        */    "\033j\030"    /* lf back    */
  364. X/* bdon        */    "\033E"        /* \fB or .B    */
  365. X/* bdoff    */    "\033F"        /* \fR or .R [pica, actually]*/
  366. X/* iton        */    "\033t\000\033\064", /* \fI or .I    */
  367. X/* itoff    */    "\033\065"    /* \fR or .R [pica, actually]*/
  368. X/* ploton    */    ""        /* start plot mode    */
  369. X/* plotoff    */    ""        /* end plot mode    */
  370. X/* up        */    "\033j\003"    /* move up    */
  371. X/* down        */    "\033J\003"    /* move down    */
  372. X/* right    */    "\033\\\003\000" /* move right    */
  373. X/* left        */    "\033\\\375\377" /* move left    */
  374. X"\005 "        /* space */
  375. X"\003!"        /* !    */
  376. X"\005\""    /* quote */
  377. X"\005#"        /* #    */
  378. X"\005$"        /* $    */
  379. X"\006%"        /* %    */
  380. X"\006&"        /* &    */
  381. X"\003'"        /* '    */
  382. X"\004("        /* (    */
  383. X"\004)"        /* )    */
  384. X"\005*"        /* *    */
  385. X"\005+"        /* +    */
  386. X"\003,"        /* ,    */
  387. X"\005-"        /* -    */
  388. X"\003."        /* .    */
  389. X"\005/"        /* /    */
  390. X"\205\060"        /* 0    */
  391. X"\205\061"        /* 1    */
  392. X"\205\062"        /* 2    */
  393. X"\205\063"        /* 3    */
  394. X"\205\064"        /* 4    */
  395. X"\205\065"        /* 5    */
  396. X"\205\066"        /* 6    */
  397. X"\205\067"        /* 7    */
  398. X"\205\070"        /* 8    */
  399. X"\205\071"        /* 9    */
  400. X"\003:"        /* :    */
  401. X"\003;"        /* ;    */
  402. X"\005<"        /* <    */
  403. X"\005="        /* =    */
  404. X"\005>"        /* >    */
  405. X"\005?"        /* ?    */
  406. X"\006@"        /* @    */
  407. X"\206A"        /* A    */
  408. X"\206B"        /* B    */
  409. X"\206C"        /* C    */
  410. X"\206D"        /* D    */
  411. X"\206E"        /* E    */
  412. X"\206F"        /* F    */
  413. X"\206G"        /* G    */
  414. X"\206H"        /* H    */
  415. X"\204I"        /* I    */
  416. X"\205J"        /* J    */
  417. X"\206K"        /* K    */
  418. X"\206L"        /* L    */
  419. X"\207M"        /* M    */
  420. X"\206N"        /* N    */
  421. X"\206O"        /* O    */
  422. X"\206P"        /* P    */
  423. X"\206Q"        /* Q    */
  424. X"\206R"        /* R    */
  425. X"\206S"        /* S    */
  426. X"\206T"        /* T    */
  427. X"\207U"        /* U    */
  428. X"\206V"        /* V    */
  429. X"\207W"        /* W    */
  430. X"\206X"        /* X    */
  431. X"\206Y"        /* Y    */
  432. X"\205Z"        /* Z    */
  433. X"\004["        /* [    */
  434. X"\005\\"    /* \    */
  435. X"\004]"        /* ]    */
  436. X"\005^"        /* ^    */
  437. X"\005_"        /* _    */
  438. X"\003`"        /* `    */
  439. X"\205a"        /* a    */
  440. X"\206b"        /* b    */
  441. X"\205c"        /* c    */
  442. X"\206d"        /* d    */
  443. X"\205e"        /* e    */
  444. X"\204f"        /* f    */
  445. X"\206g"        /* g    */
  446. X"\206h"        /* h    */
  447. X"\203i"        /* i    */
  448. X"\204j"        /* j    */
  449. X"\206k"        /* k    */
  450. X"\203l"        /* l    */
  451. X"\207m"        /* m    */
  452. X"\206n"        /* n    */
  453. X"\205o"        /* o    */
  454. X"\206p"        /* p    */
  455. X"\206q"        /* q    */
  456. X"\205r"        /* r    */
  457. X"\205s"        /* s    */
  458. X"\204t"        /* t    */
  459. X"\206u"        /* u    */
  460. X"\206v"        /* v    */
  461. X"\207w"        /* w    */
  462. X"\205x"        /* x    */
  463. X"\206y"        /* y    */
  464. X"\205z"        /* z    */
  465. X"\004{"        /* {    */
  466. X"\003|"        /* |    */
  467. X"\004}"        /* }    */
  468. X"\005~"        /* ~    */
  469. X"\002\033\\\006\000"    /* narrow sp    */
  470. X"\003\016-\024"        /* hyphen    */
  471. X"\005\033t\001\033\064\172\033\065"    /* bullet    !!*/
  472. X"\005\033t\001\033\064\176\033\065"    /* square    !!*/
  473. X"\006\016--\024"        /* 3/4 em dash    */
  474. X"\005_"            /* rule    */
  475. X"\005\033t\001\033\064\054\033\065"        /* 1/4    !!*/
  476. X"\005\033t\001\033\064\053\033\065"        /* 1/2    !!*/
  477. X"\007\033S\000\063\033T\242/\242\033S\001\064\033T"    /* 3/4    */
  478. X"\005-"            /* minus    */
  479. X"\206f\241i"        /* fi    */
  480. X"\206f\241l"        /* fl    */
  481. X"\207f\241f"        /* ff    */
  482. X"\211f\241f\241i"    /* ffi    */
  483. X"\211f\241f\241l"    /* ffl    */
  484. X"\004\033R\100[\033R\000"    /* degree    */
  485. X"\004\033R\100}\033R\000"    /* dagger    */
  486. X"\005\021"        /* section    */
  487. X"\003'"        /* foot mark    */
  488. X"\003'"        /* acute accent    */
  489. X"\003`"        /* grave accent    */
  490. X"\005_"        /* underrule    */
  491. X"\005/"        /* long slash    */
  492. X"\001\033\\\003\000"        /* half narrow space    */
  493. X"\005 "        /* unpaddable space    */
  494. X"\005\033t\001\033\064\140\033\065"    /* alpha    */
  495. X"\005\033t\001\033\064\141\033\065"    /* beta    */
  496. X"\000\0"    /* gamma    */
  497. X"\000\0"    /* delta    */
  498. X"\000\0"    /* epsilon    */
  499. X"\000\0"    /* zeta    */
  500. X"\000\0"    /* eta    */
  501. X"\000\0"    /* theta    */
  502. X"\000\0"    /* iota    */
  503. X"\000\0"    /* kappa    */
  504. X"\000\0"    /* lambda    */
  505. X"\005\033t\001\033\064\146\033\065"    /* mu    */
  506. X"\000\0"    /* nu    */
  507. X"\000\0"    /* xi    */
  508. X"\005o"        /* omicron    */
  509. X"\005\033t\001\033\064\143\033\065"    /* pi    */
  510. X"\000\0"    /* rho    */
  511. X"\005\033t\001\033\064\145\033\065"    /* sigma    */
  512. X"\005\033t\001\033\064\147\033\065"    /* tau    */
  513. X"\000\0"    /* upsilon    */
  514. X"\005o\243|\203"        /* phi    */
  515. X"\000\0"    /* chi    */
  516. X"\000\0"    /* psi    */
  517. X"\000\0"    /* omega    */
  518. X"\005\033t\001\033\064\142\033\065"    /* Gamma    */
  519. X"\000\0"    /* Delta    */
  520. X"\005\033t\001\033\064\151\033\065"    /* Theta    */
  521. X"\000\0"    /* Lambda    */
  522. X"\000\0"    /* Xi    */
  523. X"\000\0"    /* Pi    */
  524. X"\005\033t\001\033\064\144\033\065"    /* Sigma    */
  525. X"\006T"        /* Tau? [adh]    */
  526. X"\000\0"    /* Upsilon    */
  527. X"\005\033t\001\033\064\150\033\065"    /* Phi    */
  528. X"\000\0"    /* Psi    */
  529. X"\005\033t\001\033\064\155\033\065"    /* Omega    */
  530. X"\005\033t\001\033\064\173\033\065"    /* square root    */
  531. X"\006\016Y\017"        /* terminal sigma - \(ts yields script-l    */
  532. X"\005\033(-\003\000\001\003\001 \033(-\003\000\001\003\000"    /* root en    */
  533. X"\005\033t\001\033\064\162\033\065"    /* >=    */
  534. X"\005\033t\001\033\064\163\033\065"    /* <=    */
  535. X"\005\033t\001\033\064\157\033\065"    /* identically equal    */
  536. X"\005-"            /* equation minus    */
  537. X"\005\033t\001\033\064\167\033\065"    /* approx =    */
  538. X"\005~"            /* approximates    */
  539. X"\005=\243/\203"    /* not equal    */
  540. X"\000\0"        /* right arrow    */
  541. X"\000\0"        /* left arrow    */
  542. X"\000\0"        /* up arrow    */
  543. X"\000\0"        /* down arrow    */
  544. X"\005="            /* equation equal    */
  545. X"\000\0"        /* multiply    */
  546. X"\005\033t\001\033\064\166\033\065"    /* divide    */
  547. X"\005\033t\001\033\064\161\033\065"    /* plus-minus    */
  548. X"\000\0"        /* cup (union)    */
  549. X"\005\033t\001\033\064\156\033\065"    /* cap (intersection)    */
  550. X"\000\0"        /* subset of    */
  551. X"\000\0"        /* superset of    */
  552. X"\000\0"        /* improper subset    */
  553. X"\000\0"        /* improper superset    */
  554. X"\005\033t\001\033\064\154\033\065"    /* infinity    */
  555. X"\000\0"        /* partial derivative    */
  556. X"\000\0"        /* gradient    */
  557. X"\005\033t\001\033\064\052\033\065"    /* not    */
  558. X"\000\0"        /* integral sign    */
  559. X"\000\0"        /* proportional to    */
  560. X"\005\033t\001\033\064\155\033\065"    /* empty set    */
  561. X"\005\033t\001\033\064\160\033\065"    /* member of    */
  562. X"\005+"            /* equation plus    */
  563. X"\004\033R\100|\033R\000"    /* registered    */
  564. X"\004\033R\100{\033R\000"    /* copyright    */
  565. X"\003|"            /* box rule    */
  566. X"\005\033t\001\033\064\033\033\065"    /* cent sign    */
  567. X"\000\0"        /* double dagger    */
  568. X"\012=>"        /* right hand    */
  569. X"\012<="        /* left hand    */
  570. X"\005*"            /* math *    */
  571. X"\000\0"        /* \(bs yields small sigma    */
  572. X"\003|"            /* or (was star)    */
  573. X"\006O"            /* circle    */
  574. X"\000\0"        /* left top of big brace    */
  575. X"\000\0"        /* left bot of big brace    */
  576. X"\000\0"        /* right top of big brace    */
  577. X"\000\0"        /* right bot of big brace    */
  578. X"\000\0"        /* left center of big brace    */
  579. X"\000\0"        /* right center of big brace    */
  580. X"\006\033t\001\033\064\063\033\065"    /* bold vertical    */
  581. X"\006\033t\001\033\064\100\033\065"    /* left floor (lb of big bracket)    */
  582. X"\006\033t\001\033\064\131\033\065"    /* right floor (rb of big bracket)    */
  583. X"\006\033t\001\033\064\132\033\065"    /* left ceiling (lt of big bracket)    */
  584. X"\006\033t\001\033\064\077\033\065"    /* right ceiling (rt of big bracket)    */
  585. X"EOF"
  586. END_OF_FILE
  587. if test 6883 -ne `wc -c <'tab850p.src'`; then
  588.     echo shar: \"'tab850p.src'\" unpacked with wrong size!
  589. fi
  590. # end of 'tab850p.src'
  591. fi
  592. echo shar: End of shell archive.
  593. exit 0
  594. -- 
  595. David H. Brierley                            Work: dhb@ssd.ray.com
  596. 3B1 Hacker Extraordinaire                    Home: dave@galaxia.network23.com
  597.