diff -Naur --exclude Makefile --exclude info wfdb-10.3.9/conf/version.def wfdb-10.3.10/conf/version.def --- wfdb-10.3.9/conf/version.def 2003-07-16 20:07:09.000000000 -0400 +++ wfdb-10.3.10/conf/version.def 2003-08-03 20:29:00.000000000 -0400 @@ -1,10 +1,10 @@ # file: version.def G. Moody 24 May 2000 -# Last revised: 16 July 2003 +# Last revised: 3 August 2003 # Each release of the WFDB Software Package is identified by a three-part # version number, defined here: MAJOR = 10 MINOR = 3 -RELEASE = 9 +RELEASE = 10 VERSION = $(MAJOR).$(MINOR).$(RELEASE) # RPMRELEASE can be incremented if changes are made between official @@ -16,6 +16,6 @@ VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE) # WAVEVERSION is the WAVE version number. -WAVEVERSION = 6.6 +WAVEVERSION = 6.7 # _____________________________________________________________________________ diff -Naur --exclude Makefile --exclude info wfdb-10.3.9/doc/wag-src/wag.ht0 wfdb-10.3.10/doc/wag-src/wag.ht0 --- wfdb-10.3.9/doc/wag-src/wag.ht0 2002-10-29 10:00:30.000000000 -0500 +++ wfdb-10.3.10/doc/wag-src/wag.ht0 2003-08-03 20:18:32.000000000 -0400 @@ -20,7 +20,7 @@ George B. Moody
Harvard-MIT Division of Health Sciences and Technology

-Copyright ©1980-2002 George B. Moody +Copyright ©1980-2003 George B. Moody

