# HG changeset patch # User jwe # Date 1201679047 0 # Node ID 744f522dbabef12a86d2b0c8e5b2e165c4aaa32f # Parent 0c11c6907c38598bb520db164a734711e08809a4 [project @ 2008-01-30 07:44:07 by jwe] diff -r 0c11c6907c38 -r 744f522dbabe scripts/ChangeLog --- a/scripts/ChangeLog Tue Jan 29 23:28:11 2008 +0000 +++ b/scripts/ChangeLog Wed Jan 30 07:44:07 2008 +0000 @@ -1,3 +1,7 @@ +2008-01-30 John W. Eaton + + * strings/deblank.m: Improve compatibility. + 2008-01-29 John W. Eaton * strings/str2double.m: Delete unused variable FLAG_OCTAVE. diff -r 0c11c6907c38 -r 744f522dbabe scripts/strings/deblank.m --- a/scripts/strings/deblank.m Tue Jan 29 23:28:11 2008 +0000 +++ b/scripts/strings/deblank.m Wed Jan 30 07:44:07 2008 +0000 @@ -34,13 +34,23 @@ print_usage (); endif - if (ischar (s)) + char_arg = ischar (s); + + if (char_arg || isnumeric (s)) - k = find (! isspace (s) & s != "\0"); - if (isempty (s) || isempty (k)) - s = ""; - else - s = s(:,1:ceil (max (k) / rows (s))); + if (! isempty (s)) + if (char_arg) + k = find (! isspace (s) & s != "\0"); + else + warning ("deblank: expecting character string argument") + k = find (s != 0); + endif + + if (isempty (k)) + s = resize (s, 0, 0); + else + s = s(:,1:ceil (max (k) / rows (s))); + endif endif elseif (iscell(s)) @@ -48,16 +58,29 @@ s = cellfun (@deblank, s, "UniformOutput", false); else - error ("deblank: expecting string argument"); + error ("deblank: expecting character string argument"); endif endfunction -%!assert(strcmp (deblank (" f o o "), " f o o")); +%!assert (strcmp (deblank (" f o o "), " f o o")); + +%!assert (deblank ([]), []) +%!assert (deblank ({}), {}) +%!assert (deblank (""), "") + +%!assert (deblank ([0,0,0]), []) +%!assert (deblank (' '), '') +%!assert (deblank (" "), "") + +%!assert (typeinfo (deblank (" ")), "string") +%!assert (typeinfo (deblank (' ')), "sq_string") + +%!assert (deblank ([1,2,0]), [1,2]) +%!assert (deblank ([1,2,0,32]), [1,2,0,32]) + +%!assert (deblank (int8 ([1,2,0])), int8 ([1,2])) %!error deblank (); %!error deblank ("foo", "bar"); - -%!error deblank (1); -