home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume24 / chemtab / patch02 < prev    next >
Text File  |  1991-03-31  |  27KB  |  1,034 lines

  1. Subject:  v24i085:  Manipulate data on the chemical elements, Patch2
  2. Newsgroups: comp.sources.unix
  3. Approved: rsalz@uunet.UU.NET
  4. X-Checksum-Snefru: 8391ad29 0564a674 c29a4a25 7931cb96
  5.  
  6. Submitted-by: "J.E. King" <jek5036@ultb.isc.rit.edu>
  7. Posting-number: Volume 24, Issue 85
  8. Archive-name: chemtab/patch2
  9.  
  10.     I recently received a little SYSV help from someone out on the
  11. net.  Unfortunately, I cannot get back to him.  Therefore, going upon
  12. what he says, I am sending you the patches to Chemtab to make it SYSV
  13. compatible.  I do not have a SYSV machine to test these on, so if you
  14. know someone who would do it for me, that would be great.  If you don't,
  15. then I guess you could just release the patch and pray for the best.
  16. >From what this guy said, only minor changes were it order.  So, you can
  17. put this at the top of your release:
  18.  
  19.     This patch will bring Chemtab 2.02 up to version 2.03.  Some
  20. of the things changed in this version are the following:
  21.  
  22.     SYSV compatibility
  23.     #defines can be commented out without errors
  24.     Job stopping now calls for a SIGSTOP, not a system("/bin/sh");
  25.  
  26.     Things you can expect to see later:
  27.  
  28.     Neat little options such as color saving for the ReGIS graphs.
  29.     Compatibility for more printers.
  30.     A better designed program, all around (V3). (#defines, etc)
  31.  
  32.                             - Jim
  33.  
  34. - cut here -- cut here -- cut here -- cut here -- cut here -- cut here --
  35. #!/bin/sh
  36. # to extract, remove the header and type "sh filename"
  37. if `test ! -s ./patch02`
  38. then
  39. echo "writing ./patch02"
  40. cat > ./patch02 << '\End\Of\Shar\'
  41. diff -c Chem202/Makefile Chem203/Makefile
  42. *** Chem202/Makefile    Thu Mar 21 09:07:14 1991
  43. --- Chem203/Makefile    Thu Mar 21 09:08:59 1991
  44. ***************
  45. *** 1,10 ****
  46.   #
  47. ! # Makefile for Chemtab, current version 2.02, Makefile version 1.1
  48.   # Makefile author: Jim King (jek5036@ultb.isc.rit.edu)
  49.   # Makefile additions: Jon Kamens (jik@pit-manager.mit.edu)
  50.   #
  51.   CC            = cc
  52. ! CFLAGS        = -O -DReGIS
  53.   # Define ReGIS if you want to program to prompt the user to answer y/n
  54.   # to the question of if they have a ReGIS compatible terminal
  55.   BINDIR        = .
  56. --- 1,11 ----
  57.   #
  58. ! # Makefile for Chemtab, current version 2.03, Makefile version 1.2
  59.   # Makefile author: Jim King (jek5036@ultb.isc.rit.edu)
  60.   # Makefile additions: Jon Kamens (jik@pit-manager.mit.edu)
  61. + # SYSV port diffs: Ronard Joe Record (rr@sco.com)
  62.   #
  63.   CC            = cc
  64. ! CFLAGS        = -O -DReGIS #-DSYSV
  65.   # Define ReGIS if you want to program to prompt the user to answer y/n
  66.   # to the question of if they have a ReGIS compatible terminal
  67.   BINDIR        = .
  68. diff -c Chem202/README Chem203/README
  69. *** Chem202/README    Thu Mar 21 09:07:15 1991
  70. --- Chem203/README    Thu Mar 21 09:09:00 1991
  71. ***************
  72. *** 31,33 ****
  73. --- 31,34 ----
  74.   Chemtab V2.01; (overlay from V1) written in C (1991) by Jim King
  75.                           (jek5036@ultb.isc.rit.edu)
  76.   Chemtab V2.02; (patch #1) with help from Jon Kamens (jik@pit-manager.mit.edu)
  77. + Chemtab V2.03; (patch #2) with help from Ronald Joe Record (rr@sco.com)
  78. diff -c Chem202/README.FIRST Chem203/README.FIRST
  79. *** Chem202/README.FIRST    Thu Mar 21 09:03:32 1991
  80. --- Chem203/README.FIRST    Thu Mar 21 09:09:01 1991
  81. ***************
  82. *** 12,23 ****
  83.   
  84.   How to setup Chemtab to work at your site..
  85.   
  86. - WARNING: Chemtab has only been tested under Ultrix 3.1 on a VAX 11/780,
  87. -      and a DEC 5810 RISC Ultrix 4.1 machine.  Chemtab, as is, will
  88. -      probably only work for BSD compatible systems.  SYSV compatibility
  89. -          is on it's way!  I promise!  Since chemtab uses curses, it should
  90. -      prove to be portable.
  91.   Any comments, suggestions, bugs can be reported to:
  92.       jek5036@ultb.isc.rit.edu (formerly pulsar@xait.xerox.com!lsrhs)
  93.   
  94. --- 12,17 ----
  95. ***************
  96. *** 39,44 ****
  97. --- 33,39 ----
  98.       element list (faster to read in)).  Please make this so.  I would
  99.       have incorporated it into the Makefile but some people would rather
  100.       make sure it worked for them...
  101. +     (The make install command should put these where they belong.)
  102.   
  103.   That SHOULD be the extent of it.. but don't quote me on that.  I am the
  104.   author, and I am not held responsible for any damage the program might cause,
  105. diff -c Chem202/README.PATCH Chem203/README.PATCH
  106. *** Chem202/README.PATCH    Thu Mar 21 09:04:19 1991
  107. --- Chem203/README.PATCH    Thu Mar 21 09:09:01 1991
  108. ***************
  109. *** 15,17 ****
  110. --- 15,21 ----
  111.   (yes there are probably bound to be more patches.. but this is all I could
  112.    find.  You MAY have to tweak your Makefile to work for your system.)
  113.   
  114. + ------------------------------------------------------------------------------
  115. +     Patch #2 will bring Chemtab 2.02 up to version 2.03.  Included are
  116. + SYSV defines only tested for SCO Unix (SYSV compatible).  If you encounter
  117. + any other problems, please send them to me.
  118. diff -c Chem202/VERSION Chem203/VERSION
  119. *** Chem202/VERSION    Thu Mar 21 09:07:15 1991
  120. --- Chem203/VERSION    Thu Mar 21 09:09:02 1991
  121. ***************
  122. *** 1,4 ****
  123. ! Currently, you have Chemtab Version 2.01, Patchlevel 0.
  124.   
  125.   Version History:
  126.   
  127. --- 1,4 ----
  128. ! Currently, you have Chemtab Version 2.03, Patchlevel 2.
  129.   
  130.   Version History:
  131.   
  132. ***************
  133. *** 32,34 ****
  134. --- 32,40 ----
  135.                           (jik@pit-manager.MIT.EDU)
  136.               Problems when undefining ReGIS and TRANSCRIPT fixed.
  137.               A couple of minor screen display changes.
  138. +     Chemtab V2.03    Patch to V2.02
  139. +             SYSV help from Ronald Joe Record (rr@sco.com)
  140. +             More #define problems fixed.
  141. +             ^Z does not call sh through a system call but
  142. +             rather saves terminal stats and issues a SIGSTOP.
  143. diff -c Chem202/cleanup.c Chem203/cleanup.c
  144. *** Chem202/cleanup.c    Thu Mar 21 09:07:15 1991
  145. --- Chem203/cleanup.c    Thu Mar 21 09:09:03 1991
  146. ***************
  147. *** 22,32 ****
  148.       char    c, str[80];            /* input */
  149.   #ifdef    PRINTQ
  150.       char    que[80];            /* print queue */
  151. ! #endif    PRINTQ
  152.   
  153.   #ifdef    ReGIS
  154.       if (regis) endregis();
  155. ! #endif    ReGIS
  156.       if (trans) {                /* transcript flag */
  157.   l1:        mvwaddstr(btm, 0, 0, "Would you like your transcript printed out? ");
  158.           wrefresh(btm);
  159. --- 22,33 ----
  160.       char    c, str[80];            /* input */
  161.   #ifdef    PRINTQ
  162.       char    que[80];            /* print queue */
  163. ! #endif    /* PRINTQ */
  164.   
  165.   #ifdef    ReGIS
  166.       if (regis) endregis();
  167. ! #endif    /* ReGIS */
  168. ! #ifdef    PRINTER
  169.       if (trans) {                /* transcript flag */
  170.   l1:        mvwaddstr(btm, 0, 0, "Would you like your transcript printed out? ");
  171.           wrefresh(btm);
  172. ***************
  173. *** 52,60 ****
  174.               cur = btm; xp = 21; yp = 0;
  175.               gets(que);
  176.               sprintf(str, "%s%s %d.chemtab", PRINTER, que, getpid());
  177. ! #else    PRINTQ
  178.               sprintf(str, "%s %d.chemtab", PRINTER, getpid());
  179. ! #endif    PRINTQ
  180.               fclose(fp);
  181.               wclear(btm);
  182.               wrefresh(btm);
  183. --- 53,61 ----
  184.               cur = btm; xp = 21; yp = 0;
  185.               gets(que);
  186.               sprintf(str, "%s%s %d.chemtab", PRINTER, que, getpid());
  187. ! #else    /* PRINTQ */
  188.               sprintf(str, "%s %d.chemtab", PRINTER, getpid());
  189. ! #endif    /* PRINTQ */
  190.               fclose(fp);
  191.               wclear(btm);
  192.               wrefresh(btm);
  193. ***************
  194. *** 62,67 ****
  195. --- 63,69 ----
  196.               system(str);
  197.           }
  198.       }
  199. + #endif    /* PRINTER */
  200.       fclose(fp);                /* close things up */
  201.       echo();
  202.       nocrmode();
  203. ***************
  204. *** 78,95 ****
  205.   #ifdef    USERSHELL
  206.   stop()    /* Handle a ^Z */
  207.   {
  208. -     char    sh[80];
  209. -     strcpy(sh, getenv("SHELL"));
  210. -     if (!strlen(sh))
  211. -         strcpy(sh, USERSHELL);
  212. - #ifdef    ReGIS
  213. -     if (regis) endregis();
  214. - #endif  ReGIS
  215.       clear(); refresh();
  216.       signal(SIGTSTP, SIG_DFL);
  217.       printf("Type 'exit' to return to chemtab...\n");
  218. !     system(sh);
  219.       clear(); refresh();
  220.       signal(SIGTSTP, stop);
  221.       if (needsit(stdscr)) { touchwin(stdscr); wrefresh(stdscr); }
  222. --- 80,91 ----
  223.   #ifdef    USERSHELL
  224.   stop()    /* Handle a ^Z */
  225.   {
  226.       clear(); refresh();
  227.       signal(SIGTSTP, SIG_DFL);
  228.       printf("Type 'exit' to return to chemtab...\n");
  229. !     gtty(0, &new);
  230. !     kill(getpid(), SIGSTOP);    /* stop the program */
  231. !     stty(0, &orig);
  232.       clear(); refresh();
  233.       signal(SIGTSTP, stop);
  234.       if (needsit(stdscr)) { touchwin(stdscr); wrefresh(stdscr); }
  235. ***************
  236. *** 102,105 ****
  237.       wrefresh(mn);
  238.       crmode();
  239.   }
  240. ! #endif    USERSHELL
  241. --- 98,101 ----
  242.       wrefresh(mn);
  243.       crmode();
  244.   }
  245. ! #endif    /* USERSHELL */
  246. diff -c Chem202/dogph.c Chem203/dogph.c
  247. *** Chem202/dogph.c    Thu Mar 21 09:07:16 1991
  248. --- Chem203/dogph.c    Thu Mar 21 09:13:34 1991
  249. ***************
  250. *** 128,134 ****
  251. --- 128,138 ----
  252.       wrefresh(mn);
  253.       cur = mn; xp = 24; yp = 13;
  254.       echo(); nocrmode();
  255. + #ifdef    SYSV
  256. +     wgetstr(mn, str);
  257. + #else   /* SYSV */
  258.       gets(str);
  259. + #endif  /* SYSV */
  260.       if (str[0] == '?') { help(4); goto l4; }
  261.       if (!strlen(str)) {
  262.           xmin = -999;
  263. ***************
  264. *** 140,146 ****
  265. --- 144,154 ----
  266.       wrefresh(mn);
  267.       cur = mn; xp = 48; yp = 13;
  268.       echo(); nocrmode();
  269. + #ifdef    SYSV
  270. +     wgetstr(mn, str);
  271. + #else   /* SYSV */
  272.       gets(str);
  273. + #endif  /* SYSV */
  274.       if (strlen(str))
  275.           xmax = atof(str);
  276.       fixup(mn);
  277. diff -c Chem202/doregisgph.c Chem203/doregisgph.c
  278. *** Chem202/doregisgph.c    Thu Mar 21 09:07:16 1991
  279. --- Chem203/doregisgph.c    Thu Mar 21 09:09:06 1991
  280. ***************
  281. *** 68,74 ****
  282.       
  283.   #ifdef    USERSHELL
  284.       signal(SIGTSTP, SIG_IGN);
  285. ! #endif    USERSHELL
  286.   
  287.       for (i = 0; i < XAXISDEF; i++)
  288.           xaxis[i] = 0;
  289. --- 68,74 ----
  290.       
  291.   #ifdef    USERSHELL
  292.       signal(SIGTSTP, SIG_IGN);
  293. ! #endif    /* USERSHELL */
  294.   
  295.       for (i = 0; i < XAXISDEF; i++)
  296.           xaxis[i] = 0;
  297. ***************
  298. *** 102,108 ****
  299.       if (c1 == '\n') {
  300.   #ifdef    USERSHELL
  301.           signal(SIGTSTP, stop);
  302. ! #endif    USERSHELL
  303.           wclear(mn);
  304.           return;
  305.       }
  306. --- 102,108 ----
  307.       if (c1 == '\n') {
  308.   #ifdef    USERSHELL
  309.           signal(SIGTSTP, stop);
  310. ! #endif    /* USERSHELL */
  311.           wclear(mn);
  312.           return;
  313.       }
  314. ***************
  315. *** 141,147 ****
  316. --- 141,151 ----
  317.       wrefresh(mn);
  318.       cur = mn; xp = 23; yp = 13;
  319.       echo(); nocrmode();
  320. + #ifdef    SYSV
  321. +     wgetstr(mn, str);
  322. + #else    /* SYSV */
  323.       gets(str);
  324. + #endif    /* SYSV */
  325.       if (str[0] == '?') { help(4); goto rl4; }
  326.       if (!strlen(str)) {
  327.           xmin = -999;
  328. ***************
  329. *** 153,159 ****
  330. --- 157,167 ----
  331.       wrefresh(mn);
  332.       cur = mn; xp = 49; yp = 13;
  333.       echo(); nocrmode();
  334. + #ifdef    SYSV
  335. +     wgetstr(mn, str);
  336. + #else    /* SYSV */
  337.       gets(str);
  338. + #endif    /* SYSV */
  339.       if (strlen(str))
  340.           xmax = atof(str);
  341.       fixup(mn);
  342. ***************
  343. *** 289,295 ****
  344.           bot("A copy will be found in the file 'laser' when you exit chemtab.");
  345.           sleep(2);
  346.       }
  347. ! #endif    LASERPRT
  348.       bot("Initializing for graphics...");
  349.       wclear(mn); wrefresh(mn);
  350.       wclear(btm); wrefresh(btm);
  351. --- 297,303 ----
  352.           bot("A copy will be found in the file 'laser' when you exit chemtab.");
  353.           sleep(2);
  354.       }
  355. ! #endif    /* LASERPRT */
  356.       bot("Initializing for graphics...");
  357.       wclear(mn); wrefresh(mn);
  358.       wclear(btm); wrefresh(btm);
  359. ***************
  360. *** 298,304 ****
  361.       initregis();
  362.       regisgoto(450, 10);
  363.       chcolor(RED_3);
  364. !     text(3, 0, -5, "Chemtab V2.01");
  365.       regisgoto(400 - (strlen(gname[numr(c1)]) * 10), YMAXDEF + 20);
  366.       text(2, 0, 0, gname[numr(c1)]);
  367.       regisgoto(YMINDEF - 46, 200 + (strlen(gname[numr(c2)]) * 10));
  368. --- 306,312 ----
  369.       initregis();
  370.       regisgoto(450, 10);
  371.       chcolor(RED_3);
  372. !     text(3, 0, -5, "Chemtab V2.03");
  373.       regisgoto(400 - (strlen(gname[numr(c1)]) * 10), YMAXDEF + 20);
  374.       text(2, 0, 0, gname[numr(c1)]);
  375.       regisgoto(YMINDEF - 46, 200 + (strlen(gname[numr(c2)]) * 10));
  376. ***************
  377. *** 426,437 ****
  378.   #ifdef    LASERPRT
  379.       if (laser)
  380.           fclose(lsr);
  381. ! #endif    LASERPRT
  382.       clear(); refresh();
  383.       wclear(graph); wrefresh(graph);
  384.   #ifdef    USERSHELL
  385.       signal(SIGTSTP, stop);
  386. ! #endif    USERSHELL
  387.       return(0);
  388. ! #endif ReGIS
  389.   }
  390. --- 434,445 ----
  391.   #ifdef    LASERPRT
  392.       if (laser)
  393.           fclose(lsr);
  394. ! #endif    /* LASERPRT */
  395.       clear(); refresh();
  396.       wclear(graph); wrefresh(graph);
  397.   #ifdef    USERSHELL
  398.       signal(SIGTSTP, stop);
  399. ! #endif    /* USERSHELL */
  400.       return(0);
  401. ! #endif /* ReGIS */
  402.   }
  403. diff -c Chem202/element.c Chem203/element.c
  404. *** Chem202/element.c    Thu Mar 21 09:03:24 1991
  405. --- Chem203/element.c    Thu Mar 21 09:09:07 1991
  406. ***************
  407. *** 94,97 ****
  408.       
  409.       fclose(fp);
  410.   }
  411. --- 94,96 ----
  412. diff -c Chem202/graph.h Chem203/graph.h
  413. *** Chem202/graph.h    Thu Mar 21 09:03:28 1991
  414. --- Chem203/graph.h    Thu Mar 21 09:09:11 1991
  415. ***************
  416. *** 40,46 ****
  417.   #define RED_3    2
  418.   #define BLU_3    1
  419.   #define BLK_3    0
  420. ! #endif    ReGIS
  421.   
  422.   double    xmax,        /* X axis maximum value */
  423.       xmin,        /* X axis minimum value */
  424. --- 40,46 ----
  425.   #define RED_3    2
  426.   #define BLU_3    1
  427.   #define BLK_3    0
  428. ! #endif    /* ReGIS */
  429.   
  430.   double    xmax,        /* X axis maximum value */
  431.       xmin,        /* X axis minimum value */
  432. diff -c Chem202/graphlib.c Chem203/graphlib.c
  433. *** Chem202/graphlib.c    Thu Mar 21 09:03:29 1991
  434. --- Chem203/graphlib.c    Thu Mar 21 09:09:11 1991
  435. ***************
  436. *** 2,8 ****
  437. --- 2,14 ----
  438.   
  439.   #include <stdio.h>
  440.   #include <curses.h>
  441. + #ifdef    SYSV
  442. + #include <string.h>
  443. + #else    /* SYSV */
  444.   #include <strings.h>
  445. + #endif    /* SYSV */
  446.   #include "variables.h"
  447.   #include "element.h"
  448.   #include "graph.h"
  449. ***************
  450. *** 42,48 ****
  451.   #ifdef    LASERPRT
  452.       if (laser)
  453.           fprintf(lsr, "\033Pp");
  454. ! #endif    LASERPRT
  455.       chcolor(6);
  456.   }
  457.   
  458. --- 48,54 ----
  459.   #ifdef    LASERPRT
  460.       if (laser)
  461.           fprintf(lsr, "\033Pp");
  462. ! #endif    /* LASERPRT */
  463.       chcolor(6);
  464.   }
  465.   
  466. ***************
  467. *** 51,57 ****
  468.   #ifdef    LASERPRT
  469.       if (laser)
  470.           fprintf(lsr, "\033\\");
  471. ! #endif    LASERPRT
  472.       printf("\033\\"); 
  473.   }
  474.   
  475. --- 57,63 ----
  476.   #ifdef    LASERPRT
  477.       if (laser)
  478.           fprintf(lsr, "\033\\");
  479. ! #endif    /* LASERPRT */
  480.       printf("\033\\"); 
  481.   }
  482.   
  483. ***************
  484. *** 61,67 ****
  485.   #ifdef    LASERPRT
  486.       if (laser)
  487.           fprintf(lsr, "P[%d,%d]", x, y);
  488. ! #endif    LASERPRT
  489.       printf("P[%d,%d]", x, y);
  490.   }
  491.   
  492. --- 67,73 ----
  493.   #ifdef    LASERPRT
  494.       if (laser)
  495.           fprintf(lsr, "P[%d,%d]", x, y);
  496. ! #endif    /* LASERPRT */
  497.       printf("P[%d,%d]", x, y);
  498.   }
  499.   
  500. ***************
  501. *** 73,79 ****
  502.   #ifdef    LASERPRT
  503.       if (laser)
  504.           fprintf(lsr, "V[%d,%d]", x2, y2);
  505. ! #endif    LASERPRT
  506.       }
  507.   
  508.   mybox(width, x1, y1, x2, y2)
  509. --- 79,85 ----
  510.   #ifdef    LASERPRT
  511.       if (laser)
  512.           fprintf(lsr, "V[%d,%d]", x2, y2);
  513. ! #endif    /* LASERPRT */
  514.       }
  515.   
  516.   mybox(width, x1, y1, x2, y2)
  517. ***************
  518. *** 98,104 ****
  519.   #ifdef    LASERPRT
  520.           if (laser)
  521.               fprintf(lsr, "W(S1)C[+2]W(S0)");
  522. ! #endif    LASERPRT
  523.       } else {
  524.           line(x1, y1-2, x1, y1+2);
  525.           line(x1-2, y1, x1+2, y1);
  526. --- 104,110 ----
  527.   #ifdef    LASERPRT
  528.           if (laser)
  529.               fprintf(lsr, "W(S1)C[+2]W(S0)");
  530. ! #endif    /* LASERPRT */
  531.       } else {
  532.           line(x1, y1-2, x1, y1+2);
  533.           line(x1-2, y1, x1+2, y1);
  534. ***************
  535. *** 115,121 ****
  536.   #ifdef    LASERPRT
  537.       if (laser)
  538.           fprintf(lsr, "T(D%d)(S%d)(D%d)(I%d)'%s'", dir, size, dir, angle, string);
  539. ! #endif    LASERPRT
  540.   }
  541.   
  542.   regispc()
  543. --- 121,127 ----
  544.   #ifdef    LASERPRT
  545.       if (laser)
  546.           fprintf(lsr, "T(D%d)(S%d)(D%d)(I%d)'%s'", dir, size, dir, angle, string);
  547. ! #endif    /* LASERPRT */
  548.   }
  549.   
  550.   regispc()
  551. ***************
  552. *** 127,130 ****
  553.       getchar();
  554.       echo(); nocrmode();
  555.   }
  556. ! #endif    ReGIS
  557. --- 133,136 ----
  558.       getchar();
  559.       echo(); nocrmode();
  560.   }
  561. ! #endif    /* ReGIS */
  562. diff -c Chem202/looke.c Chem203/looke.c
  563. *** Chem202/looke.c    Thu Mar 21 09:03:30 1991
  564. --- Chem203/looke.c    Thu Mar 21 09:09:12 1991
  565. ***************
  566. *** 50,56 ****
  567. --- 50,60 ----
  568.       char    input[80];
  569.       int    i;
  570.   
  571. + #ifdef    SYSV
  572. +     wgetstr(mn, input);
  573. + #else    /* SYSV */
  574.       gets(input);
  575. + #endif    /* SYSV */
  576.       for (i = 0; i < strlen(input); i++)
  577.           input[i] = tolower(input[i]);
  578.   
  579. ***************
  580. *** 199,205 ****
  581. --- 203,213 ----
  582.           cur = mn; xp = 17; yp = 11;
  583.           echo();
  584.           nocrmode();
  585. + #ifdef    SYSV
  586. +         wgetstr(mn, srch);
  587. + #else    /* SYSV */
  588.           gets(srch);
  589. + #endif    /* SYSV */
  590.           if (srch[0] == '?') { help(11); goto l11; }
  591.           if (atoi(srch) < 1) looke();
  592.       }
  593. ***************
  594. *** 212,218 ****
  595. --- 220,230 ----
  596.           cur = mn; xp = 17; yp = 11;
  597.           echo();
  598.           nocrmode();
  599. + #ifdef    SYSV
  600. +         wgetstr(mn, srch);
  601. + #else    /* SYSV */
  602.           gets(srch);
  603. + #endif    /* SYSV */
  604.           if (srch[0] == '?') { help(12); goto l12; }
  605.       }
  606.       
  607. diff -c Chem202/main.c Chem203/main.c
  608. *** Chem202/main.c    Thu Mar 21 09:08:00 1991
  609. --- Chem203/main.c    Thu Mar 21 09:09:13 1991
  610. ***************
  611. *** 54,61 ****
  612.           sleep(2);
  613.       }
  614.   
  615. ! #endif ReGIS
  616.   
  617.       if (stat(PERTABLE, f1) == -1) {
  618.           printf("Element data (text) is unavailable.\n");
  619.           exit(1);
  620. --- 54,65 ----
  621.           sleep(2);
  622.       }
  623.   
  624. ! #endif /* ReGIS */
  625.   
  626. + #ifdef    USERSHELL
  627. +     gtty(0, &orig);
  628. + #endif    /* USERSHELL */
  629.       if (stat(PERTABLE, f1) == -1) {
  630.           printf("Element data (text) is unavailable.\n");
  631.           exit(1);
  632. ***************
  633. *** 93,99 ****
  634.           sleep(1);
  635.           unlink(LOCKFILE);
  636.       }
  637. ! next:    rebuild = 0;  closetext = 0;
  638.   
  639.       initscr();            /* start curses */
  640.       hlp = NULL;            /* help screen init */
  641. --- 97,103 ----
  642.           sleep(1);
  643.           unlink(LOCKFILE);
  644.       }
  645. ! next:    rebuild = 0;  closetext = 0; eopage = 0;
  646.   
  647.       initscr();            /* start curses */
  648.       hlp = NULL;            /* help screen init */
  649. ***************
  650. *** 116,122 ****
  651.           sleep(5);
  652.           cleanup();
  653.       }
  654. ! #endif    TRANSCRIPT
  655.   
  656.       clear();
  657.       mvaddstr(5, 37, "Chemtab");
  658. --- 120,126 ----
  659.           sleep(5);
  660.           cleanup();
  661.       }
  662. ! #endif    /* TRANSCRIPT */
  663.   
  664.       clear();
  665.       mvaddstr(5, 37, "Chemtab");
  666. ***************
  667. *** 123,132 ****
  668.       mvaddstr(9, 28, "Periodic Table Data Base");
  669.       mvaddstr(10, 30, "Of the Known Elements");
  670.       standout();
  671. !     mvaddstr(15, 21, "Chemtab 2.02 incorporates online help");
  672.       mvaddstr(16, 13, "Answer with a question mark at any question for help.");
  673.       standend();
  674. !     mvaddstr(18, 18, "Version 2.02, March 13th, 1991 by Jim King");
  675.       mvaddstr(19, 16, "Developed at Lincoln-Sudbury Regional High School");
  676.       mvaddstr(20, 12, "(and) ReGIS package at Rochester Institute of Technology");
  677.       refresh();                /* Title page */
  678. --- 127,136 ----
  679.       mvaddstr(9, 28, "Periodic Table Data Base");
  680.       mvaddstr(10, 30, "Of the Known Elements");
  681.       standout();
  682. !     mvaddstr(15, 21, "Chemtab 2.03 incorporates online help");
  683.       mvaddstr(16, 13, "Answer with a question mark at any question for help.");
  684.       standend();
  685. !     mvaddstr(18, 18, "Version 2.03, March 19th, 1991 by Jim King");
  686.       mvaddstr(19, 16, "Developed at Lincoln-Sudbury Regional High School");
  687.       mvaddstr(20, 12, "(and) ReGIS package at Rochester Institute of Technology");
  688.       refresh();                /* Title page */
  689. ***************
  690. *** 176,184 ****
  691.       signal(SIGINT, cleanup);
  692.   #ifdef    USERSHELL
  693.       signal(SIGTSTP, stop);
  694. ! #else    USERSHELL
  695.       signal(SIGTSTP, SIG_IGN);
  696. ! #endif    USERSHELL
  697.       signal(SIGQUIT, SIG_IGN);
  698.       signal(SIGTERM, cleanup);
  699.       
  700. --- 180,188 ----
  701.       signal(SIGINT, cleanup);
  702.   #ifdef    USERSHELL
  703.       signal(SIGTSTP, stop);
  704. ! #else    /* USERSHELL */
  705.       signal(SIGTSTP, SIG_IGN);
  706. ! #endif    /* USERSHELL */
  707.       signal(SIGQUIT, SIG_IGN);
  708.       signal(SIGTERM, cleanup);
  709.       
  710. ***************
  711. *** 195,207 ****
  712.               wmove(mn, i+1, 0);
  713.               wprintw(mn, "%d] %s", i, mopts[i]);
  714.           }    /* give me choices, then branch off */
  715. !         menu("Chemtab 2.02 MAIN MENU");
  716.   #ifdef    ReGIS
  717.           mvwaddstr(mn, 11, 0, "^R toggles ReGIS mode which is currently ");
  718.           wstandout(mn);
  719.           wprintw(mn, "%s", regis ? "on." : "off");
  720.           wstandend(mn);
  721. ! #endif    ReGIS
  722.   loop:        mvwaddstr(mn, 9, 0, "Your choice? ");
  723.           wclrtoeol(mn);
  724.           wrefresh(mn);
  725. --- 199,211 ----
  726.               wmove(mn, i+1, 0);
  727.               wprintw(mn, "%d] %s", i, mopts[i]);
  728.           }    /* give me choices, then branch off */
  729. !         menu("Chemtab 2.03 MAIN MENU");
  730.   #ifdef    ReGIS
  731.           mvwaddstr(mn, 11, 0, "^R toggles ReGIS mode which is currently ");
  732.           wstandout(mn);
  733.           wprintw(mn, "%s", regis ? "on." : "off");
  734.           wstandend(mn);
  735. ! #endif    /* ReGIS */
  736.   loop:        mvwaddstr(mn, 9, 0, "Your choice? ");
  737.           wclrtoeol(mn);
  738.           wrefresh(mn);
  739. ***************
  740. *** 217,225 ****
  741.   #ifdef ReGIS
  742.               case '5': wclear(mn); wclear(srt); if (regis) doregisgph(); else dogph(); break;
  743.               case '\022': /* ^R */ if (regis) regis = 0; else regis = 1; break;
  744. ! #else ReGIS
  745.               case '5': wclear(mn); wclear(srt); dogph(); break; /* Do a graph for us..... */
  746. ! #endif ReGIS
  747.               case '6': cleanup(); break; /* Exit */
  748.               case '\026': /* ^V */ version(); break;
  749.               default: goto loop;
  750. --- 221,229 ----
  751.   #ifdef ReGIS
  752.               case '5': wclear(mn); wclear(srt); if (regis) doregisgph(); else dogph(); break;
  753.               case '\022': /* ^R */ if (regis) regis = 0; else regis = 1; break;
  754. ! #else /* ReGIS */
  755.               case '5': wclear(mn); wclear(srt); dogph(); break; /* Do a graph for us..... */
  756. ! #endif /* ReGIS */
  757.               case '6': cleanup(); break; /* Exit */
  758.               case '\026': /* ^V */ version(); break;
  759.               default: goto loop;
  760. diff -c Chem202/ptabl.c Chem203/ptabl.c
  761. *** Chem202/ptabl.c    Thu Mar 21 09:07:18 1991
  762. --- Chem203/ptabl.c    Thu Mar 21 09:09:16 1991
  763. ***************
  764. *** 55,61 ****
  765.           case 'Y':
  766.   #ifdef    USERSHELL
  767.               signal(SIGTSTP, SIG_IGN);
  768. ! #endif    USERSHELL
  769.               strcat(foo, "_graphic"); ics = 1; break;
  770.           default: ics = 0; break;
  771.       }
  772. --- 55,61 ----
  773.           case 'Y':
  774.   #ifdef    USERSHELL
  775.               signal(SIGTSTP, SIG_IGN);
  776. ! #endif    /* USERSHELL */
  777.               strcat(foo, "_graphic"); ics = 1; break;
  778.           default: ics = 0; break;
  779.       }
  780. ***************
  781. *** 107,112 ****
  782.       refresh();
  783.   #ifdef    USERSHELL
  784.       signal(SIGTSTP, stop);
  785. ! #endif    USERSHELL
  786.       return(0);
  787.   }
  788. --- 107,112 ----
  789.       refresh();
  790.   #ifdef    USERSHELL
  791.       signal(SIGTSTP, stop);
  792. ! #endif    /* USERSHELL */
  793.       return(0);
  794.   }
  795. diff -c Chem202/scrmisc.c Chem203/scrmisc.c
  796. *** Chem202/scrmisc.c    Thu Mar 21 09:07:18 1991
  797. --- Chem203/scrmisc.c    Thu Mar 21 09:09:18 1991
  798. ***************
  799. *** 12,22 ****
  800.    * will USUALLY work for most print queues WITHOUT end-of-page form-feeding,
  801.    * meaning the print command doesn't care about upper and lower margins.  If
  802.    * so, a lower value may be needed. */
  803.   #define    SPACING        2
  804.   
  805. - /* V2.02 uses a ^L to scroll to the end of page.. SPACING at 2 should work
  806. -  * peachy.. :> */
  807. -  
  808.   menu(str)
  809.   char    *str;
  810.   {
  811. --- 12,22 ----
  812.    * will USUALLY work for most print queues WITHOUT end-of-page form-feeding,
  813.    * meaning the print command doesn't care about upper and lower margins.  If
  814.    * so, a lower value may be needed. */
  815. + /* V2.03 uses a ^L to scroll to the end of page.. SPACING at 2 should work
  816. +  * peachy.. :> - Jim */
  817. +  
  818.   #define    SPACING        2
  819.   
  820.   menu(str)
  821.   char    *str;
  822.   {
  823. ***************
  824. *** 191,197 ****
  825.       clear(); refresh();
  826.   
  827.       standout();
  828. !     mvaddstr(0, 30, "Chemtab V2.02 (patch 1)");
  829.       standend();
  830.       mvaddstr(2, 0, "Element data (text): ");
  831.       printw("%s", PERTABLE);
  832. --- 191,197 ----
  833.       clear(); refresh();
  834.   
  835.       standout();
  836. !     mvaddstr(0, 30, "Chemtab V2.03 (patch 2)");
  837.       standend();
  838.       mvaddstr(2, 0, "Element data (text): ");
  839.       printw("%s", PERTABLE);
  840. ***************
  841. *** 213,219 ****
  842.       mvaddstr(12, 0, "Job stopping is enabled.");
  843.   #else
  844.       mvaddstr(12, 0, "Job stopping is disabled.");
  845. ! #endif    USERSHELL
  846.   
  847.   #ifdef    PRINTER
  848.       mvaddstr(13, 0, "Printing is enabled through the ");
  849. --- 213,219 ----
  850.       mvaddstr(12, 0, "Job stopping is enabled.");
  851.   #else
  852.       mvaddstr(12, 0, "Job stopping is disabled.");
  853. ! #endif    /* USERSHELL */
  854.   
  855.   #ifdef    PRINTER
  856.       mvaddstr(13, 0, "Printing is enabled through the ");
  857. ***************
  858. *** 221,233 ****
  859.       printw("command.");
  860.   #else
  861.       mvaddstr(13, 0, "Printing is disabled.");
  862. ! #endif    PRINTER
  863.   
  864.   #ifdef    PRINTQ
  865.       mvaddstr(14, 0, "User is prompted for a print queue.");
  866. ! #else    PRINTQ
  867.       mvaddstr(14, 0, "Print queue is coded into program.");
  868. ! #endif    PRINTQ
  869.   
  870.   #ifdef    TRANSCRIPT
  871.       mvaddstr(15, 0, "User logs are kept in ");
  872. --- 221,233 ----
  873.       printw("command.");
  874.   #else
  875.       mvaddstr(13, 0, "Printing is disabled.");
  876. ! #endif    /* PRINTER */
  877.   
  878.   #ifdef    PRINTQ
  879.       mvaddstr(14, 0, "User is prompted for a print queue.");
  880. ! #else
  881.       mvaddstr(14, 0, "Print queue is coded into program.");
  882. ! #endif    /* PRINTQ */
  883.   
  884.   #ifdef    TRANSCRIPT
  885.       mvaddstr(15, 0, "User logs are kept in ");
  886. ***************
  887. *** 234,246 ****
  888.       printw("%s.", TRANSCRIPT);
  889.   #else
  890.       mvaddstr(15, 0, "User logs are disabled.");
  891. ! #endif    TRANSCRIPT
  892.   
  893.   #ifdef    ReGIS
  894.       mvaddstr(16, 0, "ReGIS graphics module is installed.");
  895.   #else
  896.       mvaddstr(16, 0, "ReGIS graphics module is not installed.");
  897. ! #endif    ReGIS
  898.   
  899.       refresh();
  900.       spc();
  901. --- 234,246 ----
  902.       printw("%s.", TRANSCRIPT);
  903.   #else
  904.       mvaddstr(15, 0, "User logs are disabled.");
  905. ! #endif    /* TRANSCRIPT */
  906.   
  907.   #ifdef    ReGIS
  908.       mvaddstr(16, 0, "ReGIS graphics module is installed.");
  909.   #else
  910.       mvaddstr(16, 0, "ReGIS graphics module is not installed.");
  911. ! #endif    /* ReGIS */
  912.   
  913.       refresh();
  914.       spc();
  915. diff -c Chem202/tune.h Chem203/tune.h
  916. *** Chem202/tune.h    Thu Mar 21 09:07:18 1991
  917. --- Chem203/tune.h    Thu Mar 21 09:17:03 1991
  918. ***************
  919. *** 42,48 ****
  920.      with a ^Z if you do NOT want the program to stop, comment this out */
  921.   /* Obviously, this was not written on a SYSV system..  If you have SYSV
  922.      it is advised you comment this out */
  923. ! /*#define USERSHELL    "/bin/csh" */
  924.   
  925.   /* TRANSCRIPT is the path to the logfile which lists who uses the program.
  926.                 if it is not defined, then no log is made. */
  927. --- 42,48 ----
  928.      with a ^Z if you do NOT want the program to stop, comment this out */
  929.   /* Obviously, this was not written on a SYSV system..  If you have SYSV
  930.      it is advised you comment this out */
  931. ! #define USERSHELL    "/bin/csh"
  932.   
  933.   /* TRANSCRIPT is the path to the logfile which lists who uses the program.
  934.                 if it is not defined, then no log is made. */
  935. ***************
  936. *** 71,76 ****
  937.                              printer */
  938.   
  939.   /* ------------------------------------------------------------- */
  940. ! #define PRINTER        "prvms -q "
  941.   #define    PRINTQ
  942.   
  943. --- 71,81 ----
  944.                              printer */
  945.   
  946.   /* ------------------------------------------------------------- */
  947. ! #define PRINTER        "lpr -h -Pprinter_name"
  948.   #define    PRINTQ
  949.   
  950. + /* don't touch! */
  951. + #ifdef    SYSV
  952. + #undef    USERSHELL
  953. + #endif  /* SYSV */
  954. diff -c Chem202/variables.h Chem203/variables.h
  955. *** Chem202/variables.h    Thu Mar 21 09:07:19 1991
  956. --- Chem203/variables.h    Thu Mar 21 09:09:20 1991
  957. ***************
  958. *** 4,9 ****
  959. --- 4,10 ----
  960.    * variables.h    Include file - basically a global file
  961.    */
  962.   
  963. + #include <sgtty.h>            /* gtty and stty calls */
  964.   #include <stdio.h>
  965.   #include "tune.h"
  966.   
  967. ***************
  968. *** 12,28 ****
  969.       xp, yp,                /* Stop job handling */
  970.   #ifdef    LASERPRT
  971.       laser,                /* Laser print? */
  972. ! #endif    LASERPRT
  973.   #ifdef  ReGIS
  974.       regis,                /* regis on/off flag */
  975. ! #endif     ReGIS
  976.       trans,                /* transcript flag */
  977.       eopage,                /* end of page flag */
  978.       gtot;                /* total of sorted elements */
  979.   #ifdef    LASERPRT
  980.   FILE    *lsr;
  981. ! #endif    LASERPRT
  982.   FILE    *fp;                /* File pointer for the transcript */
  983.   
  984.   char    lnm[80];            /* User's last name for transcript */
  985.   
  986. --- 13,33 ----
  987.       xp, yp,                /* Stop job handling */
  988.   #ifdef    LASERPRT
  989.       laser,                /* Laser print? */
  990. ! #endif    /* LASERPRT */
  991.   #ifdef  ReGIS
  992.       regis,                /* regis on/off flag */
  993. ! #endif     /* ReGIS */
  994.       trans,                /* transcript flag */
  995.       eopage,                /* end of page flag */
  996.       gtot;                /* total of sorted elements */
  997.   #ifdef    LASERPRT
  998.   FILE    *lsr;
  999. ! #endif    /* LASERPRT */
  1000.   FILE    *fp;                /* File pointer for the transcript */
  1001. + #ifdef    USERSHELL
  1002. + struct    sgttyb    orig, new;
  1003. + #endif    /* USERSHELL */
  1004.   
  1005.   char    lnm[80];            /* User's last name for transcript */
  1006.   
  1007. \End\Of\Shar\
  1008. else
  1009.   echo "will not over write ./patch02"
  1010. fi
  1011. if `test ! -s ./patchlevel.h`
  1012. then
  1013. echo "writing ./patchlevel.h"
  1014. cat > ./patchlevel.h << '\End\Of\Shar\'
  1015. #define    VERSION        2.03
  1016. #define    PATCHLEVEL    2
  1017. \End\Of\Shar\
  1018. else
  1019.   echo "will not over write ./patchlevel.h"
  1020. fi
  1021. echo "Finished archive 1 of 1"
  1022. exit
  1023.  
  1024. exit 0 # Just in case...
  1025.