Retrieve and unpack wfdb-10.2.3.tar.gz in order to get a full set of 10.2.3
files.  WARNING: If you patch your 10.2.2 tree using this file, you will not
get a complete 10.2.3 tree!

The full patch file for 10.2.2 -> 10.2.3 is over 9 Mb, much longer than the
original files, so it is not provided here.  The patches are so large because
figures for the WAVE User's Guide are now generated as needed from compressed
ppm files in 10.2.3.

This patch file includes only the changes outside of the doc tree, so that you
can easily see what else has been changed.


diff -Naur -x doc wfdb-10.2.2/MANIFEST wfdb-10.2.3/MANIFEST
--- wfdb-10.2.2/MANIFEST	Thu Nov 29 18:32:42 2001
+++ wfdb-10.2.3/MANIFEST	Fri Dec 14 14:14:14 2001
@@ -55,6 +55,7 @@
 check-manifest
 checkpkg/
 checkpkg/appcheck
+checkpkg/checkfile
 checkpkg/expected/
 checkpkg/expected/100s.a2r
 checkpkg/expected/100s.mix
@@ -125,6 +126,8 @@
 configure
 conf/linux.def
 conf/linux-slib.def
+conf/prompt-c
+conf/prompt-n
 conf/solaris.def
 conf/solaris-slib.def
 conf/version.def
@@ -200,7 +203,7 @@
 data/pipe/8x9.hea
 data/README
 data/tape/
-data/tape/102040.hea
+data/tape/10240.hea
 data/tape/1024.hea
 data/tape/4096.hea
 data/tape/512.hea
@@ -255,6 +258,8 @@
 doc/icons/up.png
 doc/ihr.1
 doc/index.ht0
+doc/info/
+doc/info/README.info
 doc/install.tex
 doc/intro.ht0
 doc/.latex2html-init
@@ -292,83 +297,10 @@
 doc/sumann.1
 doc/sumstats.1
 doc/tach.1
-doc/texi2html
-doc/texindex.c
 doc/tmac.dif
 doc/view.1
 doc/wave/
 doc/wave.1
-doc/wave/color/
-doc/wave/color/allow-edit.ps
-doc/wave/color/analysis-commands.ps
-doc/wave/color/analyze-window.ps
-doc/wave/color/annotation-template.ps
-doc/wave/color/attach-to-signals.ps
-doc/wave/color/calibrate.ps
-doc/wave/color/file-analyze.ps
-doc/wave/color/file-load.ps
-doc/wave/color/file-print.ps
-doc/wave/color/file-save.ps
-doc/wave/color/find-window.ps
-doc/wave/color/help-intro.ps
-doc/wave/color/help-topics.ps
-doc/wave/color/level-window.ps
-doc/wave/color/load-window.ps
-doc/wave/color/log-window.ps
-doc/wave/color/main-control-panel.ps
-doc/wave/color/main-window.ps
-doc/wave/color/main-with-hr.ps
-doc/wave/color/main-with-markers.ps
-doc/wave/color/netscape-new-helper.ps
-doc/wave/color/print-setup-window.ps
-doc/wave/color/scope-window.ps
-doc/wave/color/search-template.ps
-doc/wave/color/spot-help.ps
-doc/wave/color/stdev.ps
-doc/wave/color/title-with-parens.ps
-doc/wave/color/type-menu.ps
-doc/wave/color/view-window.ps
-doc/wave/color/wave-icon.ps
-doc/wave/color/wave-menu.ps
-doc/wave/grey/
-doc/wave/grey/allow-edit.ps
-doc/wave/grey/analysis-commands.ps
-doc/wave/grey/analyze-window.ps
-doc/wave/grey/annotation-template.ps
-doc/wave/grey/attach-to-signals.ps
-doc/wave/grey/calibrate.ps
-doc/wave/grey/chart1.ps
-doc/wave/grey/chart2.ps
-doc/wave/grey/file-analyze.ps
-doc/wave/grey/file-load.ps
-doc/wave/grey/file-print.ps
-doc/wave/grey/file-save.ps
-doc/wave/grey/find-window.ps
-doc/wave/grey/fulldisc.ps
-doc/wave/grey/help-intro.ps
-doc/wave/grey/help-topics.ps
-doc/wave/grey/level-window.ps
-doc/wave/grey/load-window.ps
-doc/wave/grey/log-window.ps
-doc/wave/grey/main-control-panel.ps
-doc/wave/grey/main-window.ps
-doc/wave/grey/main-with-hr.ps
-doc/wave/grey/main-with-markers.ps
-doc/wave/grey/netscape-new-helper.ps
-doc/wave/grey/noedit.ps
-doc/wave/grey/nomatch.ps
-doc/wave/grey/notice-quit.ps
-doc/wave/grey/print-setup-window.ps
-doc/wave/grey/scope-window.ps
-doc/wave/grey/search-template.ps
-doc/wave/grey/spot-help.ps
-doc/wave/grey/stdev.ps
-doc/wave/grey/system-menu.ps
-doc/wave/grey/title-with-parens.ps
-doc/wave/grey/type-menu.ps
-doc/wave/grey/view-window.ps
-doc/wave/grey/wave-icon.ps
-doc/wave/grey/wave-menu.ps
 doc/wave/misc/
 doc/wave/misc/example.xws
 doc/wave/misc/html.sty
@@ -386,14 +318,12 @@
 doc/wave/ppm/calibrate.ppm.gz
 doc/wave/ppm/file-analyze.ppm.gz
 doc/wave/ppm/file-load.ppm.gz
-doc/wave/ppm/file-print.ppm
 doc/wave/ppm/file-print.ppm.gz
 doc/wave/ppm/file-save.ppm.gz
 doc/wave/ppm/find-window.ppm.gz
 doc/wave/ppm/help-intro.ppm.gz
 doc/wave/ppm/help-topics.ppm.gz
 doc/wave/ppm/level-window.ppm.gz
-doc/wave/ppm/load-window.pnm.gz
 doc/wave/ppm/load-window.ppm.gz
 doc/wave/ppm/log-window.ppm.gz
 doc/wave/ppm/main-control-panel.ppm.gz
@@ -401,16 +331,24 @@
 doc/wave/ppm/main-with-hr.ppm.gz
 doc/wave/ppm/main-with-markers.ppm.gz
 doc/wave/ppm/netscape-new-helper.ppm.gz
+doc/wave/ppm/noedit.ppm.gz
+doc/wave/ppm/nomatch.ppm.gz
+doc/wave/ppm/notice-quit.ppm.gz
 doc/wave/ppm/print-setup-window.ppm.gz
 doc/wave/ppm/scope-window.ppm.gz
 doc/wave/ppm/search-template.ppm.gz
 doc/wave/ppm/spot-help.ppm.gz
 doc/wave/ppm/stdev.ppm.gz
+doc/wave/ppm/system-menu.ppm.gz
 doc/wave/ppm/title-with-parens.ppm.gz
 doc/wave/ppm/type-menu.ppm.gz
 doc/wave/ppm/view-window.ppm.gz
 doc/wave/ppm/wave-icon.ppm.gz
 doc/wave/ppm/wave-menu.ppm.gz
+doc/wave/ps/
+doc/wave/ps/chart1.ps
+doc/wave/ps/chart2.ps
+doc/wave/ps/fulldisc.ps
 doc/wave/scripts/
 doc/wave/scripts/dossify-html
 doc/wave/scripts/fixinfo
@@ -560,6 +498,7 @@
 wave/xview-patches
 wave/xvwave.c
 wave/xvwave.h
+wfdb-10.2.3-1.spec
 wview/
 wview/clean
 wview/ecg.ico
diff -Naur -x doc wfdb-10.2.2/Makefile wfdb-10.2.3/Makefile
--- wfdb-10.2.2/Makefile	Thu Nov 29 19:22:57 2001
+++ wfdb-10.2.3/Makefile	Fri Dec 14 14:21:46 2001
@@ -39,12 +39,12 @@
 # create source archives, type `make tarballs';  or to make a binary archive,
 # type `make bin-tarball'.  Making archives requires PGP, gzip, and GNU tar).
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	24 November 2001
+#				Last revised:	7 December 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 2
+RELEASE = 3
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -52,9 +52,9 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.2
+PACKAGE=wfdb-10.2.3
 # file: linux.def		G. Moody	31 May 2000
-#				Last revised:	5 June 2000
+#				Last revised: 13 December 2001
 # 'make' definitions for compiling the WFDB Software Package under Linux
 
 # Choose a value for WFDBROOT to determine where the WFDB Software Package will
@@ -100,6 +100,9 @@
 # library's #include <...> files.
 INCDIR = $(WFDBROOT)/include
 
+# INFODIR is the GNU info directory (optional, needed to `make info').
+INFODIR = /usr/share/info
+
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
 LIBDIR = $(WFDBROOT)/lib
@@ -222,7 +225,7 @@
 	cd wave;     $(MAKE) clean
 	cd waverc;   $(MAKE) clean
 	cd wview;    $(MAKE) -f clean
-	rm -f *~ conf/*~ config.cache */*.exe
+	rm -f *~ conf/*~ conf/prompt config.cache */*.exe
 
 # 'make config.cache': check configuration
 config.cache:
@@ -285,3 +288,14 @@
 # binaries and other installed files
 bin-tarball:	test-install
 	cd $(HOME)/wfdb-test;  tar cfvz ../$(PACKAGE)-$(ARCH).tar.gz .
