home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume24 / psroff3.0 / patch2 < prev    next >
Text File  |  1991-10-09  |  16KB  |  611 lines

  1. Subject:  v24i116:  psroff, Troff to PostScript filter, Patch2
  2. Newsgroups: comp.sources.unix
  3. Approved: rsalz@uunet.UU.NET
  4.  
  5. Submitted-by: Chris Lewis <clewis@ferret.ocunix.on.ca>
  6. Posting-number: Volume 24, Issue 116
  7. Archive-name: psroff3.0/patch2
  8.  
  9.     This is official patch 02 for Psroff 3.0.
  10.     Please apply it by:
  11.     cd <psroff source directory>
  12.     patch -N -p < <this file>
  13.  
  14. Fixes this patch:
  15.     1) if you undefined DIT in defs.h, compilation failed in
  16.        two places.  Fixed.
  17.     2) Made asc2ps possible to distribute without anything else.
  18.        (not applicable in psroff release)
  19.     3) some things should have been unsigned char.
  20.     4) catconv supports \!, fixed up a passthru repositioning
  21.        botch (sR "P...").  Necessitated for supporting pspic
  22.        (a postscript includer mechanism that passes thru the
  23.        entire postscript file as \!! rather than relying on an
  24.        include mechanism in the back end.)
  25.     5) -N coredump
  26.  
  27.  
  28. ./utils/catconv.S    Supports \!
  29. ./utils/dumpft.c    unsigned char
  30. ./utils/asc2ps.c    STANDALONE
  31. ./dit.c            unsigned char
  32. ./troff2.c        #undef DIT fix/passthru botch
  33. ./defs.h        Patch level
  34. ./utils.c        #undef DIT fix
  35. ./dt.c            passthru of \! & \X fix
  36. ./cattab.c        unsigned char.
  37. Index: ./utils/catconv.S
  38. *** /tmp/PATCHold/./utils/catconv.S    Mon Jun  3 12:57:18 1991
  39. --- ./utils/catconv.S    Mon Jun  3 12:57:19 1991
  40. ***************
  41. *** 13,19 ****
  42.   #
  43.   #    This does a very simpleminded conversion of ditroff-only-isms
  44.   #    (such as graphics) into something handleable by CAT troff.
  45. ! #    1.6 91/03/25
  46.   $cc{'em'}=1; $cc{'ru'}=1; $cc{'14'}=1; $cc{'12'}=1; $cc{'hy'}=1;
  47.   $cc{'34'}=1; $cc{'fi'}=1; $cc{'fl'}=1; $cc{'ff'}=1; $cc{'ct'}=1;
  48.   $cc{'Fl'}=1; $cc{'Fi'}=1; $cc{'de'}=1; $cc{'dg'}=1; $cc{'rg'}=1;
  49. --- 13,19 ----
  50.   #
  51.   #    This does a very simpleminded conversion of ditroff-only-isms
  52.   #    (such as graphics) into something handleable by CAT troff.
  53. ! #    1.7 91/05/30
  54.   $cc{'em'}=1; $cc{'ru'}=1; $cc{'14'}=1; $cc{'12'}=1; $cc{'hy'}=1;
  55.   $cc{'34'}=1; $cc{'fi'}=1; $cc{'fl'}=1; $cc{'ff'}=1; $cc{'ct'}=1;
  56.   $cc{'Fl'}=1; $cc{'Fi'}=1; $cc{'de'}=1; $cc{'dg'}=1; $cc{'rg'}=1;
  57. ***************
  58. *** 70,75 ****
  59. --- 70,78 ----
  60.       $line = do Xprocess($line);
  61.       }
  62.       $line = do findspecials($line);
  63. +     if ($line =~ /^\\!(.*)/) {
  64. +     $line = ".sR \"$1\"";
  65. +     }
  66.       print "$line\n";
  67.       while($index) {
  68.       print ".rr" . $regpref . $regnames[--$index] . "\n";
  69. ***************
  70. *** 94,99 ****
  71. --- 97,103 ----
  72.       return("$predefs$newline");
  73.   }
  74.   
  75. + #    Convert drawing commands
  76.   sub process {
  77.       local($line, $newline, $pre, $opcode, $arglist) = ($_[0]);
  78.   #    printf("in process: $line\n");
  79. ***************
  80. *** 147,152 ****
  81. --- 151,157 ----
  82.       return("$predefs$newline");
  83.   }
  84.   
  85. + #    Convert \X directives
  86.   sub Xprocess {
  87.       local($line, $newline, $pre, $opcode, $arglist) = ($_[0]);
  88.   #    printf("in process: $line\n");
  89. Index: ./utils/dumpft.c
  90. *** /tmp/PATCHold/./utils/dumpft.c    Mon Jun  3 12:57:28 1991
  91. --- ./utils/dumpft.c    Mon Jun  3 12:57:29 1991
  92. ***************
  93. *** 10,16 ****
  94.   
  95.   #ifndef    lint
  96.   static char SCCSID[] =
  97. !     "@(#)dumpft.c 2.7 Copyright 91/02/20 09:11:14 Chris Lewis";
  98.   #endif
  99.   
  100.   #include "../defs.h"
  101. --- 10,16 ----
  102.   
  103.   #ifndef    lint
  104.   static char SCCSID[] =
  105. !     "@(#)dumpft.c 2.8 Copyright 91/05/28 12:07:47 Chris Lewis";
  106.   #endif
  107.   
  108.   #include "../defs.h"
  109. ***************
  110. *** 282,288 ****
  111.       for(g = 0; g <= filesize - 224; g++) {
  112.       errcnt = 0;
  113.       for (i = 0; tabN[i].ch_name; i++) {
  114. !         if (tabN[i].ch_wididx == -1)
  115.           continue;
  116.           if (tabN[i].ch_name[0] && !buffer[g+tabN[i].ch_wididx]) {
  117.           if (verbose) {
  118. --- 282,288 ----
  119.       for(g = 0; g <= filesize - 224; g++) {
  120.       errcnt = 0;
  121.       for (i = 0; tabN[i].ch_name; i++) {
  122. !         if (tabN[i].ch_wididx == N)
  123.           continue;
  124.           if (tabN[i].ch_name[0] && !buffer[g+tabN[i].ch_wididx]) {
  125.           if (verbose) {
  126. Index: ./utils/asc2ps.c
  127. *** /tmp/PATCHold/./utils/asc2ps.c    Mon Jun  3 12:57:38 1991
  128. --- ./utils/asc2ps.c    Mon Jun  3 12:57:39 1991
  129. ***************
  130. *** 14,23 ****
  131.   
  132.   #ifndef    lint
  133.   static char SCCSid[] =
  134. !     "@(#)asc2ps.c: 2.4 Copyright 91/04/10 19:48:00 Chris Lewis";
  135.   #endif
  136.   
  137.   #include "defs.h"
  138.   
  139.   double height = 11.0;
  140.   double width = 8.5;
  141. --- 14,45 ----
  142.   
  143.   #ifndef    lint
  144.   static char SCCSid[] =
  145. !     "@(#)asc2ps.c: 2.5 Copyright 91/05/25 21:27:18 Chris Lewis";
  146.   #endif
  147.   
  148. + #ifndef    STANDALONE
  149.   #include "defs.h"
  150. + #else
  151. + /*    Configuration section for STANDALONE version of asc2ps (when compiled
  152. +     without the rest of psroff 3.0).
  153. +  */
  154. + #define    NODECMD    "uuname -l"    /* returns your uucp node name, use
  155. +                    "echo your-machine-name" if you don't
  156. +                    have uuname */
  157. +                     
  158. + #undef    strchr    index        /* define if you don't have strchr() */
  159. + #include <stdio.h>
  160. + #include <ctype.h>
  161. + #include <string.h>        /* change to strings.h if necessary */
  162. + /*    Dinna touch from here on */
  163. + #define    ALONE
  164. + #define    max(a,b)    ((a) > (b) ? (a) : (b))
  165. + #endif
  166.   
  167.   double height = 11.0;
  168.   double width = 8.5;
  169. Index: ./dit.c
  170. *** /tmp/PATCHold/./dit.c    Mon Jun  3 12:57:47 1991
  171. --- ./dit.c    Mon Jun  3 12:57:49 1991
  172. ***************
  173. *** 12,18 ****
  174.   
  175.   #ifndef    lint
  176.   static char SCCSid[] =
  177. !     "@(#)dit.c: 91/04/24 Copyright 91/04/24 21:48:46 Chris Lewis";
  178.   #endif
  179.   
  180.   extern struct cattab tabN[], tabS[], *extidx;
  181. --- 12,18 ----
  182.   
  183.   #ifndef    lint
  184.   static char SCCSid[] =
  185. !     "@(#)dit.c: 91/05/30 Copyright 91/05/30 01:45:57 Chris Lewis";
  186.   #endif
  187.   
  188.   extern struct cattab tabN[], tabS[], *extidx;
  189. ***************
  190. *** 134,140 ****
  191.   #ifdef    DIT
  192.   
  193.   int sizescale = 1;
  194. ! int indtres;
  195.   
  196.   int points, font, ch, i;
  197.   int xpos, ypos;
  198. --- 134,140 ----
  199.   #ifdef    DIT
  200.   
  201.   int sizescale = 1;
  202. ! int indtres = 300;
  203.   
  204.   int points, font, ch, i;
  205.   int xpos, ypos;
  206. ***************
  207. *** 415,422 ****
  208.   #endif
  209.           i = 1;
  210.           special[0] = cmd;
  211. -         while((ch = getchar()) != EOF && isspace(ch));
  212. -         special[i++] = ch;
  213.           while((ch = getchar()) != EOF && ch != '\n')
  214.               special[i++] = ch;
  215.           special[i] = '\0';
  216. --- 415,420 ----
  217. ***************
  218. *** 427,434 ****
  219.               break;
  220.               case '!':
  221.               special[0] = 'P';
  222. !             dospecial(xpos * TROFFRESOLUTION / indtres,
  223. !                      ypos * TROFFRESOLUTION / indtres,
  224.                        special);
  225.               break;
  226.               case 'D': {
  227. --- 425,432 ----
  228.               break;
  229.               case '!':
  230.               special[0] = 'P';
  231. !             dospecial(/*xpos * TROFFRESOLUTION / indtres,
  232. !                      ypos * TROFFRESOLUTION / indtres,*/
  233.                        special);
  234.               break;
  235.               case 'D': {
  236. Index: ./troff2.c
  237. *** /tmp/PATCHold/./troff2.c    Mon Jun  3 12:58:00 1991
  238. --- ./troff2.c    Mon Jun  3 12:58:02 1991
  239. ***************
  240. *** 12,18 ****
  241.   
  242.   #ifndef    lint
  243.   static char SCCSid[] =
  244. !     "@(#)troff2.c: 2.17 Copyright 91/05/03 10:41:03 Chris Lewis";
  245.   #endif
  246.   
  247.   #define    ESC    0x80
  248. --- 12,18 ----
  249.   
  250.   #ifndef    lint
  251.   static char SCCSid[] =
  252. !     "@(#)troff2.c: 2.18 Copyright 91/05/30 01:46:09 Chris Lewis";
  253.   #endif
  254.   
  255.   #define    ESC    0x80
  256. ***************
  257. *** 222,229 ****
  258.               sizescale = atoi(optarg);
  259.               break;
  260.   #else
  261. !         case 'S':
  262. !             fprintf(stderr, "%s: ditroff frontend not configured\n");
  263.               exit(1);
  264.   #endif
  265.           case 'M':
  266. --- 222,230 ----
  267.               sizescale = atoi(optarg);
  268.               break;
  269.   #else
  270. !         case 'G':
  271. !             fprintf(stderr, "%s: ditroff frontend not configured\n",
  272. !             progname);
  273.               exit(1);
  274.   #endif
  275.           case 'M':
  276. ***************
  277. *** 738,747 ****
  278.           *string = '\0';
  279.           return;
  280.   
  281.           case 'p':
  282.           case 'P':
  283. !         if (be->bedraw)
  284. !             (*be->bedraw)(specXPos, specYPos, NULL);
  285.           if (be->bepassthru)
  286.               (*be->bepassthru)(string+1);
  287.           else
  288. --- 739,754 ----
  289.           *string = '\0';
  290.           return;
  291.   
  292. +         case '!':
  293.           case 'p':
  294.           case 'P':
  295. !         {
  296. !             static int lastsX, lastsY;
  297. !             if ((lastsX != specXPos || lastsY != specYPos) && be->bedraw)
  298. !             (*be->bedraw)(specXPos, specYPos, NULL);
  299. !             lastsX = specXPos;
  300. !             lastsY = specYPos;
  301. !         }
  302.           if (be->bepassthru)
  303.               (*be->bepassthru)(string+1);
  304.           else
  305. Index: ./defs.h
  306. *** /tmp/PATCHold/./defs.h    Mon Jun  3 12:58:16 1991
  307. --- ./defs.h    Mon Jun  3 12:58:17 1991
  308. ***************
  309. *** 9,15 ****
  310.    */
  311.   
  312.   /*    Official Release and Patch level:    */
  313. ! #define    T2VERSION    "@(#)PSROFF Copyright 91/04/26 Chris Lewis - R3 PL1"
  314.   
  315.   /*    Configuration parameters:
  316.    */
  317. --- 9,15 ----
  318.    */
  319.   
  320.   /*    Official Release and Patch level:    */
  321. ! #define    T2VERSION    "@(#)PSROFF Copyright 91/05/28 Chris Lewis - R3 PL2"
  322.   
  323.   /*    Configuration parameters:
  324.    */
  325. ***************
  326. *** 259,265 ****
  327.   
  328.   struct cattab {
  329.       char *ch_name;
  330. !     char ch_set;
  331.       unsigned char ch_catidx;
  332.       unsigned char ch_wididx;
  333.       unsigned char ch_info;    /* used by some auxiliary programs */
  334. --- 259,265 ----
  335.   
  336.   struct cattab {
  337.       char *ch_name;
  338. !     unsigned char ch_set;
  339.       unsigned char ch_catidx;
  340.       unsigned char ch_wididx;
  341.       unsigned char ch_info;    /* used by some auxiliary programs */
  342. Index: ./utils.c
  343. *** /tmp/PATCHold/./utils.c    Mon Jun  3 12:58:27 1991
  344. --- ./utils.c    Mon Jun  3 12:58:29 1991
  345. ***************
  346. *** 12,18 ****
  347.   
  348.   #ifndef    lint
  349.   static char SCCSid[] =
  350. !     "@(#)utils.c: 2.14 Copyright 91/04/05 01:21:20 Chris Lewis";
  351.   #endif
  352.   
  353.   #ifndef    HEADERSIZE
  354. --- 12,18 ----
  355.   
  356.   #ifndef    lint
  357.   static char SCCSid[] =
  358. !     "@(#)utils.c: 2.15 Copyright 91/05/30 01:46:27 Chris Lewis";
  359.   #endif
  360.   
  361.   #ifndef    HEADERSIZE
  362. ***************
  363. *** 412,418 ****
  364. --- 412,422 ----
  365.       register struct fonttable *p;
  366.       int intfont;
  367.       DBP((D_SPEC, "FontSel: %c -> %s\n", from, to));
  368. + #ifdef    DIT
  369.       if (from < (ditroff? '0' : '1') || from > '9') {
  370. + #else
  371. +     if (from < '1' || from > '9') {
  372. + #endif
  373.       fprintf(stderr, "Bad arguments to FontSel: %c %s\n", from, to);
  374.       return;
  375.       }
  376. Index: ./dt.c
  377. *** /tmp/PATCHold/./dt.c    Mon Jun  3 12:58:39 1991
  378. --- ./dt.c    Mon Jun  3 12:58:41 1991
  379. ***************
  380. *** 12,18 ****
  381.   
  382.   #ifndef    lint
  383.   static char SCCSid[] =
  384. !     "@(#)dt.c: 2.6 Copyright 91/03/10 03:12:46 Chris Lewis";
  385.   #endif
  386.   
  387.   /*    These two tables are always included so that we have the
  388. --- 12,18 ----
  389.   
  390.   #ifndef    lint
  391.   static char SCCSid[] =
  392. !     "@(#)dt.c: 2.7 Copyright 91/05/30 01:46:37 Chris Lewis";
  393.   #endif
  394.   
  395.   /*    These two tables are always included so that we have the
  396. ***************
  397. *** 459,465 ****
  398.   
  399.   dtPassthru(s)
  400.   register char *s; {
  401. !     printf("x X %s\n", s);
  402.   }
  403.   
  404.   dtEpilog() {
  405. --- 459,465 ----
  406.   
  407.   dtPassthru(s)
  408.   register char *s; {
  409. !     printf("!%s\n", s);
  410.   }
  411.   
  412.   dtEpilog() {
  413. ***************
  414. *** 473,480 ****
  415. --- 473,485 ----
  416.   register char *s; {
  417.       register int temp, t2;
  418.       DBP((D_CAT, "dtDraw: (%d,%d): %s\n", origX, origY, s));
  419.       printf("H%d\n", TROFF2DTX(origX));
  420.       printf("V%d\n", TROFF2DTY(origY));
  421. +     if (!s)
  422. +     return;
  423.       putchar('D');
  424.       putchar(*s);
  425.       s++;
  426. Index: ./cattab.c
  427. *** /tmp/PATCHold/./cattab.c    Mon Jun  3 12:58:51 1991
  428. --- ./cattab.c    Mon Jun  3 12:58:52 1991
  429. ***************
  430. *** 36,42 ****
  431.   
  432.   #ifndef lint
  433.   static char SCCSid[] =
  434. !     "@(#)cattab.c: 2.2 Copyright 91/02/20 09:07:04 Chris Lewis";
  435.   #endif
  436.   
  437.   #include "defs.h"
  438. --- 36,42 ----
  439.   
  440.   #ifndef lint
  441.   static char SCCSid[] =
  442. !     "@(#)cattab.c: 2.3 Copyright 91/05/28 12:06:08 Chris Lewis";
  443.   #endif
  444.   
  445.   #include "defs.h"
  446. ***************
  447. *** 75,85 ****
  448.       {"j",    N,  12,  74, 0, "j"},
  449.       {"u",    N,  13,  85, 0, "u"},
  450.       {"k",    N,  14,  75, 0, "k"},
  451. !     {"",    N,  15,  -1, 0, NOC},
  452.       {"p",    N,  16,  80, 0, "p"},
  453.       {"em",    N,  17,  99, 0, "3/4 em"},
  454.       {";",    N,  18,  27, 0, ";"},
  455. !     {"",    N,  19,  -1, 0, NOC},
  456.       {"a",    N,  20,  65, 0, "a"},
  457.       {"ru",    N,  21, 100, 0, "horizontal rule"},
  458.       {"c",    N,  22,  67, 0, "c"},
  459. --- 75,85 ----
  460.       {"j",    N,  12,  74, 0, "j"},
  461.       {"u",    N,  13,  85, 0, "u"},
  462.       {"k",    N,  14,  75, 0, "k"},
  463. !     {"",    N,  15,   N, 0, NOC},
  464.       {"p",    N,  16,  80, 0, "p"},
  465.       {"em",    N,  17,  99, 0, "3/4 em"},
  466.       {";",    N,  18,  27, 0, ";"},
  467. !     {"",    N,  19,   N, 0, NOC},
  468.       {"a",    N,  20,  65, 0, "a"},
  469.       {"ru",    N,  21, 100, 0, "horizontal rule"},
  470.       {"c",    N,  22,  67, 0, "c"},
  471. ***************
  472. *** 101,109 ****
  473.       {",",    N,  38,  12, 0, ","},
  474.       {"&",    N,  39,   6, 0, "&"},
  475.       {"y",    N,  40,  89, 0, "y"},
  476. !     {"",    N,  41,  -1, 0, NOC},
  477.       {"%",    N,  42,   5, 0, "%"},
  478. !     {"",    N,  43,  -1, 0, NOC},
  479.       {"Q",    N,  44,  49, 0, "Q"},
  480.       {"T",    N,  45,  52, 0, "T"},
  481.       {"O",    N,  46,  47, 0, "O"},
  482. --- 101,109 ----
  483.       {",",    N,  38,  12, 0, ","},
  484.       {"&",    N,  39,   6, 0, "&"},
  485.       {"y",    N,  40,  89, 0, "y"},
  486. !     {"",    N,  41,   N, 0, NOC},
  487.       {"%",    N,  42,   5, 0, "%"},
  488. !     {"",    N,  43,   N, 0, NOC},
  489.       {"Q",    N,  44,  49, 0, "Q"},
  490.       {"T",    N,  45,  52, 0, "T"},
  491.       {"O",    N,  46,  47, 0, "O"},
  492. ***************
  493. *** 158,170 ****
  494.       {"rg",    N,  95, 189, 0, "registered"},
  495.       {":",    N,  96,  26, 0, ":"},
  496.       {"+",    N,  97,  11, 0, "+"},
  497. !     {"",    N,  98,  -1, 0, NOC},
  498.       {"!",    N,  99,   1, 0, "!"},
  499.       {"bu",    N, 100,  97, 0, "bullet"},
  500.       {"?",    N, 101,  31, 0, "?"},
  501.       {"fm",    N, 102, 113, 0, "foot mark (minute)"},
  502.       {"|",    N, 103,  92, 0, "|"},
  503. !     {"",    N, 104,  -1, 0, NOC},
  504.       {"co",    N, 105, 190, 0, "copyright"},
  505.       {"sq",    N, 106,  98, 0, "square"},
  506.       {"$",    N, 107,   4, 0, "$"},
  507. --- 158,170 ----
  508.       {"rg",    N,  95, 189, 0, "registered"},
  509.       {":",    N,  96,  26, 0, ":"},
  510.       {"+",    N,  97,  11, 0, "+"},
  511. !     {"",    N,  98,   N, 0, NOC},
  512.       {"!",    N,  99,   1, 0, "!"},
  513.       {"bu",    N, 100,  97, 0, "bullet"},
  514.       {"?",    N, 101,  31, 0, "?"},
  515.       {"fm",    N, 102, 113, 0, "foot mark (minute)"},
  516.       {"|",    N, 103,  92, 0, "|"},
  517. !     {"",    N, 104,   N, 0, NOC},
  518.       {"co",    N, 105, 190, 0, "copyright"},
  519.       {"sq",    N, 106,  98, 0, "square"},
  520.       {"$",    N, 107,   4, 0, "$"},
  521. ***************
  522. *** 191,201 ****
  523.       {"*f",    S,  12, 140, 0, "phi"},
  524.       {"*u",    S,  13, 139, 0, "upsilon"},
  525.       {"*k",    S,  14, 129, 0, "kappa"},
  526. !     {"",    S,  15,  -1, 0, NOC},
  527.       {"*p",    S,  16, 135, 0, "pi"},
  528.       {"@",    S,  17,  32, 0, "@"},
  529.       {"da",    S,  18, 169, 0, "down arrow"},
  530. !     {"",    S,  19,  -1, 0, NOC},
  531.       {"*a",    S,  20, 120, 0, "alpha"},
  532.       {"or",    S,  21, 198, 0, "or (was star)"},
  533.       {"*x",    S,  22, 141, 0, "chi"},
  534. --- 191,201 ----
  535.       {"*f",    S,  12, 140, 0, "phi"},
  536.       {"*u",    S,  13, 139, 0, "upsilon"},
  537.       {"*k",    S,  14, 129, 0, "kappa"},
  538. !     {"",    S,  15,   N, 0, NOC},
  539.       {"*p",    S,  16, 135, 0, "pi"},
  540.       {"@",    S,  17,  32, 0, "@"},
  541.       {"da",    S,  18, 169, 0, "down arrow"},
  542. !     {"",    S,  19,   N, 0, NOC},
  543.       {"*a",    S,  20, 120, 0, "alpha"},
  544.       {"or",    S,  21, 198, 0, "or (was star)"},
  545.       {"*x",    S,  22, 141, 0, "chi"},
  546. ***************
  547. *** 217,225 ****
  548.       {"pt",    S,  38, 185, 0, "proportional to"},
  549.       {"rh",    S,  39, 194, 0, "right hand"},
  550.       {"*w",    S,  40, 143, 0, "omega"},
  551. !     {"",    S,  41,  -1, 0, NOC},
  552.       {"gr",    S,  42, 182, 0, "gradient"},
  553. !     {"",    S,  43,  -1, 0, NOC},
  554.       {"*F",    S,  44, 153, 0, "Phi"},
  555.       {"*H",    S,  45, 146, 0, "Theta"},
  556.       {"*W",    S,  46, 155, 0, "Omega"},
  557. --- 217,225 ----
  558.       {"pt",    S,  38, 185, 0, "proportional to"},
  559.       {"rh",    S,  39, 194, 0, "right hand"},
  560.       {"*w",    S,  40, 143, 0, "omega"},
  561. !     {"",    S,  41,   N, 0, NOC},
  562.       {"gr",    S,  42, 182, 0, "gradient"},
  563. !     {"",    S,  43,   N, 0, NOC},
  564.       {"*F",    S,  44, 153, 0, "Phi"},
  565.       {"*H",    S,  45, 146, 0, "Theta"},
  566.       {"*W",    S,  46, 155, 0, "Omega"},
  567. ***************
  568. *** 274,286 ****
  569.       {"mo",    S,  95, 187, 0, "member of"},
  570.       {"~",    S,  96,  94, 0, "~"},
  571.       {"es",    S,  97, 186, 0, "empty set"},
  572. !     {"",    S,  98,  -1, 0, NOC},
  573.       {"dd",    S,  99, 193, 0, "dbl dagger"},
  574.       {"br",    S, 100, 191, 0, "box rule (was parallel sign)"},
  575.       {"**",    S, 101, 196, 0, "math *"},
  576.       {"ib",    S, 102, 178, 0, "improper subset"},
  577.       {"ci",    S, 103, 199, 0, "circle"},
  578. !     {"",    S, 104, -1, 0, NOC},
  579.       {"pl",    S, 105, 188, 0, "equation plus"},
  580.       {"->",    S, 106, 166, 0, "right arrow"},
  581.       {"sc",    S, 107, 112, 0, "section"},
  582. --- 274,286 ----
  583.       {"mo",    S,  95, 187, 0, "member of"},
  584.       {"~",    S,  96,  94, 0, "~"},
  585.       {"es",    S,  97, 186, 0, "empty set"},
  586. !     {"",    S,  98,   N, 0, NOC},
  587.       {"dd",    S,  99, 193, 0, "dbl dagger"},
  588.       {"br",    S, 100, 191, 0, "box rule (was parallel sign)"},
  589.       {"**",    S, 101, 196, 0, "math *"},
  590.       {"ib",    S, 102, 178, 0, "improper subset"},
  591.       {"ci",    S, 103, 199, 0, "circle"},
  592. !     {"",    S, 104,   N, 0, NOC},
  593.       {"pl",    S, 105, 188, 0, "equation plus"},
  594.       {"->",    S, 106, 166, 0, "right arrow"},
  595.       {"sc",    S, 107, 112, 0, "section"},
  596.  
  597. -- 
  598. Chris Lewis; clewis@ferret.ocunix.on.ca; Phone: Canada 613 832-0541
  599. Psroff 3.0 is in comp.sources.unix NOW!  YAHOO!!!!!!!
  600. Ferret mailing list: ferret-request@ferret.ocunix.on.ca
  601.  
  602. exit 0 # Just in case...
  603.