The most recent versions of the programs described in this guide may be freely downloaded from PhysioNet. For diff -Naur --exclude Makefile --exclude info wfdb-10.3.9/doc/wag-src/wag.tex wfdb-10.3.10/doc/wag-src/wag.tex --- wfdb-10.3.9/doc/wag-src/wag.tex 2002-10-29 15:36:11.000000000 -0500 +++ wfdb-10.3.10/doc/wag-src/wag.tex 2003-08-03 20:18:21.000000000 -0400 @@ -36,7 +36,7 @@ \pagestyle{empty} \vspace*{\fill} \noindent -Copyright \copyright 1992 -- 2002 George B. Moody +Copyright \copyright 1992 -- 2003 George B. Moody \vspace{1 in} \noindent diff -Naur --exclude Makefile --exclude info wfdb-10.3.9/doc/wpg-src/wpg0.tex wfdb-10.3.10/doc/wpg-src/wpg0.tex --- wfdb-10.3.9/doc/wpg-src/wpg0.tex 2003-07-16 22:28:51.000000000 -0400 +++ wfdb-10.3.10/doc/wpg-src/wpg0.tex 2003-08-03 20:24:19.000000000 -0400 @@ -21,7 +21,7 @@ @center Harvard-MIT Division of Health Sciences and Technology @page @vskip 0pt plus 1filll -Copyright @copyright{} 1989 -- 2002 George B. Moody +Copyright @copyright{} 1989 -- 2003 George B. Moody @sp 2 The most recent versions of the software described in this guide may be downloaded from @uref{http://www.physionet.org/}. For further @@ -488,6 +488,13 @@ WFDB Software Package distribution, for information on any more recent changes that may not be described here. +@unnumberedsubsec Changes in version 10.3.10 + +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. + @unnumberedsubsec Changes in version 10.3.9 The WFDB library functions @code{setwfdb}, @code{setannstr}, @@ -8370,8 +8377,8 @@ in even-numbered years, they are convened in North America, and in Europe in odd-numbered years. The deadline for submission of abstracts is 1 May each year. Proceedings of the conferences are published by the IEEE, and -usually appear about 3 months after the date of the conference. CinC will be -in Memphis, Tennessee in 2002, and in Thessaloniki in 2003. +usually appear about 3 months after the date of the conference. CinC +will be in Thessaloniki in 2003 and in Chicago in 2004. @item Proceedings of Computers in Cardiology (ISSN 0276-6574) @sp 1 @@ -8750,7 +8757,7 @@ George B. Moody -Copyright (C) 1989 -- 2002 George B. Moody +Copyright (C) 1989 -- 2003 George B. Moody Permission is granted to make and distribute verbatim copies of this guide provided that the copyright notice and this permission notice are diff -Naur --exclude Makefile --exclude info wfdb-10.3.9/doc/wpg-src/wpg.ht0 wfdb-10.3.10/doc/wpg-src/wpg.ht0 --- wfdb-10.3.9/doc/wpg-src/wpg.ht0 2002-07-21 23:27:15.000000000 -0400 +++ wfdb-10.3.10/doc/wpg-src/wpg.ht0 2003-08-03 20:17:16.000000000 -0400 @@ -19,7 +19,7 @@ George B. Moody
Harvard-MIT Division of Health Sciences and Technology

-Copyright ©1980-2002 George B. Moody. +Copyright ©1980-2003 George B. Moody.

The most recent versions of the software described in this guide are freely downloadable from PhysioNet. For diff -Naur --exclude Makefile --exclude info wfdb-10.3.9/doc/wug-src/wug0.tex wfdb-10.3.10/doc/wug-src/wug0.tex --- wfdb-10.3.9/doc/wug-src/wug0.tex 2003-04-02 23:11:40.000000000 -0500 +++ wfdb-10.3.10/doc/wug-src/wug0.tex 2003-08-03 20:17:06.000000000 -0400 @@ -57,7 +57,7 @@ \pagestyle{empty} \vspace*{\fill} \noindent -Copyright \copyright 1992 -- 2002 George B. Moody +Copyright \copyright 1992 -- 2003 George B. Moody \vspace{1 in} \noindent @@ -4863,16 +4863,6 @@ Microstar Laboratories, \htmladdnormallink{http://www.mstarlabs.com/).}{http://www.mstarlabs.com/} -\index{CD-ROM}\index{MIT-BIH Arrhythmia Database} -\index{European ST-T Database}\index{MIT-BIH Polysomnographic Database} -\index{MGH/MF Waveform Database} -You may also find that an existing database of digitally recorded signals may -be useful for your studies. Four such databases are currently available on -CD-ROM (the MIT-BIH Arrhythmia Database, the European ST-T Database, the -MIT-BIH Polysomnographic Database, and the MGH/MF Waveform Database), and -several more databases in this format are in preparation. These disks are -compatible with any CD-ROM drive. - Note that the \WAVE{} host \index{WAVE host@\WAVE{} host} must be able @@ -4931,6 +4921,25 @@ flash memory cards. \end{itemize} +\index{CD-ROM}\index{MIT-BIH Arrhythmia Database} \index{European ST-T +Database}\index{MIT-BIH Polysomnographic Database} \index{MGH/MF +Waveform Database} You may also find that an existing database of +digitally recorded signals may be useful for your studies. PhysioNet, at +\htmladdnormallink{http://www.physionet.org/,}{http:/www.physionet.org/}, +offers free on-line access to over 30 such databases with thousands of +recordings ranging in length from a few seconds to several days. +These include all or most of the MIT-BIH Arrhythmia Database, the +European ST-T Database, the MIT-BIH Polysomnographic Database, the +MGH/MF Waveform Database, and the Long-Term ST Database (which are +also available on CD-ROMs from their creators), and many other +databases available only via PhysioNet. \WAVE{} can read these +databases directly from PhysioNet without downloading them first (the +WFDB library, which handles reading and writing data for \WAVE{}, +contains HTTP client code that permits applications such as \WAVE{} to +read input with equal ease from local disks or remote web servers). +This is an excellent way to explore PhysioBank (PhysioNet's collection +of signal databases). + \section{About Linux} \label{sec:linux} @@ -6368,14 +6377,18 @@ and the original unfiltered signals side-by-side), another approach is to create a single header file that names the signal files for both records. It is not necessary for all signals to be in the same signal -file, or even on the same disk drive. In this case, however, the total -number of open signals must be 32 or less (see the next question). +file, or even on the same disk drive. \subsection{Can \WAVE{} open more than 32 signals in a window at once?} Yes. There is no fixed limit on the number of signals that current versions of \WAVE{} can open. Earlier versions were limited to 32 or fewer signals. +If the signal window gets to be too crowded, select a subset of +signals to be displayed by editing the signal list (in \WAVE{}'s {\sf +Analyze} window, and choose {\sf Draw: listed signals only} in the +{\sf View} window. + \subsection{Can \WAVE{} open more than one annotation file in a window at once?} No. In most cases, however, it's not really necessary to do so. diff -Naur --exclude Makefile --exclude info wfdb-10.3.9/lib/annot.c wfdb-10.3.10/lib/annot.c --- wfdb-10.3.9/lib/annot.c 2003-07-16 20:10:04.000000000 -0400 +++ wfdb-10.3.10/lib/annot.c 2003-08-03 20:13:45.000000000 -0400 @@ -1,5 +1,5 @@ /* file: annot.c G. Moody 13 April 1989 - Last revised: 16 July 2003 wfdblib 10.3.9 + Last revised: 3 August 2003 wfdblib 10.3.10 WFDB library functions for annotations _______________________________________________________________________________ @@ -694,7 +694,7 @@ char *string; { if (NOTQRS <= code && code <= ACMAX) { - if (strcmp(cstring[code], string)) { + if (cstring[code] == NULL || strcmp(cstring[code], string)) { char *p = malloc(strlen(string)+1); if (p) strcpy(cstring[code] = p, string); } @@ -746,7 +746,7 @@ char *string; { if (0 < code && code <= ACMAX) { - if (strcmp(astring[code], string)) { + if (astring[code] == NULL || strcmp(astring[code], string)) { char *p = malloc(strlen(string)+1); if (p) { strcpy(astring[code] = p, string); @@ -756,7 +756,7 @@ return (0); } else if (-ACMAX < code && code <= 0) { - if (strcmp(astring[-code], string)) { + if (astring[-code] == NULL || strcmp(astring[-code], string)) { char *p = malloc(strlen(string)+1); if (p) strcpy(astring[-code] = p, string); } @@ -835,7 +835,7 @@ char *string; { if (0 < code && code <= ACMAX) { - if (strcmp(tstring[code], string)) { + if (tstring[code] == NULL || strcmp(tstring[code], string)) { char *p = malloc(strlen(string)+1); if (p) { strcpy(tstring[code] = p, string); @@ -845,7 +845,7 @@ return (0); } else if (-ACMAX < code && code <= 0) { - if (strcmp(tstring[-code], string)) { + if (tstring[-code] == NULL || strcmp(tstring[-code], string)) { char *p = malloc(strlen(string)+1); if (p) strcpy(tstring[-code] = p, string); } diff -Naur --exclude Makefile --exclude info wfdb-10.3.9/lib/wfdb.h0 wfdb-10.3.10/lib/wfdb.h0 --- wfdb-10.3.9/lib/wfdb.h0 2003-07-16 20:07:06.000000000 -0400 +++ wfdb-10.3.10/lib/wfdb.h0 2003-08-03 20:28:04.000000000 -0400 @@ -1,5 +1,5 @@ /* file: wfdb.h G. Moody 13 June 1983 - Last revised: 16 July 2003 wfdblib 10.3.9 + Last revised: 3 August 2003 wfdblib 10.3.10 WFDB library type, constant, structure, and function interface definitions _______________________________________________________________________________ @@ -33,7 +33,7 @@ /* WFDB library version. */ #define WFDB_MAJOR 10 #define WFDB_MINOR 3 -#define WFDB_RELEASE 9 +#define WFDB_RELEASE 10 #define WFDB_NETFILES 1 /* if 1, library includes code for HTTP, FTP clients */ /* Determine what type of compiler is being used. */ diff -Naur --exclude Makefile --exclude info wfdb-10.3.9/lib/wfdbio.c wfdb-10.3.10/lib/wfdbio.c --- wfdb-10.3.9/lib/wfdbio.c 2003-07-16 21:38:30.000000000 -0400 +++ wfdb-10.3.10/lib/wfdbio.c 2003-08-03 21:11:17.000000000 -0400 @@ -562,7 +562,7 @@ (void)strcpy(t, wfdbpath); t[l++] = PSEP; /* append a path separator */ (void)strncpy(t+l, s, i); /* append the new path component */ - t[l+i+1] = '\0'; + t[l+i] = '\0'; setwfdb(t); free(t); } diff -Naur --exclude Makefile --exclude info wfdb-10.3.9/NEWS wfdb-10.3.10/NEWS --- wfdb-10.3.9/NEWS 2003-07-16 22:30:19.000000000 -0400 +++ wfdb-10.3.10/NEWS 2003-08-03 21:16:23.000000000 -0400 @@ -1,3 +1,14 @@ +10.3.10: + 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 + 10.3.10. In the internal function wfdb_addtopath (in lib/wfdbio.c), + an extra character was appended when adding a component to the WFDB + path (in version 10.3.9 only); this has also been corrected. + + 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: The WFDB library functions setwfdb, setannstr, setanndesc, and setecgstr now copy their input string arguments, so that it is diff -Naur --exclude Makefile --exclude info wfdb-10.3.9/wave/edit.c wfdb-10.3.10/wave/edit.c --- wfdb-10.3.9/wave/edit.c 2003-02-12 10:49:57.000000000 -0500 +++ wfdb-10.3.10/wave/edit.c 2003-07-24 03:16:45.000000000 -0400 @@ -1,5 +1,5 @@ /* file: edit.c G. Moody 1 May 1990 - Last revised: 12 February 2003 + Last revised: 24 July 2003 Annotation-editing functions for WAVE ------------------------------------------------------------------------------- @@ -859,23 +859,27 @@ 3. If the key is depressed, select the signal nearest the pointer, delete its first occurrence (if any) in the signal list, and return. - 4. If the middle button is down, switch the annotation + 4. If annotation editing is disabled and if this instance of + WAVE has a sync button, signal other WAVE processes to + recenter their signal windows at the time indicated by + the mouse, and return. + 5. If the middle button is down, switch the annotation template to the previous entry in the annotation template buffer. - 5. Make the annotation template popup visible. - 6. If the middle or right button is down, or if there are no + 6. Make the annotation template popup visible. + 7. If the middle or right button is down, or if there are no annotations left of the pointer, return. - 7. If annotations are shown attached to signals, and the + 8. If annotations are shown attached to signals, and the pointer is in a selection box, attach the previous annotation. - 8. If annotations are shown attached to signals, and the + 9. If annotations are shown attached to signals, and the pointer is not in a selection box, attach the closest annotation to the left of the pointer. - 9. Otherwise, find the previous group of simultaneous + 10. Otherwise, find the previous group of simultaneous annotations and attach the first annotation of that group. - 10. Recenter the display around the attached annotation, if + 11. Recenter the display around the attached annotation, if it is not currently displayed. - 11. Draw marker bars above and below the attached annotation. + 12. Draw marker bars above and below the attached annotation. */ if (event_shift_is_down(event) || event_ctrl_is_down(event) || @@ -896,6 +900,13 @@ break; } dragged = 0; + if (accept_edit == 0 && wave_ppid) { + char buf[80]; + sprintf(buf, "wave-remote -pid %d -f '%s'\n", wave_ppid, + mstimstr(-t)); + system(buf); + break; + } if (middle_down) set_prev_ann_template(); show_ann_template(); if (middle_down || right_down) break; @@ -1013,17 +1024,18 @@ /* The middle button was pressed: 1. If the left or right button is down, ignore this event. 2. Draw marker bars above and below the pointer. - 3. If the key is depressed and this instance of - WAVE has a sync button, signal other WAVE processes to - recenter their signal windows at the time indicated by - the mouse, and return. + 3. If annotation editing is disabled or if the key + is depressed, and if this instance of WAVE has a sync + button, signal other WAVE processes to recenter their + signal windows at the time indicated by the mouse, and + return. 4. If there is an attached annotation, and the pointer is outside the box, detach the annotation (erase the box). */ if (left_down || right_down || ann_template.anntyp < 0) break; middle_down = 1; bar(x, y /* ? */, 1); - if (event_ctrl_is_down(event) && wave_ppid) { + if ((accept_edit == 0 || event_ctrl_is_down(event)) && wave_ppid) { char buf[80]; sprintf(buf, "wave-remote -pid %d -f '%s'\n", wave_ppid, mstimstr(-t));