+
+# 'make rpms': make source and binary RPMs
+RPMROOT=/usr/src/redhat
+RPMRELEASE=1
+
+rpms:		tarballs
+	cp -p ../$(PACKAGE).tar.gz $(RPMROOT)/SOURCES
+	cp -p $(PACKAGE)-$(RPMRELEASE).spec $(RPMROOT)/SPECS
+	rpm -ba $(PACKAGE)-$(RPMRELEASE).spec
+	mv $(RPMROOT)/RPMS/*/$(PACKAGE)-$(RPMRELEASE).*.rpm ..
+	mv $(RPMROOT)/SRPMS/$(PACKAGE)-$(RPMRELEASE).src.rpm ..
diff -Naur -x doc wfdb-10.2.2/Makefile.tpl wfdb-10.2.3/Makefile.tpl
--- wfdb-10.2.2/Makefile.tpl	Mon Nov 26 19:48:46 2001
+++ wfdb-10.2.3/Makefile.tpl	Fri Dec 14 14:33:11 2001
@@ -54,7 +54,7 @@
 	cd wave;     $(MAKE) clean
 	cd waverc;   $(MAKE) clean
 	cd wview;    $(MAKE) -f clean
-	rm -f *~ conf/*~ config.cache */*.exe
+	rm -f *~ conf/*~ conf/prompt config.cache */*.exe
 
 # 'make config.cache': check configuration
 config.cache:
@@ -74,7 +74,7 @@
 	$(MAKE) WFDBROOT=$(HOME)/wfdb-test install
 
 # 'make check': test currently installed version of the WFDB software package
-check:
+check:		config.cache
 	cd checkpkg; $(MAKE) all
 
 # Create directories for test installation if necessary.
@@ -117,3 +117,14 @@
 # binaries and other installed files
 bin-tarball:	test-install
 	cd $(HOME)/wfdb-test;  tar cfvz ../$(PACKAGE)-$(ARCH).tar.gz .
