Mercurial > hg > octave-nkf
diff scripts/io/strread.m @ 19050:c32f378e08f3 stable
* strread.m: Process string escapes on single quoted format (bug #42609)
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 25 Jun 2014 17:17:38 -0400 |
parents | 35838f49e2f6 |
children | 589354cf668f 446c46af4b42 |
line wrap: on
line diff
--- a/scripts/io/strread.m +++ b/scripts/io/strread.m @@ -192,6 +192,10 @@ error ("strread: STR and FORMAT arguments must be strings"); endif + if (strcmp (typeinfo (format), "sq_string")) + format = do_string_escapes (format); + endif + ## Parse format string to compare number of conversion fields and nargout nfields = length (strfind (format, "%")) - length (strfind (format, "%*")); ## If str only has numeric fields, a (default) format ("%f") will do. @@ -985,14 +989,28 @@ %% Test #1 bug #42609 %!test -%! [a, b, c] = strread ("1 2 3\n4 5 6\n7 8 9\n", "%f %f %f\n") ; +%! [a, b, c] = strread ("1 2 3\n4 5 6\n7 8 9\n", "%f %f %f\n"); %! assert (a, [1; 4; 7]); %! assert (b, [2; 5; 8]); %! assert (c, [3; 6; 9]); %% Test #2 bug #42609 %!test -%! [a, b, c] = strread ("1 2\n3\n4 5\n6\n7 8\n9\n", "%f %f\n%f") ; +%! [a, b, c] = strread ("1 2\n3\n4 5\n6\n7 8\n9\n", "%f %f\n%f"); +%! assert (a, [1;4;7]); +%! assert (b, [2; 5; 8]); +%! assert (c, [3; 6; 9]); + +%% Test #3 bug #42609 +%!test +%! [a, b, c] = strread ("1 2 3\n4 5 6\n7 8 9\n", '%f %f %f\n'); +%! assert (a, [1; 4; 7]); +%! assert (b, [2; 5; 8]); +%! assert (c, [3; 6; 9]); + +%% Test #3 bug #42609 +%!test +%! [a, b, c] = strread ("1 2\n3\n4 5\n6\n7 8\n9\n", '%f %f\n%f'); %! assert (a, [1;4;7]); %! assert (b, [2; 5; 8]); %! assert (c, [3; 6; 9]);