diff -Naur --exclude Makefile --exclude info wfdb-10.4.22/app/rxr.c wfdb-10.4.23/app/rxr.c --- wfdb-10.4.22/app/rxr.c 2008-03-31 12:02:27.000000000 -0400 +++ wfdb-10.4.23/app/rxr.c 2009-08-07 10:00:48.000000000 -0400 @@ -1,9 +1,9 @@ /* file: rxr.c G. Moody 16 August 1989 - Last revised: 31 March 2008 + Last revised: 7 August 2009 ------------------------------------------------------------------------------- rxr: ANSI/AAMI-standard run-by-run annotation file comparator -Copyright (C) 1989-2008 George B. Moody +Copyright (C) 1989-2009 George B. Moody This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -260,7 +260,7 @@ } if (getann(a, &tempann) < 0) { if (run_length[a] > 0) - annot[a].anntyp = NORMAL; + annot[a].anntyp = UNKNOWN; else goflag = 0; } diff -Naur --exclude Makefile --exclude info wfdb-10.4.22/app/wrann.c wfdb-10.4.23/app/wrann.c --- wfdb-10.4.22/app/wrann.c 2009-07-15 12:08:07.000000000 -0400 +++ wfdb-10.4.23/app/wrann.c 2009-08-06 14:56:35.000000000 -0400 @@ -1,5 +1,5 @@ /* file wrann.c G. Moody 6 July 1983 - Last revised: 15 July 2009 + Last revised: 6 August 2009 ------------------------------------------------------------------------------- wrann: Translate an ASCII file in 'rdann' output format to an annotation file @@ -95,6 +95,8 @@ exit(2); while (fgets(line, sizeof(line), stdin) != NULL) { static char a[256], *ap; + int auxlen; + p = line+9; if (line[0] == '[') while (*p != ']') @@ -111,10 +113,27 @@ else annot.time = tm; annot.subtyp = sub; annot.chan = ch; annot.num = nm; - if (ap = strchr(p+1, '\t')) { /* look for aux string after tab */ - strncpy(a+1, ap+1, sizeof(a)-2); /* leave room for count and null */ - *a = strlen(a+1) - 1; /* set byte count (excluding newline) */ - a[*a+1] = '\0'; /* replace trailing newline with null */ + /* If annstr does not contain a recognizable mnemonic, write a NOTE + annotation and put annstr at the beginning of the aux field. */ + if (annot.anntyp == NOTQRS) + annot.anntyp = NOTE; + else + *annstr = '\0'; + if (ap = strchr(p+1, '\t')) { /* check if auxinfo at end of line */ + if (strlen(annstr) + strlen(ap) + 2 > sizeof(a)) + ap[sizeof(a)-strlen(annstr)-3] = '\0'; + else + ap[strlen(ap)-1] = '\0'; /* else discard trailing newline */ + } + /* Create an aux string if needed. */ + if (*annstr || ap) { + if (*annstr && ap) + sprintf(a+1, "%s %s\0", annstr, ap+1); + else if (*annstr) + sprintf(a+1, "%s\0", annstr); + else + sprintf(a+1, "%s\0", ap+1); + *a = strlen(a+1); annot.aux = a; } else diff -Naur --exclude Makefile --exclude info wfdb-10.4.22/conf/cygwin-slib.def wfdb-10.4.23/conf/cygwin-slib.def --- wfdb-10.4.22/conf/cygwin-slib.def 2008-11-19 16:06:38.000000000 -0500 +++ wfdb-10.4.23/conf/cygwin-slib.def 2009-07-30 10:49:12.000000000 -0400 @@ -1,5 +1,5 @@ # file: cygwin-slib.def I. Henry and G. Moody 19 November 2002 -# Last revised: 19 November 2008 +# Last revised: 30 July 2009 # This section contains settings suitable for generating a DLL (shared library) # under MS Windows using the free Cygwin/gcc ANSI C compiler, available from @@ -138,6 +138,8 @@ cp -p /usr/bin/cygz.dll $(BINDIR) ) cp $(WFDBLIB_DLLNAME) $(BINDIR) cd $(BINDIR); $(SETLPERMISSIONS) *.dll + test $(BINDIR) = $(LIBDIR) && \ + ln -sf $(BINDIR)/$(WFDBLIB_BASENAME) $(WFDBROOT)/lib lib-post-uninstall: rm -f $(LIBDIR)/$(WFDBLIB_BASENAME) diff -Naur --exclude Makefile --exclude info wfdb-10.4.22/convert/rdedfann.c wfdb-10.4.23/convert/rdedfann.c --- wfdb-10.4.22/convert/rdedfann.c 2008-04-04 14:32:07.000000000 -0400 +++ wfdb-10.4.23/convert/rdedfann.c 2009-08-06 14:44:43.000000000 -0400 @@ -1,9 +1,9 @@ /* file: rdedfann.c G. Moody 14 March 2008 - Last revised: 4 April 2008 + Last revised: 6 August 2009 ------------------------------------------------------------------------------- rdedfann: Print annotations from an EDF+ file -Copyright (C) 2008 George B. Moody +Copyright (C) 2009 George B. Moody This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -45,7 +45,7 @@ { char *record = NULL, *prog_name(); int aindex = 0, alen = 0, framelen = 0; - int highres = 0, i, nsig, s, vflag = 0; + int i, nsig, s, vflag = 0; WFDB_Sample *frame; WFDB_Siginfo *si; void help(); @@ -83,6 +83,7 @@ help(); exit(1); } + setgvmode(WFDB_HIGHRES); if ((nsig = isigopen(record, NULL, 0)) <= 0) exit(2); if ((si = malloc(nsig * sizeof(WFDB_Siginfo))) == NULL) { (void)fprintf(stderr, "%s: insufficient memory\n", pname); @@ -186,8 +187,12 @@ case 4: /* annot just ended, there may be another */ if (text[0]) { /* the annotation was not empty -- output it */ long t = (long)(atof(onset) * sfreq + 0.5); - printf("%s %7ld%6s%5d%5d%5d", - mstimstr(t), t, text, 0, 0, 0); + + /* replace whitespace with '_' */ + for (textp = text; *textp; textp++) + if (*textp == ' ' || *textp == '\t') *textp = '_'; + printf("%s %7ld %5s%5d%5d%5d", + t ? mstimstr(t) : " 0:00.000", t, text, 0, 0, 0); if (duration[0]) printf("\tduration: %s", duration); printf("\n"); } diff -Naur --exclude Makefile --exclude info wfdb-10.4.22/doc/wag-src/a2m.1 wfdb-10.4.23/doc/wag-src/a2m.1 --- wfdb-10.4.22/doc/wag-src/a2m.1 2008-07-23 14:58:16.000000000 -0400 +++ wfdb-10.4.23/doc/wag-src/a2m.1 2009-08-10 09:35:33.000000000 -0400 @@ -88,7 +88,7 @@ If the .ecg files are not in the current directory, give their full pathnames. The output files are always written to the current directory, so be sure that the current directory is writeable (it -should not be the DVD) and that has sufficient free space (roughly +should not be the DVD) and that it has sufficient free space (roughly 8 Mb per long version record, or 1.6 MB per short version record). If the DVD is accessible as \fB/media/dvd/\fR, the command diff -Naur --exclude Makefile --exclude info wfdb-10.4.22/doc/wpg-src/README wfdb-10.4.23/doc/wpg-src/README --- wfdb-10.4.22/doc/wpg-src/README 2002-10-26 04:57:11.000000000 -0400 +++ wfdb-10.4.23/doc/wpg-src/README 2009-08-10 10:23:02.000000000 -0400 @@ -11,7 +11,7 @@ WFDB Programmer's Guide printed copy 'make wpg-book'(requires troff, texi2dvi, dvips, and a printer) Windows help 'make wpg.hlp' (requires makertf and hcrtf) - HTML 'make wpg.html'(requires texi2html and perl) + HTML 'make wpg.html'(requires texi2html* and perl) info 'make wpg.info'(requires makeinfo or GNU emacs) PDF 'make wpg.pdf' (requires texi2dvi) PostScript 'make wpg.ps' (requires texi2dvi and dvips) @@ -19,6 +19,7 @@ All of these, with the exception of printed copies, can be downloaded from PhysioNet (look in http://www.physionet.org/physiotools/manuals.shtml). +* texi2html-1.82 (included in Fedora 11) fails; texi2html-1.78 works. The following files will be found in this directory: diff -Naur --exclude Makefile --exclude info wfdb-10.4.22/doc/wpg-src/wpg0.tex wfdb-10.4.23/doc/wpg-src/wpg0.tex --- wfdb-10.4.22/doc/wpg-src/wpg0.tex 2009-07-28 19:25:09.000000000 -0400 +++ wfdb-10.4.23/doc/wpg-src/wpg0.tex 2009-08-10 09:33:09.000000000 -0400 @@ -510,49 +510,62 @@ WFDB Software Package distribution, for information on any more recent changes that may not be described here. -@unnumberedsubsec Changes in version 10.4.22 +@unnumberedsubsec Changes in version 10.4.23 (10 August 2009) + +Several changes in @file{lib/signal.c} eliminate unintended interactions that +occurred in previous versions between the input modes that can be +selected using @code{setgvmode()}. The effects of these interactions were +first observed in newly written code; existing WFDB applications were +apparently unaffected. + +On Cygwin/Windows, the WFDB library is now installed in both @file{/usr/bin} +and @file{/usr/lib}, to simplify building user applications that use the WFDB +library and to simplify running compiled WFDB applications outside of +the Cygwin environment. + +@unnumberedsubsec Changes in version 10.4.22 (28 July 2009) When reading multifrequency records in WFDB_LOWRES mode, invalid sample values occurring in signals that need to be decimated were not -always handled properly in WFDB library function getvec(), resulting +always handled properly in WFDB library function @code{getvec()}, resulting in spurious artifacts during intervals that contained a mixture of valid and invalid samples. This bug has been corrected; thanks to Omar Abdala for a report that brought this problem to light. -A declaration for WFDB library function findsig has been added to wfdb.h. -Thanks to Thomas Heldt for reporting a warning that resulted from its -omission in previous versions. +A declaration for WFDB library function @code{findsig()} has been added +to @file{wfdb.h}. Thanks to Thomas Heldt for reporting a warning that +resulted from its omission in previous versions. -@unnumberedsubsec Changes in version 10.4.21 +@unnumberedsubsec Changes in version 10.4.21 (14 May 2009) -Changes in lib/Makefile.tpl were needed in order to pass configuration -constants to the functions added to wfdbio.c in 10.4.20, but were +Changes in @file{lib/Makefile.tpl} were needed in order to pass configuration +constants to the functions added to @file{lib/wfdbio.c} in 10.4.20, but were omitted from that release; they have been included in this version. -@unnumberedsubsec Changes in version 10.4.20 +@unnumberedsubsec Changes in version 10.4.20 (4 May 2009) -Several new functions have been added to lib/wfdbio.c, to make +Several new functions have been added to @file{lib/wfdbio.c}, to make configuration constants accessible at run time; these are needed by the WFDB Toolkit for Matlab. (WFDB library version 10.4.19 was identical to version 10.4.18.) -@unnumberedsubsec Changes in version 10.4.18 +@unnumberedsubsec Changes in version 10.4.18 (15 March 2009) The WFDB library no longer reports spurious checksum errors when reading EDF files, which don't have checksums. -@unnumberedsubsec Changes in version 10.4.17 +@unnumberedsubsec Changes in version 10.4.17 (5 March 2009) Internal WFDB library function @code{wfdb_checkname} now allows hyphens (@code{-}) within record and annotator names. -@unnumberedsubsec Changes in version 10.4.16 +@unnumberedsubsec Changes in version 10.4.16 (3 March 2009) WFDB library function @code{strtim} now rounds rather than truncating when the sampling frequency is not an integer. -@unnumberedsubsec Changes in version 10.4.15 +@unnumberedsubsec Changes in version 10.4.15 (26 February 2009) WFDB library function @code{mstimstr} now outputs time to the nearest millisecond, rather than truncating its calculation to the next lowest number @@ -561,7 +574,7 @@ A new WFDB library function, @code{wfdbputprolog}, can write a prolog at the beginning of a signal file. WFDB applications ignore embedded prologs. -@unnumberedsubsec Changes in version 10.4.14 +@unnumberedsubsec Changes in version 10.4.14 (23 February 2009) WFDB library function @code{setwfdb()} now exports the WFDB library environment variables (@code{WFDB}, @code{WFDBCAL}, @@ -575,7 +588,7 @@ Abdala and Dan Scott for reporting the problem and help in identifying its cause. -@unnumberedsubsec Changes in version 10.4.13 +@unnumberedsubsec Changes in version 10.4.13 (16 February 2009) A new WFDB library function, @code{tnextvec()}, finds the next valid sample from a chosen signal, occurring at or after a specified time. This @@ -596,7 +609,7 @@ precision as a result of converting them to and from strings should almost never be observable. -@unnumberedsubsec Changes in version 10.4.12 +@unnumberedsubsec Changes in version 10.4.12 (20 January 2009) The rule for sorting annotations within a file has been changed to allow a much larger number of simultaneous annotations (i.e., annotations in a given @@ -631,14 +644,14 @@ (WFDB library version 10.4.11 was identical to version 10.4.10.) -@unnumberedsubsec Changes in version 10.4.10 +@unnumberedsubsec Changes in version 10.4.10 (31 October 2008) EDF digital maximum and minimum values are now read properly in 64-bit builds; previous versions had a bug in @code{edfparse} (an internal WFDB library function defined in @file{lib/signal.c}) that did not appear in 32-bit builds. Thanks to Joe Mietus for reporting the problem. -@unnumberedsubsec Changes in version 10.4.9 +@unnumberedsubsec Changes in version 10.4.9 (10 October 2008) The WFDB library once again correctly interprets a hyphen (@code{-}) (used in place of a record name, annotator name, signal file name, @@ -650,13 +663,13 @@ (WFDB library version 10.4.8 was identical to version 10.4.7.) -@unnumberedsubsec Changes in version 10.4.7 +@unnumberedsubsec Changes in version 10.4.7 (15 July 2008) Yinqi Zhang reported and contributed a fix for a memory leak in @code{make_vsd()} (an internal WFDB library function defined in @file{signal.c}). -@unnumberedsubsec Changes in version 10.4.6 +@unnumberedsubsec Changes in version 10.4.6 (9 April 2008) The WFDB functions @code{setafreq()} and @code{getafreq()} (for setting and getting the time resolution of newly-created output @@ -688,7 +701,7 @@ properly. (Previous versions passed NULL strings to @code{strcmp()}, with undesirable results.) -@unnumberedsubsec Changes in version 10.4.5 +@unnumberedsubsec Changes in version 10.4.5 (6 February 2008) Bob Farrell and Tony Ricke chased down and provided fixes for memory leaks in several WFDB library functions, and also provided revisions to permit @@ -733,20 +746,20 @@ (WFDB library versions 10.4.3 and 10.4.4 were identical to version 10.4.2.) -@unnumberedsubsec Changes in version 10.4.2 +@unnumberedsubsec Changes in version 10.4.2 (4 May 2006) Mathias Gruber reported a line in wfdbio.c that used void pointer arithmetic (permitted as an extension by gcc but not allowed by ANSI/ISO C or most other C compilers). This operation has been replaced by ANSI/ISO C-conformant code. -@unnumberedsubsec Changes in version 10.4.1 +@unnumberedsubsec Changes in version 10.4.1 (6 April 2006) A bug caused incorrect output from WFDB library function strtim() when called with the argument "i", following use of setifreq() to change the effective sampling frequency, resulting in incorrect output from example 10 in the WFDB Programmer's Guide. This has now been corrected. -@unnumberedsubsec Changes in version 10.4.0 +@unnumberedsubsec Changes in version 10.4.0 (2 March 2006) Version 10.4.0 and later versions of the WFDB library are intended to be compiled using ANSI/ISO C (and C++) compilers only; previous @@ -791,7 +804,7 @@ previous version always began processing the input at sample 0, regardless of start time specified in its argument list. -@unnumberedsubsec Changes in version 10.3.17 +@unnumberedsubsec Changes in version 10.3.17 (20 August 2005) This version is the first to support reading variable-layout records (multi-segment records in which the number, arrangement, gains, and baselines @@ -819,7 +832,7 @@ since these occur only when the input level falls below the working range of the analog-to-digital converter. -@unnumberedsubsec Changes in version 10.3.16 +@unnumberedsubsec Changes in version 10.3.16 (13 June 2005) Benjamin Moody has added an interface between the WFDB library and @code{libcurl} as an alternative to the existing @code{libwww} interface, and @@ -837,7 +850,7 @@ @file{malloc.h}, @file{stdlib.h}, and @file{string.h}, were made to eliminate warnings from gcc 4.x. -@unnumberedsubsec Changes in version 10.3.15 +@unnumberedsubsec Changes in version 10.3.15 (31 January 2005) Rules for generating the binary tarball for MS-Windows have been fixed so that the Cygwin DLLs are now included with correct @@ -847,14 +860,14 @@ step if SELinux is enabled (as under Fedora Core 2 and later); this has been incorporated into @file{conf/linux-slib.def}. -@unnumberedsubsec Changes in version 10.3.14 +@unnumberedsubsec Changes in version 10.3.14 (29 December 2004) Guido Muesch reported that @code{getspf()} did not always return correct results if the frame frequency does not have an exact representation as a double precision floating point number. This problem has now been corrected. -@unnumberedsubsec Changes in version 10.3.13 +@unnumberedsubsec Changes in version 10.3.13 (5 May 2004) Using an indirect WFDB path (i.e., setting the WFDB environment variable to a value such as @samp{@@FILE}, where @samp{FILE} contains the @@ -862,7 +875,7 @@ 10.3.12; it now works again, thanks to a patch contributed by Fred Geheb. -@unnumberedsubsec Changes in version 10.3.12 +@unnumberedsubsec Changes in version 10.3.12 (9 March 2004) Okko Willeboordse pointed out an incompatibility between the native MS-Windows API and the ANSI/ISO C library function @code{mkdir}, which is @@ -882,7 +895,7 @@ the presentation of the 'trivial example', and in the description of @code{wfdbquit}. -@unnumberedsubsec Changes in version 10.3.11 +@unnumberedsubsec Changes in version 10.3.11 (17 October 2003) In @file{signal.c}, several bugs have been identified and fixed. Thanks to Piotr Wlodarek, who found a buffer overrun in @code{isigopen}. Also, @@ -891,14 +904,14 @@ fixed, together with a related bug that caused the value returned by @code{strtim("e")} to be calculated incorrectly in some such cases. -@unnumberedsubsec Changes in version 10.3.10 +@unnumberedsubsec Changes in version 10.3.10 (3 August 2003) In version 10.3.9, the functions @code{setannstr}, @code{setanndesc}, and @code{setecgstr} did not contain necessary checks to avoid invoking @code{strcmp} with a @code{NULL} argument. These checks have been added in version 10.3.10. Thanks to Thomas Heldt for reporting this problem. -@unnumberedsubsec Changes in version 10.3.9 +@unnumberedsubsec Changes in version 10.3.9 (16 July 2003) The WFDB library functions @code{setwfdb}, @code{setannstr}, @code{setanndesc}, and @code{setecgstr} now copy their input string @@ -915,7 +928,7 @@ @code{putinfo} returns. Thanks to Jonas Carlson for reporting this problem. -@unnumberedsubsec Changes in version 10.3.8 +@unnumberedsubsec Changes in version 10.3.8 (12 July 2003) The WFDB library function @code{setbasetime()} now properly accepts arguments specifying midnight (e.g., @samp{0:0:0}), which previous @@ -924,7 +937,7 @@ (WFDB library version 10.3.7 was identical to 10.3.6.) -@unnumberedsubsec Changes in version 10.3.6 +@unnumberedsubsec Changes in version 10.3.6 (7 April 2003) The fix applied in @code{isigclose()} in 10.3.5 was incomplete but is now (really!) fixed. Applications that use @code{sample()} should call @@ -941,7 +954,7 @@ within the WFDB NETFILES code has been improved substantially, but there may be further room for improvement. -@unnumberedsubsec Changes in version 10.3.5 +@unnumberedsubsec Changes in version 10.3.5 (31 March 2003) Fixed a bug in WFDB library function @code{isigclose()} (in @file{lib/signal.c}) that had caused @code{sample()}'s buffer to be freed @@ -951,7 +964,7 @@ (WFDB library versions 10.3.3 and 10.3.4 were identical to 10.3.2.) -@unnumberedsubsec Changes in version 10.3.2 +@unnumberedsubsec Changes in version 10.3.2 (25 February 2003) Fixed a WFDB library bug that caused annotation sorting to fail if a new header file had been written. Thanks to Winton Baker for @@ -960,7 +973,7 @@ (WFDB library version 10.3.1 was identical to 10.3.0.) -@unnumberedsubsec Changes in version 10.3.0 +@unnumberedsubsec Changes in version 10.3.0 (26 November 2002) Fixed bugs in @file{lib/signal.c} that caused improper accounting of signal group numbers when reading from two or more records at the same time (as in @@ -984,7 +997,7 @@ input was reached). For an example of the use of these functions, see @file{app/wqrs.c}. -@unnumberedsubsec Changes in version 10.2.9 +@unnumberedsubsec Changes in version 10.2.9 (27 October 2002) Fixed a bug in example 9 in this guide (introduced in version 10.2.0). @@ -997,7 +1010,7 @@ (WFDB library version 10.2.8 was identical to 10.2.7.) -@unnumberedsubsec Changes in version 10.2.7 +@unnumberedsubsec Changes in version 10.2.7 (8 August 2002) Added a workaround to @code{wfdb_fclose} (in @file{lib/wfdbio.c}) so that closing @code{stdin} after using @code{freopen} doesn't trigger a core dump. @@ -1007,7 +1020,7 @@ once again includes the correct @code{sortann} command needed to put the annotations into order. (This feature was broken by a previous revision.) -@unnumberedsubsec Changes in version 10.2.6 +@unnumberedsubsec Changes in version 10.2.6 (24 June 2002) @findex setifreq (10.2.6) @findex getifreq (10.2.6) @cindex interpolation @@ -1043,23 +1056,23 @@ Fixed a memory leak in @code{wfdb_fclose} (in @file{lib/wfdbio.h}). Thanks to Ion Gazta@~naga. -@unnumberedsubsec Changes in version 10.2.5 +@unnumberedsubsec Changes in version 10.2.5 (10 March 2002) Additions and fixes in @file{wfdbf.c} (the Fortran wrappers for the WFDB library). -@unnumberedsubsec Changes in version 10.2.4 +@unnumberedsubsec Changes in version 10.2.4 (20 December 2001) Code in @file{wfdbio.c} that required the use of the string @code{header} to identify a header file has been revised so that the standard @code{hea} is now usable for this purpose in all cases. -@unnumberedsubsec Changes in version 10.2.3 +@unnumberedsubsec Changes in version 10.2.3 (14 December 2001) Portability fixes in @file{wfdblib.h}. (WFDB library version 10.2.2 was identical to 10.2.1.) -@unnumberedsubsec Changes in version 10.2.1 +@unnumberedsubsec Changes in version 10.2.1 (16 November 2001) @cindex WFDB path Most users will no longer need to set the WFDB path explicitly, as a result @@ -1070,7 +1083,7 @@ and the environment variable @code{WFDBGVMODE} was introduced (@pxref{Annotation Order}, and @pxref{Multi-Frequency Records}, for details). -@unnumberedsubsec Changes in version 10.2.0 +@unnumberedsubsec Changes in version 10.2.0 (15 October 2001) There are no longer any fixed limits on the numbers of signals or annotation files that can be opened simultaneously, or on the number of samples per signal @@ -1121,7 +1134,7 @@ the WFDB library sources). This set of programs can be used to help verify that a newly-installed version of the WFDB library behaves properly. -@unnumberedsubsec Changes in version 10.1.6 +@unnumberedsubsec Changes in version 10.1.6 (1 August 2001) The WFDB library requires that the record name specified in the first line of a header file must match the name of the record with which the header file @@ -1129,24 +1142,24 @@ renamed header files). Version 10.1.6 requires that only the final portion of the record name (stripped of any path information) must match. -@unnumberedsubsec Changes in version 10.1.5 +@unnumberedsubsec Changes in version 10.1.5 (11 June 2000) More changes in the @file{make} description files, for Cygwin compatibility. -@unnumberedsubsec Changes in version 10.1.4 +@unnumberedsubsec Changes in version 10.1.4 (6 June 2000) The symbol @code{WFDB_NETFILES} replaces the old @code{NETFILES}. -@unnumberedsubsec Changes in version 10.1.3 +@unnumberedsubsec Changes in version 10.1.3 (26 April 2000) More changes in the @file{make} description files, to support a configuration script. -@unnumberedsubsec Changes in version 10.1.2 +@unnumberedsubsec Changes in version 10.1.2 (11 March 2000) Changes in the @file{make} description files. -@unnumberedsubsec Changes in version 10.1.1 +@unnumberedsubsec Changes in version 10.1.1 (30 January 2000) @cindex WFDB path Record names may contain (absolute or relative) path information as a prefix, @@ -1161,13 +1174,13 @@ the end of the WFDB path so that the signal file (specified as @file{100.dat} in the header file) can be found. -@unnumberedsubsec Changes in version 10.1.0 +@unnumberedsubsec Changes in version 10.1.0 (15 January 2000) @cindex NETFILES Version 10.1.0 supports a new signal file format (311), and contains numerous minor changes in the NETFILES support code introduced in 10.0.1. -@unnumberedsubsec Changes in version 10.0.1 +@unnumberedsubsec Changes in version 10.0.1 (19 November 1999) @cindex NETFILES @cindex libwww @cindex W3C libwww @@ -1208,7 +1221,7 @@ than MS-DOS used file names in the format @var{type.record}. This file name format is no longer supported. -@unnumberedsubsec Changes in version 10.0.0 +@unnumberedsubsec Changes in version 10.0.0 (25 June 1999) Beginning with version 10.0.0, the name of the library is WFDB. All earlier versions were named DB. All library symbols have been similarly diff -Naur --exclude Makefile --exclude info wfdb-10.4.22/lib/wfdb.h wfdb-10.4.23/lib/wfdb.h --- wfdb-10.4.22/lib/wfdb.h 2009-07-28 19:33:34.000000000 -0400 +++ wfdb-10.4.23/lib/wfdb.h 2009-08-10 09:43:10.000000000 -0400 @@ -33,7 +33,7 @@ /* WFDB library version. */ #define WFDB_MAJOR 10 #define WFDB_MINOR 4 -#define WFDB_RELEASE 22 +#define WFDB_RELEASE 23 #define WFDB_NETFILES 1 /* if 1, library includes code for HTTP, FTP clients */ #define WFDB_NETFILES_LIBCURL 1 diff -Naur --exclude Makefile --exclude info wfdb-10.4.22/NEWS wfdb-10.4.23/NEWS --- wfdb-10.4.22/NEWS 2009-07-28 20:20:03.000000000 -0400 +++ wfdb-10.4.23/NEWS 2009-08-10 10:49:46.000000000 -0400 @@ -1,4 +1,49 @@ -10.4.22: +10.4.23 (10 August 2009): + Several changes in lib/signal.c eliminate unintended interactions that + occurred in previous versions between the input modes that can be + selected using setgvmode(). The effects of these interactions were + first observed in newly written code; existing WFDB applications were + apparently unaffected. + + On Cygwin/Windows, the WFDB library is now installed in both /usr/bin + and /usr/lib, to simplify building user applications that use the WFDB + library and to simplify running compiled WFDB applications outside of + the Cygwin environment. + + In some cases, previous versions of WFDB application 'rxr' entered + an infinite loop and did not produce any output if one of the annotation + files being compared ended during an episode of atrial fibrillation. + Thanks to Mathias Gruber, who reported the problem and provided a test + case that made it possible to find and fix this bug. + + WFDB application 'wrann' now handles input files containing annotation + mnemonics that it does not recognize by writing the corresponding + annotations as comment annotations, with the unrecognized mnemonics + inserted at the beginning of the 'aux' fields in the output annotations. + (Previous versions of 'wrann' discarded any such input annotations.) + + WFDB application 'rdedfann' now preserves the full time resolution of + annotations it extracts from EDF+ input files, and it replaces any + whitespace in those annotations with underscores (_). Coupled with + the changes in wrann described above, it is now possible to use these + two applications to create a WFDB-compatible annotation file from the + annotations in an EDF+ file without manual intervention. + + Some recent X servers (including the Xorg 1.6.1 server included in + Fedora 11 and Ubuntu 9.04) are incompatible with the XView toolkit used + by WAVE. The symptom of incompatibility is that the X server freezes + if any XView control is activated by a mouse click. (If this happens to + you, you may be able to regain control of your X session by killing the + XView client, for example by logging in remotely, or by switching to a + text console.) The cause of the problem appears to be a broken + interaction between the X server and the XView Notifier (event + dispatcher). There are no work-arounds available at present; if you + wish to use WAVE, use an older X server. + + Also note that texi2html-1.82 (included in Fedora 11) fails to format + the WFDB Programmer's Guide as HTML; texi2html-1.78 works, however. + +10.4.22 (28 July 2009): When reading multifrequency records in WFDB_LOWRES mode, invalid sample values occurring in signals that need to be decimated were not always handled properly in WFDB library function getvec(), @@ -21,7 +66,7 @@ 'aux' strings containing embedded whitespace; this has been corrected. Thanks to Mauro Villarroel for the bug report. -10.4.21: +10.4.21 (14 May 2009): Changes in lib/Makefile.tpl were needed in order to pass configuration constants to the functions added to wfdbio.c in 10.4.20, but were omitted from that release; they have been included in this version. @@ -31,7 +76,7 @@ more convenient access to variable-layout records such as those in the MIMIC II Waveform Database. -10.4.20: +10.4.20 (4 May 2009): WFDB application 'snip' can now create excerpts of multi-segment records that preserve the segmentation of the original records. @@ -47,7 +92,7 @@ by the WFDB Toolkit for Matlab. wfdb-config.c has been rewritten to use several of these functions, and has been moved from lib to app. -10.4.19: +10.4.19 (26 March 2009): pschart and psfd now handle signal names in their command-line argument lists (following the '-s' option). @@ -55,21 +100,21 @@ of the expected size even if the input ends prematurely. Thanks to Weixiang Liu for a report that prompted this revision. -10.4.18: +10.4.18 (15 March 2009): The WFDB library no longer reports spurious checksum errors when reading EDF files, which don't have checksums. WFDB application wfdb2mat now correctly handles EDF input records, so it is now possible to use it to convert EDF to .mat format directly. -10.4.17: +10.4.17 (5 March 2009): Internal WFDB library function wfdb_checkname() now allows hyphens (-) within record and annotator names. WFDB applications xform and wfdb2mat now properly handle variable-layout multisegment input records. -10.4.16: +10.4.16 (3 March 2009): WFDB library function strtim() now rounds rather than truncating when the sampling frequency is not an integer. @@ -79,7 +124,7 @@ Bug fixes in convert/wfdb2mat. -10.4.15: +10.4.15 (26 February 2009): WFDB library function mstimstr() now outputs time to the nearest millisecond, rather than truncating its calculation to the nearest lower number of milliseconds. @@ -91,7 +136,7 @@ a WFDB-compatible signal file into a Matlab-compatible .mat file that remains readable by WFDB applications. -10.4.14: +10.4.14 (23 February 2009): WFDB library function setwfdb() now exports the WFDB library environment variables (WFDB, WFDBCAL, WFDBANNSORT, and WFDBGVMODE) on all modern platforms, so that a process started by a WFDB application @@ -106,7 +151,7 @@ A new WFDB application, wfdbtime, is convenient for use in scripts to convert among absolute and elapsed times and times in sample intervals. -10.4.13: +10.4.13 (16 February 2009): A new WFDB library function, tnextvec(), finds the next valid sample from a chosen signal, occurring at or after a specified time. This function is particularly useful when reading variable-layout @@ -132,7 +177,7 @@ tnextvec() function (see above) to search for valid samples of a signal of interest. -10.4.12: +10.4.12 (20 January 2009): The rule for sorting annotations within a file has been changed to allow a much larger number of simultaneous annotations (i.e., annotations in a given annotation file with identical 'time' fields) @@ -174,10 +219,10 @@ corrected in this release; thanks to Thomas Heldt for reporting it and providing a reproducible example of it. -10.4.11: +10.4.11 (19 November 2008): Build process improvements, especially on Cygwin and MinGW targets. -10.4.10: +10.4.10 (31 October 2008): EDF digital maximum and minimum values are now read properly in 64-bit builds; previous versions had a bug in edfparse (an internal WFDB library function defined in lib/signal.c) that did not appear in @@ -192,7 +237,7 @@ The "-f" option now works properly in ann2rr (previous versions worked only if "-t" was also provided). -10.4.9: +10.4.9 (10 October 2008): The "configure" script is now non-interactive by default. A new "-i" option selects interactive mode. @@ -208,7 +253,7 @@ in wfdb_open (an internal WFDB library function defined in lib/wfdbio.c). -10.4.8: +10.4.8 (31 July 2008): New application convert/ahaecg2mit.c converts files from the AHA DB DVD into WFDB records. (ECRI, distributors of the AHA DB, recently began shipping it on DVDs in a format incompatible with its previous @@ -218,7 +263,7 @@ POSIX rand48() and srand48() to generate dither (the POSIX functions are not universally available). -10.4.7: +10.4.7 (15 July 2008): Yinqi Zhang reported and contributed a fix for a memory leak in make_vsd() (an internal WFDB library function defined in signal.c). @@ -228,7 +273,7 @@ Applications wrsamp and xform can now add dithering to their inputs using a new -d option. -10.4.6: +10.4.6 (9 April 2008): The WFDB functions setafreq() and getafreq() (for setting and getting the time resolution of newly-created output annotation files in ticks per second) were new in version 10.4.5, but were undocumented. They @@ -277,7 +322,7 @@ supplied an example that evoked this problem, which has now been corrected. -10.4.5: +10.4.5 (6 February 2008): Bob Farrell and Tony Ricke chased down and provided fixes for memory leaks in several WFDB library functions, and also provided revisions to permit additional type checking and to avoid type mismatch warnings. @@ -329,14 +374,16 @@ in '.hea', it is assumed to be the record name of an EDF file of the same name. -10.4.4: Added 'collect.sh' script to 'conf', and 'collect' target to +10.4.4 (12 May 2006): + Added 'collect.sh' script to 'conf', and 'collect' target to 'make' template files (Makefile.tpl) to simplify creation of binary tarballs and RPMs. -10.4.3: Updated wfdb.spec (used to generate WFDB RPMs) to account for - applications with compiled-in paths. +10.4.3 (10 May 2006): + Updated wfdb.spec (used to generate WFDB RPMs) to account for + applications with compiled-in paths. -10.4.2: +10.4.2 (4 May 2006): Mathias Gruber reported a line in wfdbio.c that used void pointer arithmetic (permitted as an extension by gcc but not allowed by ANSI/ISO C or most other C compilers). This operation has been @@ -352,7 +399,7 @@ Many minor documentation updates. -10.4.1: +10.4.1 (6 April 2006): A bug caused incorrect output from WFDB library function strtim() when called with the argument "i", following use of setifreq() to change the effective sampling frequency, resulting in incorrect output @@ -364,7 +411,7 @@ partially fixed in this version, but the fix introduced another bug, which was corrected in version 10.4.5.] -10.4.0: +10.4.0 (2 March 2006): Version 10.4.0 and later versions of the WFDB library are intended to be compiled using ANSI/ISO C (and C++) compilers only; previous versions also supported the use of traditional (K&R) C compilers. The @@ -433,7 +480,7 @@ Hardware recommendations for WAVE have been updated in the WAVE User's Guide. -10.3.17: +10.3.17 (20 August 2005): The WFDB library now supports reading variable-layout records (multi-segment records in which the number, arrangement, gains, and baselines of the signals may vary from one segment to the next; @@ -494,7 +541,7 @@ and sets up the Makefiles appropriately (unless the '-m32' option is used to force 32-bit mode). -10.3.16: +10.3.16 (13 June 2005): Benjamin Moody has added an interface between the WFDB library and libcurl as an alternative to the existing libwww interface, and has updated 'configure' and conf/*.def to search for and use libcurl if @@ -522,7 +569,7 @@ MS-DOS utilities and makefiles, have been removed from this version of the WFDB Software Package. -10.3.15: +10.3.15 (31 January 2005): Rules for generating the binary tarball for MS-Windows have been fixed so that the Cygwin DLLs are now included with correct permissions. @@ -531,7 +578,7 @@ step if SELinux is enabled (as under Fedora Core 2 and later); this has been incorporated into conf/linux-slib.def. -10.3.14: +10.3.14 (29 December 2004): Use rdann's new -v option to add column headings to its standard output. @@ -557,7 +604,7 @@ related to compiling the WFDB software package and building the WFDB rpms. -10.3.13: +10.3.13 (5 May 2004): Using an indirect WFDB path (i.e., setting the WFDB environment variable to a value such as '@FILE', where FILE contains the desired path) was broken in WFDB library versions 10.3.9 through @@ -571,7 +618,7 @@ inputs. Thanks to Joe Mietus for providing sample inputs that helped in identifying and resolving these problems. -10.3.12: +10.3.12 (9 March 2004): A beta release of the WFDB_tools package is now available for testing. This package allows Matlab R13 users to use the WFDB library to read and write digitized signals and annotations such as those available @@ -641,7 +688,7 @@ The man page for xform (doc/wag-src/xform.1) now documents the -S option (thanks to Lucy Gibson for pointing out the omission). -10.3.11: +10.3.11 (17 October 2003): Isaac Henry provided a fix for 'configure' to avoid a problem that may occur in a non-standard Cygwin installation. @@ -655,7 +702,7 @@ New signal types and units have been added to the WFDB calibration database (data/wfdbcal). -10.3.10: +10.3.10 (3 August 2003): In version 10.3.9, the functions setannstr, setanndesc, and setecgstr (in lib/annot.c) did not contain necessary checks to avoid invoking strcmp with a NULL argument. These checks have been added in version @@ -667,7 +714,7 @@ WAVE now incorporates a simplified method for synchronizing multiple windows. The WAVE version number has been changed from 6.6 to 6.7. -10.3.9: +10.3.9 (16 July 2003): The WFDB library functions setwfdb, setannstr, setanndesc, and setecgstr now copy their input string arguments, so that it is no longer necessary for WFDB applications to keep these strings @@ -682,7 +729,7 @@ corrected, and putinfo output is now flushed before putinfo returns. Thanks to Jonas Carlson for reporting this problem. -10.3.8: +10.3.8 (12 July 2003): The WFDB library function setbasetime (in lib/signal.c) now properly accepts arguments specifying midnight (e.g., "0:0:0"), which previous versions rejected, and the function setheader (also in lib/signal.c) @@ -725,12 +772,12 @@ version 10.0.1 (!); the programs should work properly again, if anyone still needs to use them. -10.3.7: +10.3.7 (6 May 2003): Fixed a bug in xform, introduced in 10.3.4, that prevented xform from reading the output sampling frequency from the standard input. Thanks to Thomas Heldt for the bug report. -10.3.6: +10.3.6 (7 April 2003): The fix applied in isigclose() in 10.3.5 was incomplete but is now (really!) fixed. Applications that use sample() should call wfdbquit() to be certain that sample's buffer is freed before exiting. @@ -745,26 +792,26 @@ within the WFDB NETFILES code has been improved substantially, but there may be further room for improvement. -10.3.5: +10.3.5 (31 March 2003): Fixed a bug in WFDB library function isigclose() (in lib/signal.c) that had caused sample()'s buffer to be freed inappropriately when switching segments in a multi-segment record. Thanks to Dave Schaffer for the bug report and for a test case that illustrated the bug. -10.3.4: +10.3.4 (30 March 2003): xform now handles input and output sampling frequencies that are not exact multiples of 1 Hz. Added SRCDIR definition in configure and conf/cygwin.def. -10.3.3: +10.3.3 (20 March 2003): Fixed man page installation bug; thanks to Joe Mietus for the bug report. Updated INSTALL (installation notes). -10.3.2: +10.3.2 (25 February 2003): New applications wav2mit and mit2wav create WFDB-format records from files in the widely-used .wav audio format and vice versa. @@ -804,7 +851,7 @@ There are now separate wfdb, wfdb-devel, wfdb-app, wfdb-doc, and wfdb-wave RPMs. -10.3.1: +10.3.1 (5 December 2002): Added a -W option to ann2rr to create 2-column output containing intervals in seconds and annotation mnemonics, and modified the interval calculations to avoid accumulated roundoff error. @@ -823,7 +870,7 @@ for continuous ABP signals, which has been added to the package (see wabp). -10.3.0: +10.3.0 (26 November 2002): The WFDB Software Package has been ported to MacOS/X (Darwin), version 10.2 (the port should also work under 10.1 but this has not been tested and will not be supported). @@ -876,7 +923,7 @@ Numerous updates in the WFDB Applications Guide. -10.2.9: +10.2.9 (27 October 2002): Fixed a bug in example 9 in the WFDB Programmer's Guide (introduced in version 10.2.0). @@ -888,11 +935,11 @@ manuals for the desired page size, and added hyperlinks to the PDF version of the WFDB Programmer's Guide. -10.2.8: +10.2.8 (14 October 2002): Fixed a bug in WAVE that occasionally caused a crash when starting up; also repaired a broken link in WAVE's on-line help. -10.2.7: +10.2.7 (8 August 2002): Added a workaround to wfdb_fclose() (in lib/wfdbio.c) so that closing stdin after using freopen doesn't trigger a core dump. @@ -911,7 +958,7 @@ Numerous updates and corrections in the WFDB Applications Guide. -10.2.6: +10.2.6 (24 June 2002): Added setifreq() and getifreq() to the WFDB library. setifreq allows the caller to resample an input record at any convenient sampling frequency, using getvec() to perform xform's resampling @@ -959,7 +1006,7 @@ with NETFILES and reporting any errors, but was not counting errors in this test. -10.2.5: +10.2.5 (10 March 2002): New output format options in 'ann2rr' and 'ihr'. FreeBSD support in 'configure', new conf/freebsd* (thanks to @@ -971,11 +1018,11 @@ Removed unneeded references to wfdb/wfdb.h from waverc/wave-remote.c and waverc/wavescript.c (thanks again to Giuseppe Pagnoni). -10.2.4: +10.2.4 (20 December 2001): Bug fixes in 'pschart' and 'psfd' (vbuf was not properly initialized before its first use). -10.2.3: +10.2.3 (14 December 2001): Portability fixes in 'configure', 'install.sh', 'wave/Makefile.tpl', 'psd/hr*', 'doc/*.sh', 'lib/wfdblib.h', and 'checkpkg/*check'. @@ -997,7 +1044,7 @@ Added rules for creating WFDB source and binary RPMs to the top-level Makefile.tpl. -10.2.2: +10.2.2 (29 November 2001): WAVE can now be used to view and edit annotations for records that have no signals. @@ -1009,7 +1056,7 @@ some non-outlier data in the first few samples to be rejected incorrectly. This has now been fixed. -10.2.1: +10.2.1 (16 November 2001): Most users will no longer need to set the WFDB path explicitly, as a result of several minor changes in the default path and in the installer for the WFDB Software Package. @@ -1019,7 +1066,7 @@ Order' and 'Multi-Frequency Records', in the WFDB Programmer's Guide, for details). -10.2.0: +10.2.0 (15 October 2001): The 10.2 series differs from all earlier releases in that the WFDB library no longer imposes any fixed limits on the numbers of annotators or signals that can be open simultaneously. There is also no