+
+# 'make rpms': make source and binary RPMs
+RPMROOT=/usr/src/redhat
+RPMRELEASE=1
+
+rpms:		tarballs
+	cp -p ../$(PACKAGE).tar.gz $(RPMROOT)/SOURCES
+	cp -p $(PACKAGE)-$(RPMRELEASE).spec $(RPMROOT)/SPECS
+	rpm -ba $(PACKAGE)-$(RPMRELEASE).spec
+	mv $(RPMROOT)/RPMS/*/$(PACKAGE)-$(RPMRELEASE).*.rpm ..
+	mv $(RPMROOT)/SRPMS/$(PACKAGE)-$(RPMRELEASE).src.rpm ..
diff -Naur -x doc wfdb-10.2.2/NEWS wfdb-10.2.3/NEWS
--- wfdb-10.2.2/NEWS	Thu Nov 29 12:38:40 2001
+++ wfdb-10.2.3/NEWS	Fri Dec 14 14:30:29 2001
@@ -1,3 +1,25 @@
+10.2.3:
+	Portability fixes in 'configure', 'install.sh', 'wave/Makefile.tpl',
+	'psd/hr*', 'doc/*.sh', 'lib/wfdblib.h', and 'checkpkg/*check'.
+
+	Updated 'checkpkg/appcheck' to use WFDBANNSORT when testing 'sortann'.
+
+	The full package is now much smaller because the figures for the
+	WAVE User's Guide are now generated as needed from compressed ppm
+	files.  Also, 'doc/texindex.c' and 'doc/texi2html' have been removed
+	from the package (these are now more widely available than when they
+	were originally included, and relatively few users need them).
+
+	Added rules for creating 'dbu.hlp' (MS-Windows help file version of
+	the WFDB Programmer's Guide) to doc/Makefile.tpl.  Updated rules for
+        generating the info version of the Programmer's Guide.
+
+	Special pipe and tape header files from 'data' are now installed
+	by default.
+
+	Added rules for creating WFDB source and binary RPMs to the top-level
+	Makefile.tpl.
+
 10.2.2:
 	WAVE can now be used to view and edit annotations for records that
 	have no signals.
diff -Naur -x doc wfdb-10.2.2/app/Makefile wfdb-10.2.3/app/Makefile
--- wfdb-10.2.2/app/Makefile	Thu Nov 29 19:22:57 2001
+++ wfdb-10.2.3/app/Makefile	Fri Dec 14 14:21:46 2001
@@ -33,12 +33,12 @@
 # type `make listing'.
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	24 November 2001
+#				Last revised:	7 December 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 2
+RELEASE = 3
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -46,9 +46,9 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.2
+PACKAGE=wfdb-10.2.3
 # file: linux.def		G. Moody	31 May 2000
-#				Last revised:	5 June 2000
+#				Last revised: 13 December 2001
 # 'make' definitions for compiling the WFDB Software Package under Linux
 
 # Choose a value for WFDBROOT to determine where the WFDB Software Package will
@@ -93,6 +93,9 @@
 # INCDIR specifies the name of a directory in which to install the WFDB
 # library's #include <...> files.
 INCDIR = $(WFDBROOT)/include
+
+# INFODIR is the GNU info directory (optional, needed to `make info').
+INFODIR = /usr/share/info
 
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
diff -Naur -x doc wfdb-10.2.2/check-manifest wfdb-10.2.3/check-manifest
--- wfdb-10.2.2/check-manifest	Tue Jul 17 11:40:25 2001
+++ wfdb-10.2.3/check-manifest	Fri Dec 14 14:19:31 2001
@@ -5,6 +5,7 @@
 mv ../sort.$$ ../${PACKAGE}-MANIFEST
 if diff MANIFEST ../${PACKAGE}-MANIFEST
 then
+  rm -f ../${PACKAGE}-MANIFEST
   cat <<EOF
 
 The contents of ${PACKAGE} match the MANIFEST -- no errors were detected.
diff -Naur -x doc wfdb-10.2.2/checkpkg/Makefile wfdb-10.2.3/checkpkg/Makefile
--- wfdb-10.2.2/checkpkg/Makefile	Thu Nov 29 19:22:57 2001
+++ wfdb-10.2.3/checkpkg/Makefile	Fri Dec 14 14:21:46 2001
@@ -31,12 +31,12 @@
 # directory).  To print a set of source listings, type `make listing'.
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	24 November 2001
+#				Last revised:	7 December 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 2
+RELEASE = 3
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -44,9 +44,9 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.2
+PACKAGE=wfdb-10.2.3
 # file: linux.def		G. Moody	31 May 2000
-#				Last revised:	5 June 2000
+#				Last revised: 13 December 2001
 # 'make' definitions for compiling the WFDB Software Package under Linux
 
 # Choose a value for WFDBROOT to determine where the WFDB Software Package will
@@ -92,6 +92,9 @@
 # library's #include <...> files.
 INCDIR = $(WFDBROOT)/include
 
+# INFODIR is the GNU info directory (optional, needed to `make info').
+INFODIR = /usr/share/info
+
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
 LIBDIR = $(WFDBROOT)/lib
@@ -162,6 +165,8 @@
 	@rm -f lcheck
 	@make lcheck	
 	@./libcheck
+	@../conf/prompt "Press <Enter> to continue ... "
+	@read a
 	@./appcheck
 
 lcheck:	lcheck.c
diff -Naur -x doc wfdb-10.2.2/checkpkg/Makefile.tpl wfdb-10.2.3/checkpkg/Makefile.tpl
--- wfdb-10.2.2/checkpkg/Makefile.tpl	Tue Sep 11 09:54:00 2001
+++ wfdb-10.2.3/checkpkg/Makefile.tpl	Tue Dec 11 12:55:26 2001
@@ -2,6 +2,8 @@
 	@rm -f lcheck
 	@make lcheck	
 	@./libcheck
+	@../conf/prompt "Press <Enter> to continue ... "
+	@read a
 	@./appcheck
 
 lcheck:	lcheck.c
diff -Naur -x doc wfdb-10.2.2/checkpkg/appcheck wfdb-10.2.3/checkpkg/appcheck
--- wfdb-10.2.2/checkpkg/appcheck	Wed Sep 12 14:33:35 2001
+++ wfdb-10.2.3/checkpkg/appcheck	Tue Dec 11 12:52:46 2001
@@ -1,5 +1,6 @@
 #!/bin/sh
 # file: appcheck		G. Moody	7 September 2001
+#                               Last revised:   11 December 2001
 #
 # This script checks the functionality of the WFDB applications in the 'app'
 # directory.
@@ -10,124 +11,215 @@
 WFDB=". ../data http://www.physionet.org/physiobank/database"
 export WFDB
 
+PASS=0
+FAIL=0
+TESTS=0
+
 echo Testing wfdbwhich ...
 F=wfdbwhich.out
 wfdbwhich 100s.atr >$F 2>&1
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing wfdbcat ...
 F=wfdbcat.out
 wfdbcat 100s.atr >$F 2>&1
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing rdann ...
 F=rdann.out
 rdann -r 100s -a atr >$F
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
- )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    cp $F wrann.in
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+    cp expected/rdann.out wrann.in
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing wrann ...
 F=100s.wra
-wrann -r 100s -a wra <rdann.out
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
-rm rdann.out
+wrann -r 100s -a wra <wrann.in
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
+rm -f wrann.in
 
 echo Testing rdsamp ...
 F=rdsamp.out
 rdsamp -r 100s -f 10 -t 11 -p -v >$F
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
- )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    cp $F wrsamp.in
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+    cp expected/rdsamp.out wrsamp.in
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing wrsamp ...
 F=100w.dat
-wrsamp -o 100w -f 2 -F 360 -x 200 1 2 <rdsamp.out
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+wrsamp -o 100w -f 2 -F 360 -x 200 1 2 <wrsamp.in
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 F=100w.hea
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
-rm rdsamp.out
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
+rm -f wrsamp.in
 
 echo Testing ann2rr ...
 F=ann2rr.out
 ann2rr -r 100s -a atr >$F
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
- )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    cp $F rr2ann.in
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+    cp expected/ann2rr.out rr2ann.in
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing rr2ann ...
 F=100s.a2r
-rr2ann -r 100s -a a2r <ann2rr.out
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
-rm ann2rr.out
+rr2ann -r 100s -a a2r <rr2ann.in
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
+rm -f rr2ann.in
 
 echo Testing sqrs ...
 F=100s.qrs
 sqrs -r 100s 2>/dev/null
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
- )
-
-echo Testing bxb ...
-F=bxb.out
-bxb -r 100s -a atr qrs -f 0 >$F 2>&1
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
-
-echo Testing rxr ...
-F=rxr.out
-rxr -r 100s -a atr qrs -f 0 >$F 2>&1
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
-
-rm 100s.qrs
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    cp $F 100s.ann
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+    cp expected/$F 100s.ann
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing ecgeval ...
 F=ecgeval.out
 ecgeval <input/ecgeval >$F 2>&1
 grep -v file: eval-qrs-mit >>$F
 grep -v file: qrs-mit-evaluation >>$F
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F eval-qrs-mit qrs-mit-evaluation bxb.out sd.out )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F eval-qrs-mit qrs-mit-evaluation bxb.out sd.out
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
+
+echo Testing bxb ...
+F=bxb.out
+bxb -r 100s -a atr ann -f 0 >$F 2>&1
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
+
+echo Testing rxr ...
+F=rxr.out
+rxr -r 100s -a atr ann -f 0 >$F 2>&1
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
+rm 100s.ann
 
 echo Testing fir ...
 fir -i 100s -n fir -f 10 -t 15 -c -1 1
 for F in fir.dat fir.hea
 do
-  diff -q $F expected &&
-   ( echo " Files $F and expected/$F match: test succeeded"
-     rm -f $F )
+  if ( ./checkfile $F )
+  then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+  else
+    FAIL=`expr $FAIL + 1`
+  fi
+  TESTS=`expr $TESTS + 1`
 done
 
 echo Testing ihr ...
 F=ihr.out
 ihr -r 100s -a atr >$F
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing mfilt ...
 mfilt -l 5 -i 100s -n mfilt -f 10 -t 15 2>/dev/null
 for F in mfilt.dat mfilt.hea
 do
-  diff -q $F expected &&
-   ( echo " Files $F and expected/$F match: test succeeded"
-     rm -f $F )
+  if ( ./checkfile $F )
+  then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+  else
+    FAIL=`expr $FAIL + 1`
+  fi
+  TESTS=`expr $TESTS + 1`
 done
 
 echo Testing pschart ...
@@ -135,108 +227,173 @@
 pschart -a atr -c "" -g -l -T Test - >$F <<EOF
 100s 10-15
 EOF
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing psfd ...
 F=psfd.ps
 psfd -a atr -c "" -g -l -T Test - >$F <<EOF
 100s 0-e
 EOF
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing sampfreq ...
 F=sampfreq.out
 sampfreq 100s >$F
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing sigamp ...
 F=sigamp.out
 sigamp -r 100s -a atr >$F
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing snip ...
 snip -i 100s -n snip -a atr -f 10 -t 15
 for F in snip.atr snip.dat snip.hea
 do
-  diff -q $F expected &&
-   ( echo " Files $F and expected/$F match: test succeeded"
-     rm -f $F )
+  if ( ./checkfile $F )
+  then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+  else
+    FAIL=`expr $FAIL + 1`
+  fi
+  TESTS=`expr $TESTS + 1`
 done
 
 echo Testing sortann ...
 rdann -r 100s -a atr -f 30 >foo
 rdann -r 100s -a atr -t 30 >>foo
-( WFDBNOSORT=1; export WFDBNOSORT; wrann -r 100s -a mix <foo 2>/dev/null )
+( WFDBANNSORT=0; export WFDBANNSORT; wrann -r 100s -a mix <foo 2>/dev/null )
 rm -f foo
 sortann -r 100s -a mix
 F=100s.mix
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing sumann ...
 F=sumann.out
 sumann -r 100s -a atr >$F
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing sumstats ...
 F=sumstats.out
 sumstats input/sumstats >$F
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing tach ...
 F=tach.out
 tach -r 100s -a atr >$F
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing wfdbcollate ...
 wfdbcollate -s 100s -o wfd -l 30 2>/dev/null
 for F in wfd*hea wfd*dat
 do
-  diff -q $F expected &&
-   ( echo " Files $F and expected/$F match: test succeeded"
-     rm -f $F )
+  if ( ./checkfile $F )
+  then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+  else
+    FAIL=`expr $FAIL + 1`
+  fi
+  TESTS=`expr $TESTS + 1`
 done
 
 echo Testing wfdbdesc ...
 F=wfdbdesc.out
 wfdbdesc 100s >$F
-diff -q $F expected &&
- ( echo " Files $F and expected/$F match: test succeeded"
-   rm -f $F )
+if ( ./checkfile $F )
+then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+else
+    FAIL=`expr $FAIL + 1`
+fi
+TESTS=`expr $TESTS + 1`
 
 echo Testing xform ...
 xform -i 100s -a atr -n 100x -o input/100x >xform-1.out 2>&1
 for F in xform-1.out 100x.atr 100x.dat 100x.hea
 do
-  diff -q $F expected &&
-   ( echo " Files $F and expected/$F match: test succeeded"
-     rm -f $F )
+  if ( ./checkfile $F )
+  then
+    PASS=`expr $PASS + 1`
+    rm -f $F
+  else
+    FAIL=`expr $FAIL + 1`
+  fi
+  TESTS=`expr $TESTS + 1`
 done
 
-grep -q "WFDB_NETFILES 1" /usr/include/wfdb/wfdb.h &&
+( grep "WFDB_NETFILES 1" /usr/include/wfdb/wfdb.h >/dev/null 2>&1 ) &&
 ( echo "Testing xform (with NETFILES) ..."
   xform -i mimicdb/237/237 -s 1 2 0 3 -f 9:19:45 -t "[22:01:23 20/07/1995]" \
    -a all -M -n xform -S input/xform >xform-2.out 2>&1
   for F in xform-2.out xform.hea xform.dat xform.all
   do
-    diff -q $F expected &&
-      ( echo " Files $F and expected/$F match: test succeeded"
-        rm -f $F )
+    if ( ./checkfile $F )
+    then
+	PASS=`expr $PASS + 1`
+	rm -f $F
+    else
+	FAIL=`expr $FAIL + 1`
+    fi
+    TESTS=`expr $TESTS + 1`
   done 
 )
 
@@ -255,3 +412,15 @@
 sqrs125
 
 EOF
+
+if [ $PASS = $TESTS ]
+then
+    echo "`basename $0`: all $TESTS tests passed."
+else
+    if [ $FAIL = 1 ]
+    then
+	echo "`basename $0`: $PASS of $TESTS tests passed, $FAIL test failed."
+    else
+	echo "`basename $0`: $PASS of $TESTS tests passed, $FAIL tests failed."
+    fi
+fi
diff -Naur -x doc wfdb-10.2.2/checkpkg/checkfile wfdb-10.2.3/checkpkg/checkfile
--- wfdb-10.2.2/checkpkg/checkfile	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.3/checkpkg/checkfile	Tue Dec 11 11:51:30 2001
@@ -0,0 +1,33 @@
+#! /bin/sh
+# file: checkfile		G. Moody	11 December 2001
+#
+# 
+#
+# This script compares FILE with the identically-named file in the 'expected'
+# directory.  It returns 0 if the files match, and 1 if there is a difference.
+# If the -v option is used, 'checkfile' prints the differences if any were
+# found; otherwise it prints a message indicating that the files match.
+
+case $# in
+ 1) ( diff $1 expected/$1 >/dev/null 2>&1 ) && exit 0
+    echo " Files $1 and expected/$1 differ: test failed"
+    exit 1 ;;
+ 2) if [ "$1" = "-v" ]
+    then
+        if ( diff $2 expected/$2 >/dev/null 2>&1 )
+	then
+	    echo " Files $2 and expected/$2 match: test succeeded"
+	    exit 0
+	else
+	    echo " Files $2 and expected/$2 differ: test failed"
+	    diff $2 expected/$2
+	    exit 1
+	fi
+    else
+	echo "usage: $0 [-v] FILE"
+	exit 1
+    fi ;;
+ *) echo "usage: $0 [-v] FILE"
+    exit 1 ;;
+esac
+
diff -Naur -x doc wfdb-10.2.2/checkpkg/expected/bxb.out wfdb-10.2.3/checkpkg/expected/bxb.out
--- wfdb-10.2.2/checkpkg/expected/bxb.out	Sun Sep  9 23:09:01 2001
+++ wfdb-10.2.3/checkpkg/expected/bxb.out	Tue Dec 11 12:52:56 2001
@@ -1,7 +1,7 @@
 bxb: (warning) nonstandard comparison selected
 Beat-by-beat comparison results for record 100s
 Reference annotator: atr
-     Test annotator: qrs
+     Test annotator: ann
 
                Algorithm
         n    v    f    q    o    x
diff -Naur -x doc wfdb-10.2.2/checkpkg/expected/lcheck.log-NETFILES wfdb-10.2.3/checkpkg/expected/lcheck.log-NETFILES
--- wfdb-10.2.2/checkpkg/expected/lcheck.log-NETFILES	Wed Nov  7 16:53:27 2001
+++ wfdb-10.2.3/checkpkg/expected/lcheck.log-NETFILES	Mon Dec 10 17:42:33 2001
@@ -26,7 +26,7 @@
 [OK]:  getann read: {N 0 0 0} at     0:08.327 (2998)
 [OK]:  iannsettime skipping backward to     0:00
 [OK]:  75 annotations read, 75 written
-[OK]:  isigopen((null), NULL, 0) succeeded
+[OK]:  isigopen(100s, NULL, 0) succeeded
 [OK]:  (at     0:00.000) getframe returned {  995,  1011}
 [OK]:  (at     0:00.002) getframe returned {  995,  1011}
 [OK]:  (at     0:00.005) getframe returned {  995,  1011}
@@ -68,7 +68,7 @@
 [OK]:  getann read: {N 0 0 0} at     0:08.327 (2998)
 [OK]:  iannsettime skipping backward to     0:00
 [OK]:  75 annotations read, 75 written
-[OK]:  isigopen((null), NULL, 0) succeeded
+[OK]:  isigopen(udb/100s, NULL, 0) succeeded
 [OK]:  (at     0:00.000) getframe returned {  995,  1011}
 [OK]:  (at     0:00.002) getframe returned {  995,  1011}
 [OK]:  (at     0:00.005) getframe returned {  995,  1011}
diff -Naur -x doc wfdb-10.2.2/checkpkg/expected/lcheck.log-no-NETFILES wfdb-10.2.3/checkpkg/expected/lcheck.log-no-NETFILES
--- wfdb-10.2.2/checkpkg/expected/lcheck.log-no-NETFILES	Wed Nov  7 16:54:02 2001
+++ wfdb-10.2.3/checkpkg/expected/lcheck.log-no-NETFILES	Mon Dec 10 17:44:27 2001
@@ -26,7 +26,7 @@
 [OK]:  getann read: {N 0 0 0} at     0:08.327 (2998)
 [OK]:  iannsettime skipping backward to     0:00
 [OK]:  75 annotations read, 75 written
-[OK]:  isigopen((null), NULL, 0) succeeded
+[OK]:  isigopen(100s, NULL, 0) succeeded
 [OK]:  (at     0:00.000) getframe returned {  995,  1011}
 [OK]:  (at     0:00.002) getframe returned {  995,  1011}
 [OK]:  (at     0:00.005) getframe returned {  995,  1011}
diff -Naur -x doc wfdb-10.2.2/checkpkg/expected/rxr.out wfdb-10.2.3/checkpkg/expected/rxr.out
--- wfdb-10.2.2/checkpkg/expected/rxr.out	Sun Sep  9 23:11:23 2001
+++ wfdb-10.2.3/checkpkg/expected/rxr.out	Tue Dec 11 12:48:02 2001
@@ -1,7 +1,7 @@
 rxr: (warning) nonstandard comparison selected
 VE run-by-run comparison results for record 100s
 Reference annotator: atr
-     Test annotator: qrs
+     Test annotator: ann
 
                Algorithm Run Length
           0    1    2    3    4    5   >5
diff -Naur -x doc wfdb-10.2.2/checkpkg/lcheck.c wfdb-10.2.3/checkpkg/lcheck.c
--- wfdb-10.2.2/checkpkg/lcheck.c	Wed Sep 12 14:21:35 2001
+++ wfdb-10.2.3/checkpkg/lcheck.c	Mon Dec 10 17:35:27 2001
@@ -317,7 +317,7 @@
     errors++;
   }
   else if (vflag)
-    printf("[OK]:  isigopen(%s, NULL, 0) succeeded\n");
+    printf("[OK]:  isigopen(%s, NULL, 0) succeeded\n", record);
 	
   /* Allocate WFDB_Siginfo structures before calling isigopen again. */
   si = calloc(n, sizeof(WFDB_Siginfo));
