diff -Naur --exclude Makefile --exclude info wfdb-10.4.16/app/xform.c wfdb-10.4.17/app/xform.c --- wfdb-10.4.16/app/xform.c 2009-01-15 11:57:27.000000000 -0500 +++ wfdb-10.4.17/app/xform.c 2009-03-04 14:12:08.000000000 -0500 @@ -1,6 +1,5 @@ /* file: xform.c G. Moody 8 December 1983 - Last revised: 7 January 2009 - + Last revised: 4 March 2009 ------------------------------------------------------------------------------- xform: Sampling frequency, amplitude, and format conversion for WFDB records Copyright (C) 1983-2009 George B. Moody @@ -401,7 +400,7 @@ format); (void)fgets(answer, sizeof(answer), ttyin); (void)sscanf(answer, "%d", &format); - for (i = 0; i < WFDB_NFMTS; i++) + for (i = 1; i < WFDB_NFMTS; i++) /* skip format[0] (= 0) */ if (format == formats[i]) break; } while (i >= WFDB_NFMTS); if (nosig > 1) { @@ -587,7 +586,7 @@ exit(2); (void)fprintf(stderr, " done\n"); - /* If an output record was specified using `-o', check that the output + /* If an output record was specified using `-o', check that the output signals are writable. Suppress warning messages about possible sampling frequency differences. */ wfdbquiet(); @@ -597,7 +596,19 @@ } wfdbverbose(); - /* If the `-n' option was specified, copy the signal descriptions from the + /* Make sure that signal file format is not 0 (putvec cannot write to + a null record). */ + for (i = 0; i < nosig; i++) { + if (dfout[i].fmt == 0) { + (void)fprintf(stderr, "%s: signal %d format cannot be 0" + " (changing to format 16)\n", pname, i); + dfout[i].fmt = 16; + reopen = 1; /* record must be (re)opened using osigfopen to make + the change effective */ + } + } + + /* If the `-n' option was specified, copy the signal descriptions from the input record header file into the WFDB_Siginfo structures for the output record (for eventual storage in the new output header file). To make the changes effective, the output signals must be (re)opened using diff -Naur --exclude Makefile --exclude info wfdb-10.4.16/doc/wpg-src/wpg0.tex wfdb-10.4.17/doc/wpg-src/wpg0.tex --- wfdb-10.4.16/doc/wpg-src/wpg0.tex 2009-02-26 19:59:46.000000000 -0500 +++ wfdb-10.4.17/doc/wpg-src/wpg0.tex 2009-03-03 12:52:08.000000000 -0500 @@ -510,6 +510,17 @@ WFDB Software Package distribution, for information on any more recent changes that may not be described here. +@unnumberedsubsec Changes in version 10.4.17 + +Internal WFDB library function @code{wfdb_checkname} now allows hyphens +(@code{-}) within record and annotator names. + +@unnumberedsubsec Changes in version 10.4.16 + +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 WFDB library function @code{mstimstr} now outputs time to the nearest diff -Naur --exclude Makefile --exclude info wfdb-10.4.16/lib/signal.c wfdb-10.4.17/lib/signal.c --- wfdb-10.4.16/lib/signal.c 2009-03-01 15:45:39.000000000 -0500 +++ wfdb-10.4.17/lib/signal.c 2009-03-04 12:46:25.000000000 -0500 @@ -1,5 +1,5 @@ /* file: signal.c G. Moody 13 April 1989 - Last revised: 26 February 2009 wfdblib 10.4.15 + Last revised: 4 March 2009 wfdblib 10.4.17 WFDB library functions for signals _______________________________________________________________________________ @@ -580,7 +580,7 @@ return (0); } -static void sigmap(WFDB_Sample *vector) +static int sigmap(WFDB_Sample *vector) { int i; double v; @@ -600,6 +600,7 @@ #endif } } + return (tspf); } /* end of code for handling variable-layout records */ @@ -785,7 +786,7 @@ hsd[0]->info.spf = 1; hsd[0]->info.fmt = 0; hsd[0]->info.nsamp = nsamples = segp->nsamp; - return (1); + return (maxhsig = 1); } return (0); } @@ -2377,7 +2378,7 @@ else /* no deskewing necessary */ stat = getskewedframe(vector); if (need_sigmap && stat > 0) - sigmap(vector); + stat = sigmap(vector); istime++; return (stat); } diff -Naur --exclude Makefile --exclude info wfdb-10.4.16/lib/wfdb.h wfdb-10.4.17/lib/wfdb.h --- wfdb-10.4.16/lib/wfdb.h 2009-03-03 07:27:43.000000000 -0500 +++ wfdb-10.4.17/lib/wfdb.h 2009-03-05 06:44:39.000000000 -0500 @@ -33,7 +33,7 @@ /* WFDB library version. */ #define WFDB_MAJOR 10 #define WFDB_MINOR 4 -#define WFDB_RELEASE 16 +#define WFDB_RELEASE 17 #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.16/lib/wfdbio.c wfdb-10.4.17/lib/wfdbio.c --- wfdb-10.4.16/lib/wfdbio.c 2009-02-18 12:43:50.000000000 -0500 +++ wfdb-10.4.17/lib/wfdbio.c 2009-03-03 12:49:16.000000000 -0500 @@ -1,5 +1,5 @@ /* file: wfdbio.c G. Moody 18 November 1988 - Last revised: 18 February 2009 wfdblib 10.4.14 + Last revised: 3 March 2009 wfdblib 10.4.17 Low-level I/O functions for the WFDB library _______________________________________________________________________________ @@ -949,13 +949,14 @@ } /* wfdb_checkname checks record and annotator names -- they must not be empty, - and they must contain only letters, digits, tildes, underscores, and + and they must contain only letters, digits, hyphens, tildes, underscores, and directory separators. */ int wfdb_checkname(char *p, char *s) { do { - if (('0' <= *p && *p <= '9') || *p == '_' || *p == '~' || *p == DSEP || + if (('0' <= *p && *p <= '9') || *p == '_' || *p == '~' || *p== '-' || + *p == DSEP || #ifdef MSDOS *p == ':' || #endif diff -Naur --exclude Makefile --exclude info wfdb-10.4.16/NEWS wfdb-10.4.17/NEWS --- wfdb-10.4.16/NEWS 2009-03-03 12:01:38.000000000 -0500 +++ wfdb-10.4.17/NEWS 2009-03-05 07:10:48.000000000 -0500 @@ -1,3 +1,10 @@ +10.4.17: + 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: WFDB library function strtim() now rounds rather than truncating when the sampling frequency is not an integer. @@ -6,7 +13,7 @@ and no longer requires the tab character preceding an aux string to occur in a specific column as did earlier versions. - Bug fixes in convert/wfdbtomat. + Bug fixes in convert/wfdb2mat. 10.4.15: WFDB library function mstimstr() now outputs time to the nearest