# HG changeset patch # User Philip Nienhuis # Date 1403642207 -7200 # Node ID 35838f49e2f6f0800852c4bd0788f413430c7170 # Parent 9a70705dc61614e9ab1dad182d0ee465326e1956 strread.m: drop valid delimiters from format specifier list (bug #42609) diff -r 9a70705dc616 -r 35838f49e2f6 scripts/io/strread.m --- a/scripts/io/strread.m Sun Jun 22 07:22:26 2014 -0400 +++ b/scripts/io/strread.m Tue Jun 24 22:36:47 2014 +0200 @@ -391,6 +391,15 @@ white_spaces = strrep (white_spaces, eol_char, ''); endif + ii = numel (fmt_words); + while (ii > 0) + if (ismember (fmt_words{ii}, delimiter_str)(1)) + fmt_words(ii) = []; + --num_words_per_line; + endif + --ii; + endwhile + pad_out = 0; ## Trim whitespace if needed if (! isempty (white_spaces)) @@ -974,6 +983,20 @@ %!test %! assert (strread (",2,,4\n5,,7,", "", "delimiter", ","), [NaN; 2; NaN; 4; 5; NaN; 7]); +%% Test #1 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 #2 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]); + %% Unsupported format specifiers %!test %!error strread ("a", "%c")