diff -Naur -x doc wfdb-10.2.2/checkpkg/libcheck wfdb-10.2.3/checkpkg/libcheck
--- wfdb-10.2.2/checkpkg/libcheck	Wed Sep 12 15:23:13 2001
+++ wfdb-10.2.3/checkpkg/libcheck	Tue Dec 11 12:53:41 2001
@@ -1,6 +1,6 @@
 #!/bin/sh
 # file: libcheck		G. Moody	8 September 2001
-#                               Last revised:  12 September 2001
+#                               Last revised:   11 December 2001
 #
 # This script checks the functionality of the WFDB library by comparing the
 # outputs of 'lcheck' with expected outputs.  See 'lcheck.c' for details of
@@ -18,13 +18,18 @@
   exit
 fi
 
+case $# in
+  0) VERBOSE=0 ;;
+  *) VERBOSE=1 ;;
+esac
+
 test -s Makefile || ( cd ..; ./configure )
 test -s lcheck || make lcheck
 ./lcheck -v >lcheck.log
 cp ../data/100s.atr expected/100s.chk
 cp ../data/100s.dat expected/100z.dat
 CF="lcheck.log 100s.chk 100z.dat 100z.hea"
-if grep -q "WFDB supports NETFILES" lcheck.log
+if grep "WFDB supports NETFILES" lcheck.log >/dev/null 2>&1
 then
   CF="$CF udb/100s.chk udb/100z.dat udb/100z.hea"
   cp ../data/100s.atr expected/udb/100s.chk
@@ -34,17 +39,36 @@
   cp expected/lcheck.log-no-NETFILES expected/lcheck.log
 fi
 
+PASS=0
+FAIL=0
+TESTS=0
+
 for i in $CF
 do
-    case $i in
-      *.hea) diff -q $i expected/$i &&
-	       ( echo " Files $i and expected/$i match: test succeeded"
-		 rm -f $i ) ;;
-      *) diff -q $i expected/$i &&
-	       ( echo " Files $i and expected/$i match: test succeeded"
-		 rm -f $i expected/$i ) ;;
-    esac
+    if ( ./checkfile $i )
+    then
+	PASS=`expr $PASS + 1`
+	case $i in
+	    *.hea) rm -f $i ;;
+	    *)     rm -f $i expected/$i ;;
+	esac
+    else
+	FAIL=`expr $FAIL + 1`
+    fi
+    TESTS=`expr $TESTS + 1`
 done
+
+if [ $PASS = $TESTS ]
+then
+    echo "`basename $0`: all $TESTS tests passed."
+else
+    if [ $FAIL = 1 ]
+    then
+	echo "`basename $0`: $PASS of $TESTS tests passed, $FAIL test failed."
+    else
+	echo "`basename $0`: $PASS of $TESTS tests passed, $FAIL tests failed."
+    fi
+fi
 
 # rmdir will fail if 'udb' is not empty.  This is a *feature*, not a bug --
 # don't fix it!
diff -Naur -x doc wfdb-10.2.2/conf/cygwin.def wfdb-10.2.3/conf/cygwin.def
--- wfdb-10.2.2/conf/cygwin.def	Thu Nov 29 18:31:08 2001
+++ wfdb-10.2.3/conf/cygwin.def	Thu Dec 13 22:35:53 2001
@@ -1,5 +1,5 @@
 # file: cygwin.def		G. Moody	6 June 2000
-#				Last revised:	29 November 2001
+#				Last revised: 13 December 2001
 #
 # This file contains default 'make' definitions for compiling the WFDB Software
 # Package under MS Windows using the free Cygwin/gcc ANSI C compiler, available
@@ -51,10 +51,9 @@
 # INCDIR specifies the name of a directory in which to install the WFDB
 # library's #include <...> files.
 INCDIR = $(WFDBROOT)/include
-# Note: if you have both gcc and a vendor-supplied C compiler, and if INCDIR
-# is /usr/include, CFLAGS should *not* contain -I$(INCDIR) (if it does, gcc may
-# read the wrong version of files such as stdio.h when compiling WFDB
-# applications).
+
+# INFODIR is the GNU info directory (optional, needed to `make info').
+INFODIR = /usr/info
 
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
diff -Naur -x doc wfdb-10.2.2/conf/generic.def wfdb-10.2.3/conf/generic.def
--- wfdb-10.2.2/conf/generic.def	Tue Jun  6 23:56:29 2000
+++ wfdb-10.2.3/conf/generic.def	Thu Dec 13 23:00:41 2001
@@ -1,5 +1,5 @@
 # file: generic.def		G. Moody	31 May 2000
-#				Last revised:	6 June 2000
+#				Last revised: 13 December 2001
 # This file contains default 'make' definitions for compiling the WFDB Software
 # Package under versions of UNIX that are not otherwise recognized by
 # 'configure'.
@@ -56,6 +56,13 @@
 # is /usr/include, CFLAGS should *not* contain -I$(INCDIR) (if it does, gcc may
 # read the wrong version of files such as stdio.h when compiling WFDB
 # applications).
+
+# INFODIR is the GNU info directory (optional, needed to `make info').  One of
+# the following definitions should be correct.
+INFODIR = /usr/info
+# INFODIR = /usr/local/info
+# INFODIR = /usr/local/emacs/info
+# INFODIR = /usr/share/info
 
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
diff -Naur -x doc wfdb-10.2.2/conf/hpux.def wfdb-10.2.3/conf/hpux.def
--- wfdb-10.2.2/conf/hpux.def	Mon Jun  5 06:18:05 2000
+++ wfdb-10.2.3/conf/hpux.def	Thu Dec 13 23:01:21 2001
@@ -1,5 +1,5 @@
 # file: hpux.def		G. Moody	31 May 2000
-#				Last revised:	5 June 2000
+#				Last revised: 13 December 2001
 # 'make' definitions for compiling the WFDB library under HP-UX
 
 # Choose a value for WFDBROOT to determine where the WFDB Software Package will
@@ -48,6 +48,13 @@
 # is /usr/include, CFLAGS (below) should *not* contain -I$(INCDIR) (if it does,
 # gcc may read the wrong version of files such as stdio.h when compiling WFDB
 # applications).
+
+# INFODIR is the GNU info directory (optional, needed to `make info').  One of
+# the following definitions should be correct.
+INFODIR = /usr/info
+# INFODIR = /usr/local/info
+# INFODIR = /usr/local/emacs/info
+# INFODIR = /usr/share/info
 
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
diff -Naur -x doc wfdb-10.2.2/conf/linux-slib.def wfdb-10.2.3/conf/linux-slib.def
--- wfdb-10.2.2/conf/linux-slib.def	Mon Jun  5 06:15:28 2000
+++ wfdb-10.2.3/conf/linux-slib.def	Thu Dec 13 13:00:59 2001
@@ -1,5 +1,5 @@
 # file: linux-slib.def		G. Moody	31 May 2000
