home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
unix
/
volume24
/
chemtab
/
patch1
< prev
next >
Wrap
Text File
|
1991-03-13
|
20KB
|
695 lines
Subject: v24i044: Manipulate data on the chemical elements., Patch1
Newsgroups: comp.sources.unix
Approved: rsalz@uunet.UU.NET
X-Checksum-Snefru: 2d3916fe a0e39cd2 c483c7c7 0f035615
Submitted-by: "J.E. King" <jek5036@ultb.isc.rit.edu>
Posting-number: Volume 24, Issue 44
Archive-name: chemtab/patch1
Rich,
After receiving bugs from people out on the network I have made
'an official patch' to Chemtab V2.01. This could be called patch #1,
and it brings Chemtab up to V2.02. Unshar and read README.PATCH for
a description of what has been fixed. There have also been a few
small changes.. you may or may not notice but it does not affect the
user really.. Thanks for the time.
O / O / O / O / O / O / O / O /
----------X------X-------X-------X-------X-------X-------X-------X------
O \ O \ O \ O \ O \ O \ O \ O \
#!/bin/sh
# to extract, remove the header and type "sh filename"
if `test ! -s ./patch01`
then
echo "writing ./patch01"
cat > ./patch01 << '\End\Of\Shar\'
diff -c3 Old/Makefile New/Makefile
*** Old/Makefile Wed Mar 13 19:42:26 1991
--- New/Makefile Wed Mar 13 21:27:14 1991
***************
*** 1,8 ****
CC = cc
! CFLAGS = -g -DReGIS
# Define ReGIS if you want to program to prompt the user to answer y/n
# to the question of if they have a ReGIS compatible terminal
! DEST = chemtab
EXTHDRS = /usr/include/curses.h \
/usr/include/math.h \
/usr/include/sgtty.h \
--- 1,22 ----
+ #
+ # Makefile for Chemtab, current version 2.02, Makefile version 1.1
+ # Makefile author: Jim King (jek5036@ultb.isc.rit.edu)
+ # Makefile additions: Jon Kamens (jik@pit-manager.mit.edu)
+ #
CC = cc
! CFLAGS = -O -DReGIS
# Define ReGIS if you want to program to prompt the user to answer y/n
# to the question of if they have a ReGIS compatible terminal
! BINDIR = .
! MANDIR = .
! # MAKE SURE: Any defines in tune.h should reflect this file.. i.e.
! # if LIBDIR = LIB then the define in tune.h should be something
! # like #define PERTABLE "LIB/elist" *** important
! LIBDIR = LIB
! MANSUFFIX = 1
! DEST = $(BINDIR)/ctab
! MANDEST = $(MANDIR)/man$(MANSUFFIX)/chemtab.$(MANSUFFIX)
! LIBFILS = closevalues elist pertab pertab_graphic online_help
EXTHDRS = /usr/include/curses.h \
/usr/include/math.h \
/usr/include/sgtty.h \
***************
*** 20,26 ****
variables.h \
windows.h
LDFLAGS = $(CFLAGS)
! LIBS = -lcurses -ltermcap graphlib.a
LINKER = cc
MAKEFILE = Makefile
OBJS = cleanup.o \
--- 34,40 ----
variables.h \
windows.h
LDFLAGS = $(CFLAGS)
! LIBS = -lcurses -ltermcap
LINKER = cc
MAKEFILE = Makefile
OBJS = cleanup.o \
***************
*** 29,34 ****
--- 43,49 ----
element.o \
element2.o \
esort.o \
+ graphlib.o \
looke.o \
main.o \
ptabl.o \
***************
*** 51,63 ****
scrmisc.c \
vdata.c
! all: grlib $(PROGRAM)
! grlib: graphlib.o
! ar cr graphlib.a graphlib.o
! ranlib graphlib.a
!
! $(PROGRAM): $(OBJS) graphlib.a
@echo -n "Loading $(PROGRAM) ... "
@$(LINKER) $(LDFLAGS) $(OBJS) -o $(PROGRAM) $(LIBS)
@echo "done"
--- 66,74 ----
scrmisc.c \
vdata.c
! all: $(PROGRAM)
! $(PROGRAM): $(OBJS)
@echo -n "Loading $(PROGRAM) ... "
@$(LINKER) $(LDFLAGS) $(OBJS) -o $(PROGRAM) $(LIBS)
@echo "done"
***************
*** 68,77 ****
index:; @ctags -wx $(HDRS) $(SRCS)
! install: $(PROGRAM)
@echo Installing $(PROGRAM) in $(DEST)
! @install -m 4755 $(PROGRAM) $(DEST)
!
print:; @$(PRINT) $(HDRS) $(SRCS)
program: $(PROGRAM)
--- 79,94 ----
index:; @ctags -wx $(HDRS) $(SRCS)
! install: $(PROGRAM) chemtab.1
@echo Installing $(PROGRAM) in $(DEST)
! @install -m 755 $(PROGRAM) $(DEST)
! @echo Installing chemtab.1 in $(MANDEST)
! @install -m 0644 chemtab.1 $(MANDEST)
! @echo Creating and modifying chemtab library files
! @-mkdir $(LIBDIR)
! @cp $(LIBFILS) $(LIBDIR)
! @chmod 755 $(LIBDIR) $(LIBDIR)/*
!
print:; @$(PRINT) $(HDRS) $(SRCS)
program: $(PROGRAM)
diff -c3 Old/README New/README
*** Old/README Wed Mar 13 19:42:27 1991
--- New/README Wed Mar 13 20:36:13 1991
***************
*** 30,32 ****
--- 30,33 ----
Chemtab; written in C (1990) by Jim King (pulsar@lsrhs)
Chemtab V2.01; (overlay from V1) written in C (1991) by Jim King
(jek5036@ultb.isc.rit.edu)
+ Chemtab V2.02; (patch #1) with help from Jon Kamens (jik@pit-manager.mit.edu)
Only in New: README.PATCH
diff -c3 Old/VERSION New/VERSION
*** Old/VERSION Wed Mar 13 19:42:28 1991
--- New/VERSION Wed Mar 13 20:29:49 1991
***************
*** 26,28 ****
--- 26,34 ----
Job stopping fixed. (BSD only)
Pipe of ReGIS graphing commands into a file.
Graphing module updated to work faster.
+
+ Chemtab V2.02 Patch to V2.01
+ Makefile modified by Jon Kamens
+ (jik@pit-manager.MIT.EDU)
+ Problems when undefining ReGIS and TRANSCRIPT fixed.
+ A couple of minor screen display changes.
diff -c3 Old/cleanup.c New/cleanup.c
*** Old/cleanup.c Wed Mar 13 19:42:29 1991
--- New/cleanup.c Wed Mar 13 21:22:11 1991
***************
*** 67,78 ****
nocrmode();
clear(); refresh();
endwin(); /* turn off curses */
! if (trans) {
printf("A copy of your transcript can be found in the file %d.chemtab\n", getpid());
! /* printf("\nYou can pick up your printout at the printer to the left of\n");
! printf("The White-Board, labelled Happy. Look for your last name in >><<'s on\n");
! printf("the top line of each printout. Good luck with Chemistry.\n");
! */ }
fflush(stdout); /* just make sure.. */
exit(1); /* quit nicely */
}
--- 67,76 ----
nocrmode();
clear(); refresh();
endwin(); /* turn off curses */
! if (trans)
! /* You can put information on how to get to the printer HERE */
printf("A copy of your transcript can be found in the file %d.chemtab\n", getpid());
!
fflush(stdout); /* just make sure.. */
exit(1); /* quit nicely */
}
diff -c3 Old/dogph.c New/dogph.c
*** Old/dogph.c Wed Mar 13 19:42:31 1991
--- New/dogph.c Wed Mar 13 21:02:44 1991
***************
*** 109,114 ****
--- 109,115 ----
if (x < xmin) xmin = x;
}
} else {
+ help(18);
for (i = 1; i < gtot; i++) {
find(c1, sub1[i]);
if (x == -999.0) continue;
***************
*** 162,177 ****
/* Here we find the x axis max and min values */
/* if they are not already defined */
if (xmin == -999) {
! find(c1, e->anum);
! xmax = xmin = x;
! for (tmp = e; tmp->next != NULL; tmp = tmp->next) {
! find(c1, tmp->anum);
! if (x == -999.0) continue;
! if (x > xmax) xmax = x;
! if (x < xmin) xmin = x;
}
}
-
/* Here we find the y axis min and max values */
find(c2, e->anum);
--- 163,189 ----
/* Here we find the x axis max and min values */
/* if they are not already defined */
if (xmin == -999) {
! if (gtot > 0) {
! for (i = 1; i < gtot; i++) {
! find(c1, sub1[i]);
! if (x == -999.0) continue;
! if (i == 1) xmax = xmin = x;
! else {
! if (x > xmax) xmax = x;
! if (x < xmin) xmin = x;
! }
! }
! } else {
! find(c1, e->anum);
! xmax = xmin = x;
! for (tmp = e; tmp->next != NULL; tmp = tmp->next) {
! find(c1, tmp->anum);
! if (x == -999.0) continue;
! if (x > xmax) xmax = x;
! if (x < xmin) xmin = x;
! }
}
}
/* Here we find the y axis min and max values */
find(c2, e->anum);
diff -c3 Old/doregisgph.c New/doregisgph.c
*** Old/doregisgph.c Wed Mar 13 19:42:16 1991
--- New/doregisgph.c Wed Mar 13 21:02:44 1991
***************
*** 1,5 ****
- #ifdef ReGIS
-
/*
* chemtab - a periodic table data base (C) 1990 Jim King
* jek5036@ritvax.isc.rit.edu (formerly pulsar@lsrhs)
--- 1,3 ----
***************
*** 19,25 ****
extern int numr(), stop();
- #endif ReGIS
/*
* find(ch, en)
*
--- 17,22 ----
***************
*** 125,130 ****
--- 122,128 ----
if (x < xmin) xmin = x;
}
} else {
+ help(18);
for (i = 1; i < gtot; i++) {
find(c1, sub1[i]);
if (x == -999.0) continue;
***************
*** 178,190 ****
bot("Calculating the X axis max and min values...");
if (xmin == -999) {
! find(c1, e->anum);
! xmax = xmin = x;
! for (tmp = e; tmp->next != NULL; tmp = tmp->next) {
! find(c1, tmp->anum);
! if (x == -999.0) continue;
! if (x > xmax) xmax = x;
! if (x < xmin) xmin = x;
}
}
--- 176,200 ----
bot("Calculating the X axis max and min values...");
if (xmin == -999) {
! if (gtot > 0) {
! for (i = 1; i < gtot; i++) {
! find(c1, sub1[i]);
! if (x == -999.0) continue;
! if (i == 1) xmax = xmin = x;
! else {
! if (x > xmax) xmax = x;
! if (x < xmin) xmin = x;
! }
! }
! } else {
! find(c1, e->anum);
! xmax = xmin = x;
! for (tmp = e; tmp->next != NULL; tmp = tmp->next) {
! find(c1, tmp->anum);
! if (x == -999.0) continue;
! if (x > xmax) xmax = x;
! if (x < xmin) xmin = x;
! }
}
}
diff -c3 Old/main.c New/main.c
*** Old/main.c Wed Mar 13 19:42:02 1991
--- New/main.c Wed Mar 13 21:24:11 1991
***************
*** 93,99 ****
sleep(1);
unlink(LOCKFILE);
}
! next: rebuild = 0; closetext = 0; gtot = 0;
initscr(); /* start curses */
hlp = NULL; /* help screen init */
--- 93,99 ----
sleep(1);
unlink(LOCKFILE);
}
! next: rebuild = 0; closetext = 0; eopage = 0;
initscr(); /* start curses */
hlp = NULL; /* help screen init */
***************
*** 123,132 ****
mvaddstr(9, 28, "Periodic Table Data Base");
mvaddstr(10, 30, "Of the Known Elements");
standout();
! mvaddstr(15, 21, "Chemtab 2.01 incorporates online help");
mvaddstr(16, 13, "Answer with a question mark at any question for help.");
standend();
! mvaddstr(18, 18, "Version 2.01, January 7th, 1991 by Jim King");
mvaddstr(19, 16, "Developed at Lincoln-Sudbury Regional High School");
mvaddstr(20, 12, "(and) ReGIS package at Rochester Institute of Technology");
refresh(); /* Title page */
--- 123,132 ----
mvaddstr(9, 28, "Periodic Table Data Base");
mvaddstr(10, 30, "Of the Known Elements");
standout();
! mvaddstr(15, 21, "Chemtab 2.02 incorporates online help");
mvaddstr(16, 13, "Answer with a question mark at any question for help.");
standend();
! mvaddstr(18, 18, "Version 2.02, March 13th, 1991 by Jim King");
mvaddstr(19, 16, "Developed at Lincoln-Sudbury Regional High School");
mvaddstr(20, 12, "(and) ReGIS package at Rochester Institute of Technology");
refresh(); /* Title page */
***************
*** 195,201 ****
wmove(mn, i+1, 0);
wprintw(mn, "%d] %s", i, mopts[i]);
} /* give me choices, then branch off */
! menu("Chemtab 2.01 MAIN MENU");
#ifdef ReGIS
mvwaddstr(mn, 11, 0, "^R toggles ReGIS mode which is currently ");
wstandout(mn);
--- 195,201 ----
wmove(mn, i+1, 0);
wprintw(mn, "%d] %s", i, mopts[i]);
} /* give me choices, then branch off */
! menu("Chemtab 2.02 MAIN MENU");
#ifdef ReGIS
mvwaddstr(mn, 11, 0, "^R toggles ReGIS mode which is currently ");
wstandout(mn);
diff -c3 Old/online_help New/online_help
*** Old/online_help Wed Mar 13 19:42:02 1991
--- New/online_help Wed Mar 13 20:45:04 1991
***************
*** 101,106 ****
--- 101,112 ----
1000 celcius. You would type in the number for
melting temperature here.
_
+ Since you selected some characteristics
+ using main menu command #2, the graphing module
+ will only use these elements when graphing. To
+ override this, select #15 (clear all characteristics)
+ in main menu command #2. If this message does not
+ appear, then all the elements are being used.
_
The ReGIS commands can be printed on any DEC
LN03 compatible laserprinter, possibly others. If
diff -c3 Old/ptabl.c New/ptabl.c
*** Old/ptabl.c Wed Mar 13 19:42:05 1991
--- New/ptabl.c Wed Mar 13 21:10:55 1991
***************
*** 42,48 ****
wclear(mn); wrefresh(mn);
clear(); refresh();
! l16: mvwaddstr(btm, 0, 0, "VT100 alternate graphic set (if yes, no transcript of this table) ");
wrefresh(btm);
cur = btm; xp = 65; yp = 0;
noecho(); crmode();
--- 42,51 ----
wclear(mn); wrefresh(mn);
clear(); refresh();
! l16: if (trans)
! mvwaddstr(btm, 0, 0, "VT100 alternate graphic set (if yes, no transcript of this table) ");
! else
! mvwaddstr(btm, 0, 0, "VT100 alternate graphic set? ");
wrefresh(btm);
cur = btm; xp = 65; yp = 0;
noecho(); crmode();
diff -c3 Old/scrmisc.c New/scrmisc.c
*** Old/scrmisc.c Wed Mar 13 19:42:07 1991
--- New/scrmisc.c Wed Mar 13 21:20:17 1991
***************
*** 12,19 ****
* will USUALLY work for most print queues WITHOUT end-of-page form-feeding,
* meaning the print command doesn't care about upper and lower margins. If
* so, a lower value may be needed. */
! #define SPACING 4
menu(str)
char *str;
{
--- 12,22 ----
* will USUALLY work for most print queues WITHOUT end-of-page form-feeding,
* meaning the print command doesn't care about upper and lower margins. If
* so, a lower value may be needed. */
! #define SPACING 2
+ /* V2.02 uses a ^L to scroll to the end of page.. SPACING at 2 should work
+ * peachy.. :> */
+
menu(str)
char *str;
{
***************
*** 120,125 ****
--- 123,129 ----
{
char c;
int i, j, icn = 0; /* Internal count */
+
if (!trans)
return(1);
***************
*** 170,177 ****
--- 174,186 ----
}
fputc('\n', fp);
}
+ ++eopage;
for (i = 0; i < SPACING-2; i++)
fputc('\n', fp);
+ if (eopage == 2) {
+ fputc('\014', fp);
+ eopage = 0;
+ }
fflush(fp);
return(1);
***************
*** 182,188 ****
clear(); refresh();
standout();
! mvaddstr(0, 34, "Chemtab V2.01");
standend();
mvaddstr(2, 0, "Element data (text): ");
printw("%s", PERTABLE);
--- 191,197 ----
clear(); refresh();
standout();
! mvaddstr(0, 30, "Chemtab V2.02 (patch 1)");
standend();
mvaddstr(2, 0, "Element data (text): ");
printw("%s", PERTABLE);
***************
*** 214,230 ****
mvaddstr(13, 0, "Printing is disabled.");
#endif PRINTER
#ifdef TRANSCRIPT
! mvaddstr(14, 0, "User logs are kept in ");
printw("%s.", TRANSCRIPT);
#else
! mvaddstr(14, 0, "User logs are disabled.");
#endif TRANSCRIPT
#ifdef ReGIS
! mvaddstr(15, 0, "ReGIS graphics module is installed.");
#else
! mvaddstr(15, 0, "ReGIS graphics module is not installed.");
#endif ReGIS
refresh();
--- 223,245 ----
mvaddstr(13, 0, "Printing is disabled.");
#endif PRINTER
+ #ifdef PRINTQ
+ mvaddstr(14, 0, "User is prompted for a print queue.");
+ #else PRINTQ
+ mvaddstr(14, 0, "Print queue is coded into program.");
+ #endif PRINTQ
+
#ifdef TRANSCRIPT
! mvaddstr(15, 0, "User logs are kept in ");
printw("%s.", TRANSCRIPT);
#else
! mvaddstr(15, 0, "User logs are disabled.");
#endif TRANSCRIPT
#ifdef ReGIS
! mvaddstr(16, 0, "ReGIS graphics module is installed.");
#else
! mvaddstr(16, 0, "ReGIS graphics module is not installed.");
#endif ReGIS
refresh();
diff -c3 Old/tune.h New/tune.h
*** Old/tune.h Wed Mar 13 19:49:43 1991
--- New/tune.h Wed Mar 13 21:28:40 1991
***************
*** 42,49 ****
with a ^Z if you do NOT want the program to stop, comment this out */
/* Obviously, this was not written on a SYSV system.. If you have SYSV
it is advised you comment this out */
! #define USERSHELL "/bin/csh"
/* PRINTER is the printer program or shell script you use to print on
the desired printer for Chemtab output. Preferably, when using lpr,
you want to add the '-h' function to skip the header page. */
--- 42,53 ----
with a ^Z if you do NOT want the program to stop, comment this out */
/* Obviously, this was not written on a SYSV system.. If you have SYSV
it is advised you comment this out */
! /*#define USERSHELL "/bin/csh" */
+ /* TRANSCRIPT is the path to the logfile which lists who uses the program.
+ if it is not defined, then no log is made. */
+ #define TRANSCRIPT "logfile"
+
/* PRINTER is the printer program or shell script you use to print on
the desired printer for Chemtab output. Preferably, when using lpr,
you want to add the '-h' function to skip the header page. */
***************
*** 57,68 ****
#define PRINTER "lpr h -P"
#define PRINTQ
! #define PRINTER "prvms -q "
#define PRINTQ note you need a space */
/* ------------------------------------------------------------- */
#define PRINTER "prvms -q "
#define PRINTQ
- /* TRANSCRIPT is the path to the logfile which lists who uses the program.
- if it is not defined, then no log is made. */
- #define TRANSCRIPT "logfile"
--- 61,76 ----
#define PRINTER "lpr h -P"
#define PRINTQ
! #define PRINTER "prvms -q " /* prvms looks for a space between args
#define PRINTQ note you need a space */
+
+ /* Without printq, if you want to hardcode the queue into the program,
+ do it like this:
+
+ #define PRINTER "lpr -h -Pprinter1" /* printer1 is the name of the
+ printer */
+
/* ------------------------------------------------------------- */
#define PRINTER "prvms -q "
#define PRINTQ
diff -c3 Old/variables.h New/variables.h
*** Old/variables.h Wed Mar 13 19:42:09 1991
--- New/variables.h Wed Mar 13 21:22:11 1991
***************
*** 16,29 ****
#ifdef ReGIS
regis, /* regis on/off flag */
#endif ReGIS
- #ifdef TRANSCRIPT
trans, /* transcript flag */
! #endif TRANSCRIPT
gtot; /* total of sorted elements */
#ifdef LASERPRT
FILE *lsr;
#endif LASERPRT
! FILE *fp; /* File pointer for the above flag */
char lnm[80]; /* User's last name for transcript */
--- 16,28 ----
#ifdef ReGIS
regis, /* regis on/off flag */
#endif ReGIS
trans, /* transcript flag */
! eopage, /* end of page flag */
gtot; /* total of sorted elements */
#ifdef LASERPRT
FILE *lsr;
#endif LASERPRT
! FILE *fp; /* File pointer for the transcript */
char lnm[80]; /* User's last name for transcript */
diff -c3 Old/vdata.c New/vdata.c
*** Old/vdata.c Wed Mar 13 19:42:10 1991
--- New/vdata.c Wed Mar 13 21:24:49 1991
***************
*** 160,167 ****
}
wrefresh(graph);
}
- spc();
capture(graph, 0, 1);
wclear(graph);
}
clear();
--- 160,167 ----
}
wrefresh(graph);
}
capture(graph, 0, 1);
+ spc();
wclear(graph);
}
clear();
\End\Of\Shar\
else
echo "will not over write ./patch01"
fi
if [ `wc -c ./patch01 | awk '{printf $1}'` -ne 17713 ]
then
echo `wc -c ./patch01 | awk '{print "Got " $1 ", Expected " 17713}'`
fi
if `test ! -s ./README.PATCH`
then
echo "writing ./README.PATCH"
cat > ./README.PATCH << '\End\Of\Shar\'
This patch will bring the original, untouched version of Chemtab 2.01
up to Chemtab 2.02. This is officially patch #1. It fixes a few things
which previously went untested (oops..). Please apply it as soon as you get
it.
Changes:
TRANSCRIPT define can be removed without error messages
ReGIS define can be removed without error messages
Program will now prompt you on some questions according to #defines
Makefile modified - no longer a library (graphlib.a)
- Jim
(yes there are probably bound to be more patches.. but this is all I could
find. You MAY have to tweak your Makefile to work for your system.)
\End\Of\Shar\
else
echo "will not over write ./README.PATCH"
fi
if [ `wc -c ./README.PATCH | awk '{printf $1}'` -ne 630 ]
then
echo `wc -c ./README.PATCH | awk '{print "Got " $1 ", Expected " 630}'`
fi
echo "Finished archive 1 of 1"
exit
exit 0 # Just in case...