# HG changeset patch # User John W. Eaton # Date 1403731058 14400 # Node ID c32f378e08f371abbde8f11db3ac352e773cee87 # Parent 35838f49e2f6f0800852c4bd0788f413430c7170 * strread.m: Process string escapes on single quoted format (bug #42609) diff -r 35838f49e2f6 -r c32f378e08f3 scripts/io/strread.m --- a/scripts/io/strread.m Tue Jun 24 22:36:47 2014 +0200 +++ b/scripts/io/strread.m Wed Jun 25 17:17:38 2014 -0400 @@ -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]);