-#                               Last revised:	5 June 2000
+#                               Last revised: 13 December 2001
 # This section contains settings suitable for generating an ELF-format shared
 # library under Linux.
 
@@ -84,7 +84,7 @@
 
 # SETLPERMISSIONS is the command needed to make the WFDB library usable by
 # programs linked to it.
-SETLPERMISSIONS = chmod 644
+SETLPERMISSIONS = chmod 755
 
 # `make' (with no target specified) will be equivalent to `make all'.
 make-all:	all
diff -Naur -x doc wfdb-10.2.2/conf/linux.def wfdb-10.2.3/conf/linux.def
--- wfdb-10.2.2/conf/linux.def	Mon Jun  5 06:13:01 2000
+++ wfdb-10.2.3/conf/linux.def	Thu Dec 13 22:58:40 2001
@@ -1,5 +1,5 @@
 # file: linux.def		G. Moody	31 May 2000
-#				Last revised:	5 June 2000
+#				Last revised: 13 December 2001
 # 'make' definitions for compiling the WFDB Software Package under Linux
 
 # Choose a value for WFDBROOT to determine where the WFDB Software Package will
@@ -44,6 +44,9 @@
 # INCDIR specifies the name of a directory in which to install the WFDB
 # library's #include <...> files.
 INCDIR = $(WFDBROOT)/include
+
+# INFODIR is the GNU info directory (optional, needed to `make info').
+INFODIR = /usr/share/info
 
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
diff -Naur -x doc wfdb-10.2.2/conf/prompt-c wfdb-10.2.3/conf/prompt-c
--- wfdb-10.2.2/conf/prompt-c	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.3/conf/prompt-c	Mon Dec 10 15:32:19 2001
@@ -0,0 +1,4 @@
+#! /bin/sh
+
+echo $* "\\c"
+
diff -Naur -x doc wfdb-10.2.2/conf/prompt-n wfdb-10.2.3/conf/prompt-n
--- wfdb-10.2.2/conf/prompt-n	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.3/conf/prompt-n	Mon Dec 10 15:31:30 2001
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+echo -n $*
diff -Naur -x doc wfdb-10.2.2/conf/solaris.def wfdb-10.2.3/conf/solaris.def
--- wfdb-10.2.2/conf/solaris.def	Mon Jun  5 06:16:25 2000
+++ wfdb-10.2.3/conf/solaris.def	Thu Dec 13 23:05:10 2001
@@ -1,5 +1,5 @@
 # file: solaris.def		G. Moody	31 May 2000
-#				Last revised:	5 June 2000
+#				Last revised: 13 December 2001
 # 'make' definitions for compiling the WFDB Software Package under Solaris
 
 # Choose a value for WFDBROOT to determine where the WFDB Software Package will
@@ -49,6 +49,9 @@
 # is /usr/include, CFLAGS should *not* contain -I$(INCDIR) (if it does, gcc may
 # read the wrong version of files such as stdio.h when compiling WFDB
 # applications).
+
+# INFODIR is the GNU info directory (optional, needed to `make info').
+INFODIR = /usr/local/info
 
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
diff -Naur -x doc wfdb-10.2.2/conf/version.def wfdb-10.2.3/conf/version.def
--- wfdb-10.2.2/conf/version.def	Sat Nov 24 21:51:19 2001
+++ wfdb-10.2.3/conf/version.def	Fri Dec  7 22:42:14 2001
@@ -1,10 +1,10 @@
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	24 November 2001
+#				Last revised:	7 December 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 2
+RELEASE = 3
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
diff -Naur -x doc wfdb-10.2.2/configure wfdb-10.2.3/configure
--- wfdb-10.2.2/configure	Thu Nov 29 18:32:27 2001
+++ wfdb-10.2.3/configure	Thu Dec 13 23:05:04 2001
@@ -1,6 +1,6 @@
 #! /bin/sh
 # file: configure             G. Moody               24 May 2000
-#                             Last revised:          29 May 2001
+#                             Last revised:        13 December 2001
 # Configuration script for the WFDB Software Package
 
 # This script was not generated using 'autoconf'.  If you can implement
@@ -12,9 +12,20 @@
 OS=`uname`
 echo "Configuring the WFDB software package for $OS."
 
+echo "Checking the echo command ..."
+echo -n >echo.out
+if [ -s echo.out ]
+then
+ln -sf prompt-c conf/prompt
+else
+ln -sf prompt-n conf/prompt
+fi
+rm echo.out
+
 cp conf/version.def conf/site.def
-echo -n "PACKAGE=" >>conf/site.def
-basename `pwd` >>conf/site.def
+PWD=`pwd`
+PACKAGE=`basename $PWD`
+echo "PACKAGE=$PACKAGE" >>conf/site.def
 
 cp /dev/null conf/site-slib.def
 case `uname` in
@@ -44,7 +55,7 @@
     echo
     echo "The WFDB library may be compiled as a static library or as a"
     echo "dynamically loaded (shared) library (the default).  Type S for a"
-    echo -n "static library, or D for a dynamically loaded library: "
+    conf/prompt "static library, or D for a dynamically loaded library: "
     read LIBTYPE
     case x$LIBTYPE in
        xS*|xs*) cp /dev/null conf/site-slib.def
@@ -60,7 +71,7 @@
 		echo "libraries only may cause compilation to fail if your"
 		echo "system does not have a complete set of static libraries."
 		echo "Type S to link to static libraries only, or D to link to"
-		echo -n "dynamically loaded libraries where available: "
+		conf/prompt "dynamically loaded libraries where available: "
 		read SYSLIBS
 		case x$SYSLIBS in
 		   xS*|xs*) sed "s/LDFLAGS = -L/LDFLAGS = -static -L/" \
@@ -110,7 +121,7 @@
 DIR=
 while [ x$DIR = x ]
 do
-  echo -n "Choose a location, or press <Enter> to install in /usr: "
+  conf/prompt "Choose a location, or press <Enter> to install in /usr: "
   read DIR
   case x$DIR in
    x/usr) ;;
@@ -141,7 +152,7 @@
                echo "  LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:$DIR/lib"
                echo "  export LD_LIBRARY_PATH" ;;
           esac
-          echo -n "Press <Enter> to continue: "
+          conf/prompt "Press <Enter> to continue: "
           read A
       fi ;;
    *) DIR=
@@ -187,7 +198,7 @@
 else
     cat lib/Makefile.top conf/site.def lib/Makefile.tpl >lib/Makefile
 fi
-for D in app checkpkg convert data doc examples fortran psd wave wave-doc waverc .
+for D in app checkpkg convert data doc examples fortran psd wave waverc .
 do
    if [ -s $D/Makefile.top ]
    then
diff -Naur -x doc wfdb-10.2.2/convert/Makefile wfdb-10.2.3/convert/Makefile
--- wfdb-10.2.2/convert/Makefile	Thu Nov 29 19:22:57 2001
+++ wfdb-10.2.3/convert/Makefile	Fri Dec 14 14:21:46 2001
@@ -33,12 +33,12 @@
 # type `make listing'.
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	24 November 2001
+#				Last revised:	7 December 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 2
+RELEASE = 3
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -46,9 +46,9 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.2
+PACKAGE=wfdb-10.2.3
 # file: linux.def		G. Moody	31 May 2000
-#				Last revised:	5 June 2000
+#				Last revised: 13 December 2001
 # 'make' definitions for compiling the WFDB Software Package under Linux
 
 # Choose a value for WFDBROOT to determine where the WFDB Software Package will
@@ -93,6 +93,9 @@
 # INCDIR specifies the name of a directory in which to install the WFDB
 # library's #include <...> files.
 INCDIR = $(WFDBROOT)/include
+
+# INFODIR is the GNU info directory (optional, needed to `make info').
+INFODIR = /usr/share/info
 
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
diff -Naur -x doc wfdb-10.2.2/data/Makefile wfdb-10.2.3/data/Makefile
--- wfdb-10.2.2/data/Makefile	Thu Nov 29 19:22:57 2001
+++ wfdb-10.2.3/data/Makefile	Fri Dec 14 14:21:46 2001
@@ -33,12 +33,12 @@
 # listing'.
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	24 November 2001
+#				Last revised:	7 December 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 2
+RELEASE = 3
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -46,9 +46,9 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.2
+PACKAGE=wfdb-10.2.3
 # file: linux.def		G. Moody	31 May 2000
-#				Last revised:	5 June 2000
+#				Last revised: 13 December 2001
 # 'make' definitions for compiling the WFDB Software Package under Linux
 
 # Choose a value for WFDBROOT to determine where the WFDB Software Package will
@@ -94,6 +94,9 @@
 # library's #include <...> files.
 INCDIR = $(WFDBROOT)/include
 
+# INFODIR is the GNU info directory (optional, needed to `make info').
+INFODIR = /usr/share/info
+
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
 LIBDIR = $(WFDBROOT)/lib
@@ -160,8 +163,8 @@
 lib-post-uninstall:
 	echo "Nothing to be done for lib-post-uninstall"
 # _____________________________________________________________________________
-# file: Makefile.tpl		G. Moody		23 May 2000
-#				Last revised:		5 June 2000
+# file: Makefile.tpl		G. Moody	  23 May 2000
+#				Last revised:	13 December 2001
 # This section of the Makefile should not need to be changed.
 
 DBFILES = 100s.dat 100s.atr *.hea *list wfdbcal
@@ -169,16 +172,24 @@
 all:
 	@echo Nothing to be made in `pwd`.
 
-install:	$(DBDIR)
+install:	$(DBDIR) $(DBDIR)/pipe $(DBDIR)/tape
 	cp $(DBFILES) $(DBDIR)
