changeset 18893:35838f49e2f6 stable

strread.m: drop valid delimiters from format specifier list (bug #42609)
author Philip Nienhuis <prnienhuis@users.sf.net>
date Tue, 24 Jun 2014 22:36:47 +0200
parents 9a70705dc616
children c32f378e08f3
files scripts/io/strread.m
diffstat 1 files changed, 23 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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 <format specifiers are not supported> strread ("a", "%c")