changeset 11796:e633fd6ed049 release-3-0-x

strtok.m: include TAB, LF, VT, FF, and CR in default set of delim characters
author John W. Eaton <jwe@octave.org>
date Mon, 04 Aug 2008 10:59:46 -0400
parents 642af2e62b1f
children 8d0795fedf4a
files scripts/ChangeLog scripts/strings/strtok.m
diffstat 2 files changed, 17 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/ChangeLog	Fri Aug 01 09:11:14 2008 +0200
+++ b/scripts/ChangeLog	Mon Aug 04 10:59:46 2008 -0400
@@ -1,3 +1,8 @@
+2008-08-04  John W. Eaton  <jwe@octave.org>
+
+	* strings/strtok.m: Include TAB, LF, VT, FF, and CR in default
+	list of delim characters.  Update tests.
+
 2008-06-11  John W. Eaton  <jwe@octave.org>
 
 	* general/rat.m: Properly initialize steps when all elements of
--- a/scripts/strings/strtok.m	Fri Aug 01 09:11:14 2008 +0200
+++ b/scripts/strings/strtok.m	Mon Aug 04 10:59:46 2008 -0400
@@ -35,7 +35,7 @@
   endif
 
   if (nargin < 2 || isempty (delim))
-    delim = " "; 
+    delim = "\t\n\v\f\r "; 
   endif
 
   if (isempty (str))
@@ -114,12 +114,12 @@
 
 %!# test the remainder for all cases
 %!test [t,r] = strtok(""); assert(r, "");
-%!test [t,r] = strtok("this"); assert(r, "");
+%!test [t,r] = strtok("this"); assert(r, char (zeros (1, 0)));
 %!test [t,r] = strtok("this "); assert(r, " ");
 %!test [t,r] = strtok("this is"); assert(r, " is");
-%!test [t,r] = strtok(" this"); assert(r, "");
+%!test [t,r] = strtok(" this"); assert(r, char (zeros (1, 0)));
 %!test [t,r] = strtok(" this "); assert(r, " ");
-%!test [t,r] = strtok(" "); assert(r, "");
+%!test [t,r] = strtok(" "); assert(r, char (zeros (1, 0)));
 
 %!# simple check with 2 and 3 delimeters
 %!assert(strtok("this is", "i "), "th");
@@ -138,3 +138,11 @@
 %!# test 'bad' string orientations
 %!assert(strtok(" this "'), "this"');   # delimiter at start and end
 %!assert(strtok(" this "',"jkl "), "this"');
+
+%!# test with TAB, LF, VT, FF, and CR
+%!test
+%! for ch = "\t\n\v\f\r"
+%!   [t, r] = strtok (cstrcat ("beg", ch, "end"));
+%!   assert (t, "beg");
+%!   assert (r, cstrcat (ch, "end"))
+%! endfor