+	cp pipe/* $(DBDIR)/pipe
+	cp tape/* $(DBDIR)/tape
 	-cd $(DBDIR); $(SETPERMISSIONS) $(DBFILES)
 	-cd $(DBDIR); ln -sf wfdbcal dbcal
+	-cd $(DBDIR)/pipe; $(SETPERMISSIONS) *
+	-cd $(DBDIR)/tape; $(SETPERMISSIONS) *
 
 uninstall:
 	../uninstall.sh $(DBDIR) $(DBFILES) dbcal
 
 $(DBDIR):
 	mkdir $(DBDIR); $(SETDPERMISSIONS) $(DBDIR)
+$(DBDIR)/pipe:
+	mkdir $(DBDIR)/pipe; $(SETDPERMISSIONS) $(DBDIR)/pipe
+$(DBDIR)/tape:
+	mkdir $(DBDIR)/tape; $(SETDPERMISSIONS) $(DBDIR)/tape
 
 listing:
 	$(PRINT) README Makefile makefile.dos
diff -Naur -x doc wfdb-10.2.2/data/Makefile.tpl wfdb-10.2.3/data/Makefile.tpl
--- wfdb-10.2.2/data/Makefile.tpl	Wed Jun  7 16:49:01 2000
+++ wfdb-10.2.3/data/Makefile.tpl	Thu Dec 13 14:11:32 2001
@@ -1,5 +1,5 @@
-# file: Makefile.tpl		G. Moody		23 May 2000
-#				Last revised:		5 June 2000
+# file: Makefile.tpl		G. Moody	  23 May 2000
+#				Last revised:	13 December 2001
 # This section of the Makefile should not need to be changed.
 
 DBFILES = 100s.dat 100s.atr *.hea *list wfdbcal
@@ -7,16 +7,24 @@
 all:
 	@echo Nothing to be made in `pwd`.
 
-install:	$(DBDIR)
+install:	$(DBDIR) $(DBDIR)/pipe $(DBDIR)/tape
 	cp $(DBFILES) $(DBDIR)
+	cp pipe/* $(DBDIR)/pipe
+	cp tape/* $(DBDIR)/tape
 	-cd $(DBDIR); $(SETPERMISSIONS) $(DBFILES)
 	-cd $(DBDIR); ln -sf wfdbcal dbcal
+	-cd $(DBDIR)/pipe; $(SETPERMISSIONS) *
+	-cd $(DBDIR)/tape; $(SETPERMISSIONS) *
 
 uninstall:
 	../uninstall.sh $(DBDIR) $(DBFILES) dbcal
 
 $(DBDIR):
 	mkdir $(DBDIR); $(SETDPERMISSIONS) $(DBDIR)
+$(DBDIR)/pipe:
+	mkdir $(DBDIR)/pipe; $(SETDPERMISSIONS) $(DBDIR)/pipe
+$(DBDIR)/tape:
+	mkdir $(DBDIR)/tape; $(SETDPERMISSIONS) $(DBDIR)/tape
 
 listing:
 	$(PRINT) README Makefile makefile.dos
diff -Naur -x doc wfdb-10.2.2/data/tape/102040.hea wfdb-10.2.3/data/tape/102040.hea
--- wfdb-10.2.2/data/tape/102040.hea	Wed Nov  7 11:31:14 2001
+++ wfdb-10.2.3/data/tape/102040.hea	Wed Dec 31 19:00:00 1969
@@ -1,6 +0,0 @@
-# Use this record on a UNIX system to read directly from a 9-track tape with
-# 10240-byte blocks.
-
-10240 2 250
-/dev/rmt0 16 0 12 0 0 0 10240
-/dev/rmt0 16 0 12 0 0 0 10240
diff -Naur -x doc wfdb-10.2.2/data/tape/10240.hea wfdb-10.2.3/data/tape/10240.hea
--- wfdb-10.2.2/data/tape/10240.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.3/data/tape/10240.hea	Wed Nov  7 11:31:14 2001
@@ -0,0 +1,6 @@
+# Use this record on a UNIX system to read directly from a 9-track tape with
+# 10240-byte blocks.
+
+10240 2 250
+/dev/rmt0 16 0 12 0 0 0 10240
+/dev/rmt0 16 0 12 0 0 0 10240
diff -Naur -x doc wfdb-10.2.2/examples/Makefile wfdb-10.2.3/examples/Makefile
--- wfdb-10.2.2/examples/Makefile	Thu Nov 29 19:22:57 2001
+++ wfdb-10.2.3/examples/Makefile	Fri Dec 14 14:21:46 2001
@@ -34,12 +34,12 @@
 # `make clean' to remove them.
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	24 November 2001
+#				Last revised:	7 December 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 2
+RELEASE = 3
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -47,9 +47,9 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.2
+PACKAGE=wfdb-10.2.3
 # file: linux.def		G. Moody	31 May 2000
-#				Last revised:	5 June 2000
+#				Last revised: 13 December 2001
 # 'make' definitions for compiling the WFDB Software Package under Linux
 
 # Choose a value for WFDBROOT to determine where the WFDB Software Package will
@@ -94,6 +94,9 @@
 # INCDIR specifies the name of a directory in which to install the WFDB
 # library's #include <...> files.
 INCDIR = $(WFDBROOT)/include
+
+# INFODIR is the GNU info directory (optional, needed to `make info').
+INFODIR = /usr/share/info
 
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
diff -Naur -x doc wfdb-10.2.2/install.sh wfdb-10.2.3/install.sh
--- wfdb-10.2.2/install.sh	Wed Jun  7 21:51:21 2000
+++ wfdb-10.2.3/install.sh	Mon Dec 10 17:01:18 2001
@@ -7,7 +7,7 @@
 esac
 
 DIR=$1
-if [ ! -e $DIR ]
+if [ ! -d $DIR ]
 then
     mkdir -p $DIR
 fi
@@ -22,11 +22,11 @@
 
 for FILE in $*
 do
-    if [ -e $FILE.exe ]
+    if [ -f $FILE.exe ]
     then
         cp -p $FILE.exe $DIR
     else
-        if [ -e $FILE ]
+        if [ -f $FILE ]
         then
 	    cp -p $FILE $DIR
         else
diff -Naur -x doc wfdb-10.2.2/lib/Makefile wfdb-10.2.3/lib/Makefile
--- wfdb-10.2.2/lib/Makefile	Thu Nov 29 19:22:57 2001
+++ wfdb-10.2.3/lib/Makefile	Fri Dec 14 14:21:46 2001
@@ -33,12 +33,12 @@
 # type `make slib'.
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	24 November 2001
+#				Last revised:	7 December 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 2
+RELEASE = 3
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -47,7 +47,7 @@
 # _____________________________________________________________________________
 
 # file: linux-slib.def		G. Moody	31 May 2000
-#                               Last revised:	5 June 2000
+#                               Last revised: 13 December 2001
 # This section contains settings suitable for generating an ELF-format shared
 # library under Linux.
 
@@ -132,7 +132,7 @@
 
 # SETLPERMISSIONS is the command needed to make the WFDB library usable by
 # programs linked to it.
-SETLPERMISSIONS = chmod 644
+SETLPERMISSIONS = chmod 755
 
 # `make' (with no target specified) will be equivalent to `make all'.
 make-all:	all
diff -Naur -x doc wfdb-10.2.2/lib/wfdb.h wfdb-10.2.3/lib/wfdb.h
--- wfdb-10.2.2/lib/wfdb.h	Thu Nov 29 19:22:57 2001
+++ wfdb-10.2.3/lib/wfdb.h	Fri Dec 14 14:21:46 2001
@@ -1,5 +1,5 @@
 /* file: wfdb.h		G. Moody	13 June 1983
-			Last revised:   29 November 2001	wfdblib 10.2.2
+			Last revised:   7 December 2001		wfdblib 10.2.3
 WFDB library type, constant, structure, and function interface definitions
 
 _______________________________________________________________________________
@@ -33,7 +33,7 @@
 /* WFDB library version. */
 #define WFDB_MAJOR   10
 #define WFDB_MINOR   2
-#define WFDB_RELEASE 2
+#define WFDB_RELEASE 3
 #define WFDB_NETFILES 1	/* if 1, library includes code for HTTP, FTP clients */
 
 /* Determine what type of compiler is being used. */
diff -Naur -x doc wfdb-10.2.2/psd/Makefile wfdb-10.2.3/psd/Makefile
--- wfdb-10.2.2/psd/Makefile	Thu Nov 29 19:22:57 2001
+++ wfdb-10.2.3/psd/Makefile	Fri Dec 14 14:21:46 2001
@@ -32,12 +32,12 @@
 # directory).
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	24 November 2001
+#				Last revised:	7 December 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 2
+RELEASE = 3
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -45,9 +45,9 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.2
+PACKAGE=wfdb-10.2.3
 # file: linux.def		G. Moody	31 May 2000
-#				Last revised:	5 June 2000
+#				Last revised: 13 December 2001
 # 'make' definitions for compiling the WFDB Software Package under Linux
 
 # Choose a value for WFDBROOT to determine where the WFDB Software Package will
@@ -93,6 +93,9 @@
 # library's #include <...> files.
 INCDIR = $(WFDBROOT)/include
 
+# INFODIR is the GNU info directory (optional, needed to `make info').
+INFODIR = /usr/share/info
+
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
 LIBDIR = $(WFDBROOT)/lib
@@ -160,7 +163,7 @@
 	echo "Nothing to be done for lib-post-uninstall"
 # _____________________________________________________________________________
 # file: Makefile.tpl		G. Moody	  24 May 2000
-#				Last revised:	29 November 2001
+#				Last revised:	13 December 2001
 # This section of the Makefile should not need to be changed.
 
 # Programs to be compiled.
