diff -Naur --exclude Makefile --exclude info wfdb-10.4.18/app/pschart.c wfdb-10.4.19/app/pschart.c
--- wfdb-10.4.18/app/pschart.c	2009-01-16 15:21:19.000000000 -0500
+++ wfdb-10.4.19/app/pschart.c	2009-03-18 12:23:27.000000000 -0400
@@ -1,5 +1,5 @@
 /* file: pschart.c	G. Moody       15 March 1988
-			Last revised:  15 January 2009
+			Last revised:  18 March 2009
 
 -------------------------------------------------------------------------------
 pschart: Produce annotated `chart recordings' on a PostScript device
@@ -443,9 +443,10 @@
 	    break;
 	  case 's':	/* specify signals to be printed */
 	    sflag = 1;
-	    /* count the number of output signals (arguments beginning with
-	       a digit) */
-	    for (j = i+1; j<argc-1 && '0' <= *argv[j] && *argv[j] <= '9'; j++)
+	    /* count the number of output signals (arguments not beginning with
+	       a hyphen, and not including the last argument, which must be
+	       the name of the script) */
+	    for (j = i+1; j < argc-2 && *argv[j] != '-'; j++)
 		;
 	    if (j == i+1) {
 		(void)fprintf(stderr, "%s: signal list must follow -s\n",
diff -Naur --exclude Makefile --exclude info wfdb-10.4.18/app/psfd.c wfdb-10.4.19/app/psfd.c
--- wfdb-10.4.18/app/psfd.c	2009-01-07 15:01:48.000000000 -0500
+++ wfdb-10.4.19/app/psfd.c	2009-03-18 12:23:12.000000000 -0400
@@ -1,5 +1,5 @@
 /* file: psfd.c		G. Moody         9 August 1988
-			Last revised:	 7 January 2009
+			Last revised:	 18 March 2009
 
 -------------------------------------------------------------------------------
 psfd: Produces annotated full-disclosure ECG plots on a PostScript device
@@ -414,9 +414,10 @@
 	    break;
 	  case 's':	/* specify signals to be printed */
 	    sflag = 1;
-	    /* count the number of output signals (arguments beginning with
-	       a digit)*/
-	    for (j = i+1; j<argc-1 && '0' <= *argv[j] && *argv[j] <= '9'; j++)
+	    /* count the number of output signals (arguments not beginning with
+	       a hyphen, and not including the last argument, which must be
+	       the name of the script) */
+	    for (j = i+1; j < argc-2 && *argv[j] != '-'; j++)
 		;
 	    if (j == i+1) {
 		(void)fprintf(stderr, "%s: signal list must follow -s\n",
diff -Naur --exclude Makefile --exclude info wfdb-10.4.18/convert/wfdb2mat.c wfdb-10.4.19/convert/wfdb2mat.c
--- wfdb-10.4.18/convert/wfdb2mat.c	2009-03-14 16:42:51.000000000 -0400
+++ wfdb-10.4.19/convert/wfdb2mat.c	2009-03-25 09:18:17.000000000 -0400
@@ -1,5 +1,5 @@
 /* file: wfdb2mat.c	G. Moody	26 February 2009
-			Last revised:	  14 March 2009
+			Last revised:	  25 March 2009
 -------------------------------------------------------------------------------
 wfdb2mat: Convert (all or part of) a WFDB signal file to Matlab .mat format
 Copyright (C) 2009 George B. Moody
@@ -94,7 +94,7 @@
     char *matname, *orec, *p, *q, *record = NULL, *search = NULL, *prog_name();
     static char prolog[24];
     int highres = 0, i, isiglist, nisig, nosig = 0, pflag = 0, s, *sig = NULL,
-        type = 50, vflag = 0;
+        stat = 0, type = 50, vflag = 0;
     WFDB_Frequency freq;
     WFDB_Sample *vi, *vo;
     WFDB_Siginfo *si, *so;
@@ -294,16 +294,23 @@
     wfdbputprolog((char *)prolog, 24, 0);
 
     /* Copy the selected data into the .mat file. */
-    for (t = from; t < to && getvec(vi) >= 0; t++) {
+    for (t = from; t < to && stat >= 0; t++) {
+	stat = getvec(vi);
 	for (i = 0; i < nosig; i++)
 	    vo[i] = vi[sig[i]];
 	if (putvec(vo) != nosig)
 	    break;
     }
 
-    if (t != to)
-	fprintf(stderr, "%s (warning): matrix is missing final %ld columns\n",
+    /* If the input ended prematurely, pad the matrix with invalid samples. */
+    if (t != to) {
+	fprintf(stderr, "%s (warning): final %ld columns are invalid\n",
 		pname, to - t);
+	for (i = 0; i < nosig; i++)
+	    vo[i] = WFDB_INVALID_SAMPLE;
+	while (t++ < to)
+	    putvec(vo);
+    }
 
     /* Create the new header file. */
     newheader(orec);
diff -Naur --exclude Makefile --exclude info wfdb-10.4.18/lib/wfdb.h wfdb-10.4.19/lib/wfdb.h
--- wfdb-10.4.18/lib/wfdb.h	2009-03-15 08:50:05.000000000 -0400
+++ wfdb-10.4.19/lib/wfdb.h	2009-03-26 01:25:02.000000000 -0400
@@ -33,7 +33,7 @@
 /* WFDB library version. */
 #define WFDB_MAJOR   10
 #define WFDB_MINOR   4
-#define WFDB_RELEASE 18
+#define WFDB_RELEASE 19
 #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.18/NEWS wfdb-10.4.19/NEWS
--- wfdb-10.4.18/NEWS	2009-03-15 09:48:22.000000000 -0400
+++ wfdb-10.4.19/NEWS	2009-03-26 02:13:34.000000000 -0400
@@ -1,3 +1,11 @@
+10.4.19:
+	pschart and psfd now handle signal names in their command-line argument
+	lists (following the '-s' option).
+
+ 	The version of wfdb2mat included in this release generates a .mat file
+ 	of the expected size even if the input ends prematurely.  Thanks to
+ 	Weixiang Liu for a report that prompted this revision.
+
 10.4.18:
 	The WFDB library no longer reports spurious checksum errors when reading
 	EDF files, which don't have checksums.
