changeset 20070:f68c3a62e42c

strread.m: properly process traling delimiters in case of MultipleDelimsAsOne parameter (bug #44750)
author Philip Nienhuis <prnienhuis@users.sf.net>
date Mon, 06 Apr 2015 23:05:41 +0200
parents 42c3a0829324
children 0e712de0af4d
files scripts/io/strread.m
diffstat 1 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/io/strread.m	Mon Apr 06 21:33:13 2015 +0200
+++ b/scripts/io/strread.m	Mon Apr 06 23:05:41 2015 +0200
@@ -805,7 +805,7 @@
   out = ostrsplit (text, sep, mult_dlms_s1);
   if (index (sep, eol_char)); out = strrep (out, char (255), ''); endif
   ## In case of trailing delimiter, strip stray last empty word
-  if (! isempty (out) && any (sep == text(end)))
+  if (! isempty (out) && any (sep == text(end)) && ! mult_dlms_s1)
     out(end) = [];
   endif
 
@@ -937,6 +937,11 @@
 %! assert (c', [13, 24, 34]);
 %! assert (d', [15, 25, 35]);
 
+## Bug #44750
+%!test
+%! assert (strread ('/home/foo/','%s','delimiter','/','MultipleDelimsAsOne',1), ...
+%!         {"home"; "foo"});
+
 ## delimiter as sq_string and dq_string
 %!test
 %! assert (strread ("1\n2\n3", "%d", "delimiter", "\n"),