diff -Naur -x doc wfdb-10.2.2/psd/Makefile.tpl wfdb-10.2.3/psd/Makefile.tpl
--- wfdb-10.2.2/psd/Makefile.tpl	Thu Nov 29 18:29:13 2001
+++ wfdb-10.2.3/psd/Makefile.tpl	Thu Dec 13 10:18:37 2001
@@ -1,5 +1,5 @@
 # file: Makefile.tpl		G. Moody	  24 May 2000
-#				Last revised:	29 November 2001
+#				Last revised:	13 December 2001
 # This section of the Makefile should not need to be changed.
 
 # Programs to be compiled.
diff -Naur -x doc wfdb-10.2.2/psd/hrfft wfdb-10.2.3/psd/hrfft
--- wfdb-10.2.2/psd/hrfft	Sun Jan 30 04:13:20 2000
+++ wfdb-10.2.3/psd/hrfft	Mon Dec 10 16:55:16 2001
@@ -1,6 +1,6 @@
 #! /bin/sh
 # file: hrfft		G. Moody	14 June 1995
-#			Last revised:    5 May 1999
+#			Last revised: 10 December 2001
 #
 # -----------------------------------------------------------------------------
 # Derive a heart rate power spectrum (using tach and fft) and plot it
@@ -42,21 +42,36 @@
 if [ x$PLOT = x ]; then
   if [ -x /usr/local/bin/plt ]; then
     PLOT=/usr/local/bin/plt
+  elif [ -x /usr/bin/plt ]; then
+    PLOT=/usr/bin/plt
   elif [ -x /usr/local/bin/plot2d ]; then
     PLOT=/usr/local/bin/plot2d
+  elif [ -x /usr/bin/plot2d ]; then
+    PLOT=/usr/bin/plot2d
   else
     echo "No plot utility found -- exiting"
     exit 1
   fi
 fi
 
+echo -n >/tmp/echo.$$
+if [ -s echo.$$ ]
+then
+   P1=""
+   P2="\\c"
+else
+   P1="-n"
+   P2=""
+fi
+rm -f /tmp/echo.$$
+
 if [ x$RECORD = x ]; then
-  echo -n "Enter the record name: "
+  echo $P1 "Enter the record name: " $P2
   read RECORD
 fi
 
 if [ x$ANNOTATOR = x ]; then
-  echo -n "Enter the annotator name: "
+  echo $P1 "Enter the annotator name: " $P2
   read ANNOTATOR
 fi
 
diff -Naur -x doc wfdb-10.2.2/psd/hrlomb wfdb-10.2.3/psd/hrlomb
--- wfdb-10.2.2/psd/hrlomb	Sun Jan 30 04:13:20 2000
+++ wfdb-10.2.3/psd/hrlomb	Mon Dec 10 16:55:01 2001
@@ -1,6 +1,6 @@
 #! /bin/sh
 # file: hrlomb		G. Moody	14 June 1995
-#			Last revised:    5 May 1999
+#			Last revised: 10 December 2001
 #
 # -----------------------------------------------------------------------------
 # Derive a heart rate power spectrum (using ihr and lomb) and plot it
@@ -39,24 +39,40 @@
   shift
 done
 
+
 if [ x$PLOT = x ]; then
   if [ -x /usr/local/bin/plt ]; then
     PLOT=/usr/local/bin/plt
+  elif [ -x /usr/bin/plt ]; then
+    PLOT=/usr/bin/plt
   elif [ -x /usr/local/bin/plot2d ]; then
     PLOT=/usr/local/bin/plot2d
+  elif [ -x /usr/bin/plot2d ]; then
+    PLOT=/usr/bin/plot2d
   else
     echo "No plot utility found -- exiting"
     exit 1
   fi
 fi
 
+echo -n >/tmp/echo.$$
+if [ -s echo.$$ ]
+then
+   P1=""
+   P2="\\c"
+else
+   P1="-n"
+   P2=""
+fi
+rm -f /tmp/echo.$$
+
 if [ x$RECORD = x ]; then
-  echo -n "Enter the record name: "
+  echo $P1 "Enter the record name: " $P2
   read RECORD
 fi
 
 if [ x$ANNOTATOR = x ]; then
-  echo -n "Enter the annotator name: "
+  echo $P1 "Enter the annotator name: " $P2
   read ANNOTATOR
 fi
 
diff -Naur -x doc wfdb-10.2.2/psd/hrmem wfdb-10.2.3/psd/hrmem
--- wfdb-10.2.2/psd/hrmem	Sun Jan 30 04:13:20 2000
+++ wfdb-10.2.3/psd/hrmem	Mon Dec 10 16:58:11 2001
@@ -1,6 +1,6 @@
 #! /bin/sh
 # file: hrmem		G. Moody	14 June 1995
-#			Last revised:    5 May 1999
+#			Last revised: 10 December 2001
 #
 # -----------------------------------------------------------------------------
 # Derive a heart rate power spectrum (using tach and memse) and plot it
@@ -42,21 +42,36 @@
 if [ x$PLOT = x ]; then
   if [ -x /usr/local/bin/plt ]; then
     PLOT=/usr/local/bin/plt
+  elif [ -x /usr/bin/plt ]; then
+    PLOT=/usr/bin/plt
   elif [ -x /usr/local/bin/plot2d ]; then
     PLOT=/usr/local/bin/plot2d
+  elif [ -x /usr/bin/plot2d ]; then
+    PLOT=/usr/bin/plot2d
   else
     echo "No plot utility found -- exiting"
     exit 1
   fi
 fi
 
+echo -n >/tmp/echo.$$
+if [ -s echo.$$ ]
+then
+   P1=""
+   P2="\\c"
+else
+   P1="-n"
+   P2=""
+fi
+rm -f /tmp/echo.$$
+
 if [ x$RECORD = x ]; then
-  echo -n "Enter the record name: "
+  echo $P1 "Enter the record name: " $P2
   read RECORD
 fi
 
 if [ x$ANNOTATOR = x ]; then
-  echo -n "Enter the annotator name: "
+  echo $P1 "Enter the annotator name: " $P2
   read ANNOTATOR
 fi
 
diff -Naur -x doc wfdb-10.2.2/psd/hrplot wfdb-10.2.3/psd/hrplot
--- wfdb-10.2.2/psd/hrplot	Fri Nov 16 00:51:19 2001
+++ wfdb-10.2.3/psd/hrplot	Mon Dec 10 16:58:05 2001
@@ -1,6 +1,6 @@
 #! /bin/sh
 # file: hrplot		G. Moody	14 June 1995
-#			Last revised:    5 May 1999
+#			Last revised: 10 December 2001
 #
 # -----------------------------------------------------------------------------
 # Derive a heart rate time series (using ihr) and plot it
@@ -42,21 +42,36 @@
 if [ x$PLOT = x ]; then
   if [ -x /usr/local/bin/plt ]; then
     PLOT=/usr/local/bin/plt
+  elif [ -x /usr/bin/plt ]; then
+    PLOT=/usr/bin/plt
   elif [ -x /usr/local/bin/plot2d ]; then
     PLOT=/usr/local/bin/plot2d
+  elif [ -x /usr/bin/plot2d ]; then
+    PLOT=/usr/bin/plot2d
   else
     echo "No plot utility found -- exiting"
     exit 1
   fi
 fi
 
+echo -n >/tmp/echo.$$
+if [ -s echo.$$ ]
+then
+   P1=""
+   P2="\\c"
+else
+   P1="-n"
+   P2=""
+fi
+rm -f /tmp/echo.$$
+
 if [ x$RECORD = x ]; then
-  echo -n "Enter the record name: "
+  echo $P1 "Enter the record name: " $P2
   read RECORD
 fi
 
 if [ x$ANNOTATOR = x ]; then
-  echo -n "Enter the annotator name: "
+  echo $P1 "Enter the annotator name: " $P2
   read ANNOTATOR
 fi
 
diff -Naur -x doc wfdb-10.2.2/wave/Makefile wfdb-10.2.3/wave/Makefile
--- wfdb-10.2.2/wave/Makefile	Thu Nov 29 19:22:57 2001
+++ wfdb-10.2.3/wave/Makefile	Fri Dec 14 14:21:46 2001
@@ -45,12 +45,12 @@
 # just type `make' (from within this directory).
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	24 November 2001
+#				Last revised:	7 December 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 2
+RELEASE = 3
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -58,9 +58,9 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.2
+PACKAGE=wfdb-10.2.3
 # file: linux.def		G. Moody	31 May 2000
-#				Last revised:	5 June 2000
+#				Last revised: 13 December 2001
 # 'make' definitions for compiling the WFDB Software Package under Linux
 
 # Choose a value for WFDBROOT to determine where the WFDB Software Package will
@@ -106,6 +106,9 @@
 # library's #include <...> files.
 INCDIR = $(WFDBROOT)/include
 
+# INFODIR is the GNU info directory (optional, needed to `make info').
+INFODIR = /usr/share/info
+
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
 LIBDIR = $(WFDBROOT)/lib
@@ -258,7 +261,7 @@
 	 sed "s%HELPDIR%$(HELPDIR)%" >wave.pro
 	$(STRIP) wave; $(SETXPERMISSIONS) wave;	../install.sh $(BINDIR) wave
 	cp $(HELPFILES) wave.hlp wave.info wave.pro demo.txt $(HELPDIR)/wave
-	-ln -s $(HELPDIR)/wave/wave.pro $(HELPDIR)/wave/news.hlp
+	-ln -sf $(HELPDIR)/wave/wave.pro $(HELPDIR)/wave/news.hlp
 	cd $(HELPDIR)/wave; $(SETPERMISSIONS) $(HELPFILES) news.hlp wave.info \
 	 wave.pro demo.txt
 	-cp wavemenu.def $(MENUDIR) && \
@@ -286,7 +289,7 @@
 	@echo "the WAVE User's Guide, by typing 'make guide'."
 	@echo "*************************************************************"
 	@echo
-	@echo -n "Press <Return> to view the manual on-screen: "
+	@../conf/prompt "Press <Return> to view the manual on-screen: "
 	@read x
 	@echo
 	@soelim wave.hl0 | more
diff -Naur -x doc wfdb-10.2.2/wave/Makefile.tpl wfdb-10.2.3/wave/Makefile.tpl
--- wfdb-10.2.2/wave/Makefile.tpl	Sat Oct 13 15:57:32 2001
+++ wfdb-10.2.3/wave/Makefile.tpl	Thu Dec 13 12:56:01 2001
@@ -84,7 +84,7 @@
 	 sed "s%HELPDIR%$(HELPDIR)%" >wave.pro
 	$(STRIP) wave; $(SETXPERMISSIONS) wave;	../install.sh $(BINDIR) wave
 	cp $(HELPFILES) wave.hlp wave.info wave.pro demo.txt $(HELPDIR)/wave
-	-ln -s $(HELPDIR)/wave/wave.pro $(HELPDIR)/wave/news.hlp
+	-ln -sf $(HELPDIR)/wave/wave.pro $(HELPDIR)/wave/news.hlp
 	cd $(HELPDIR)/wave; $(SETPERMISSIONS) $(HELPFILES) news.hlp wave.info \
 	 wave.pro demo.txt
 	-cp wavemenu.def $(MENUDIR) && \
@@ -112,7 +112,7 @@
 	@echo "the WAVE User's Guide, by typing 'make guide'."
 	@echo "*************************************************************"
 	@echo
-	@echo -n "Press <Return> to view the manual on-screen: "
+	@../conf/prompt "Press <Return> to view the manual on-screen: "
 	@read x
 	@echo
 	@soelim wave.hl0 | more
diff -Naur -x doc wfdb-10.2.2/waverc/Makefile wfdb-10.2.3/waverc/Makefile
--- wfdb-10.2.2/waverc/Makefile	Thu Nov 29 19:22:57 2001
+++ wfdb-10.2.3/waverc/Makefile	Fri Dec 14 14:21:46 2001
@@ -25,12 +25,12 @@
 # please visit PhysioNet (http://www.physionet.org/).
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	24 November 2001
+#				Last revised:	7 December 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 2
+RELEASE = 3
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -38,9 +38,9 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.2
+PACKAGE=wfdb-10.2.3
 # file: linux.def		G. Moody	31 May 2000
-#				Last revised:	5 June 2000
+#				Last revised: 13 December 2001
 # 'make' definitions for compiling the WFDB Software Package under Linux
 
 # Choose a value for WFDBROOT to determine where the WFDB Software Package will
@@ -85,6 +85,9 @@
 # INCDIR specifies the name of a directory in which to install the WFDB
 # library's #include <...> files.
 INCDIR = $(WFDBROOT)/include
+
+# INFODIR is the GNU info directory (optional, needed to `make info').
+INFODIR = /usr/share/info
 
 # LIBDIR specifies the name of a directory in which to install the WFDB
 # library.
diff -Naur -x doc wfdb-10.2.2/wfdb-10.2.3-1.spec wfdb-10.2.3/wfdb-10.2.3-1.spec
--- wfdb-10.2.2/wfdb-10.2.3-1.spec	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.3/wfdb-10.2.3-1.spec	Thu Dec 13 13:44:06 2001
@@ -0,0 +1,181 @@
+Summary: Waveform Database library and applications
+Name: wfdb
+Version: 10.2.3
+Release: 1
+Copyright: GPL
+Group: Applications/Engineering
+Source: http://www.physionet.org/physiotools/archives/wfdb-10.2.3.tar.gz
+URL: http://www.physionet.org/physiotools/wfdb.shtml
+Packager: George Moody <george@mit.edu>
+Requires: w3c-libwww >= 5.2
+Requires: w3c-libwww-devel >= 5.2
+Requires: xview >= 3.2
+Requires: xview-devel >= 3.2
+
+%description
+Applications for creating, reading, analyzing, and viewing digitized signals in
+a wide variety of formats, with optional annotations.  The WFDB library,
+included here, works together with the W3C's libwww to provide HTTP and FTP
+client support to applications that use it, such as those in this package.
+Although created for use with physiologic signals such as those available from
+PhysioBank (http://www.physionet.org/physiobank/), many of the programs in this
+package are general-purpose signal processing applications.
+
+%prep
+%setup
+PATH=$PATH:/usr/openwin/bin ./configure
+
+%build
+make
+
+%install
+make install
+
+%clean
+make clean
+
+%files
+%defattr(-,root,root)
+%doc checkpkg doc examples fortran lib/COPYING.LIB wave/anntab wave/wavemenu.def COPYING INSTALL MANIFEST NEWS README README.NETFILES
+
+/usr/bin/a2m
+/usr/bin/bxb
+/usr/bin/fft
+/usr/bin/fir
+/usr/bin/m2a
+/usr/bin/ihr
+/usr/bin/mxm
+/usr/bin/nst
+/usr/bin/rxr
+/usr/bin/ad2m
+/usr/bin/sumstats
+/usr/bin/epic
+/usr/bin/md2a
+/usr/bin/lomb
+/usr/bin/psfd
+/usr/bin/tach
+/usr/bin/snip
+/usr/bin/sqrs
+/usr/bin/wave
+/usr/bin/cshsetwfdb
+/usr/bin/wfdbdesc
+/usr/bin/sampfreq
+/usr/bin/hrfft
+/usr/bin/hrmem
+/usr/bin/log10
+/usr/bin/memse
+/usr/bin/mfilt
+/usr/bin/rdann
+/usr/bin/wrann
+/usr/bin/xform
+/usr/bin/ecgeval
+/usr/bin/edf2mit
+/usr/bin/wfdbcollate
+/usr/bin/wave-remote
+/usr/bin/setwfdb
+/usr/bin/coherence
+/usr/bin/sortann
+/usr/bin/wavescript
+/usr/bin/sqrs125
+/usr/bin/ann2rr
+/usr/bin/calsig
+/usr/bin/skewedit
+/usr/bin/hrlomb
+/usr/bin/hrplot
+/usr/bin/makeid
+/usr/bin/mrgann
+/usr/bin/plot2d
+/usr/bin/plot3d
+/usr/bin/pscgen
+/usr/bin/readid
+/usr/bin/rdsamp
+/usr/bin/revise
+/usr/bin/rr2ann
+/usr/bin/sigamp
+/usr/bin/sumann
+/usr/bin/wrsamp
+/usr/bin/url_view
+/usr/bin/wfdbwhich
+/usr/bin/wfdbcat
+/usr/bin/plotstm
+/usr/bin/pschart
+/usr/lib/ps/pschart.pro
+/usr/lib/ps/12lead.pro
+/usr/lib/ps/psfd.pro
+/usr/lib/X11/app-defaults/Wave
+/usr/lib/wavemenu.def
+/usr/lib/libwfdb.so.10.2
+/usr/help/wave/intro.hlp
+/usr/help/wave/editing.hlp
+/usr/help/wave/resource.hlp
+/usr/help/wave/faq.hlp
+/usr/help/wave/log.hlp
+/usr/help/wave/wave.info
+/usr/help/wave/buttons.hlp
+/usr/help/wave/printing.hlp
+/usr/help/wave/wave.hlp
+/usr/help/wave/wave.pro
+/usr/help/wave/demo.txt
+/usr/help/wave/news.hlp
+/usr/help/wave/analysis.hlp
+/usr/database/8.hea
+/usr/database/ahaxlist
+/usr/database/dbcal
+/usr/database/100s.atr
+/usr/database/100s.dat
+/usr/database/100s.hea
+/usr/database/esclist
+/usr/database/mitlist
+/usr/database/dblist
+/usr/database/culist
+/usr/database/multi.hea
+/usr/database/ahalist
+/usr/database/mitxlist
+/usr/database/nstlist
+/usr/database/16.hea
+/usr/database/wfdbcal
+/usr/database/8l.hea
+/usr/database/null.hea
+/usr/database/16l.hea
+/usr/database/pipe/16x1.hea
+/usr/database/pipe/16x2.hea
+/usr/database/pipe/16x3.hea
+/usr/database/pipe/16x4.hea
+/usr/database/pipe/16x5.hea
+/usr/database/pipe/16x6.hea
+/usr/database/pipe/16x7.hea
+/usr/database/pipe/16x8.hea
+/usr/database/pipe/16x9.hea
+/usr/database/pipe/16x10.hea
+/usr/database/pipe/16x11.hea
+/usr/database/pipe/16x12.hea
+/usr/database/pipe/16x13.hea
+/usr/database/pipe/16x14.hea
+/usr/database/pipe/16x15.hea
+/usr/database/pipe/16x16.hea
+/usr/database/pipe/8x1.hea
+/usr/database/pipe/8x2.hea
+/usr/database/pipe/8x3.hea
+/usr/database/pipe/8x4.hea
+/usr/database/pipe/8x5.hea
+/usr/database/pipe/8x6.hea
+/usr/database/pipe/8x7.hea
+/usr/database/pipe/8x8.hea
+/usr/database/pipe/8x9.hea
+/usr/database/pipe/8x10.hea
+/usr/database/pipe/8x11.hea
+/usr/database/pipe/8x12.hea
+/usr/database/pipe/8x13.hea
+/usr/database/pipe/8x14.hea
+/usr/database/pipe/8x15.hea
+/usr/database/pipe/8x16.hea
+/usr/database/tape/512.hea
+/usr/database/tape/1024.hea
+/usr/database/tape/4096.hea
+/usr/database/tape/6144d.hea
+/usr/database/tape/10240.hea
+/usr/database/tape/ahatape.hea
+/usr/database/tape/mittape.hea
+/usr/include/wfdb/ecgcodes.h
+/usr/include/wfdb/wfdb.h
+/usr/include/wfdb/ecgmap.h
