# HG changeset patch # User Philip Nienhuis # Date 1413036088 -7200 # Node ID 8d7e760bfa6870786aac52d72e230d9a1ed72c73 # Parent d60b44acfff765ebd061b0ac1ab97ec482548c5b importdata.m: better regexp pattern to assess delimiter (bug #43393) diff -r d60b44acfff7 -r 8d7e760bfa68 scripts/io/importdata.m --- a/scripts/io/importdata.m Tue Sep 30 00:26:10 2014 -0500 +++ b/scripts/io/importdata.m Sat Oct 11 16:01:28 2014 +0200 @@ -176,7 +176,7 @@ ## If no delimiter determined yet, make a guess. if (isempty (delimiter)) ## This pattern can be fooled, but mostly does the job just fine. - delim = regexp (row, '[-+\d.eE*ij ]+([^-+\d.ij])[-+\d.ij]', + delim = regexpi (row, '[-+\d.e*ij ]+([^-+\de.ij])[-+\de*.ij ]', 'tokens', 'once'); #delim = regexp (row, '[+-\d.eE\*ij ]+([^+-\d.ij])[+-\d.ij]', # 'tokens', 'once'); @@ -498,6 +498,18 @@ %! assert (d, "\t"); %! assert (h, 0); +%!test +%! ## Distinguish double from complex when no delimiter is supplied (bug #43393) +%! fn = tmpnam (); +%! fid = fopen (fn, "w"); +%! fputs (fid, "2.0000e+02 4.0000e-04"); +%! fclose (fid); +%! [a, d, h] = importdata (fn); +%! unlink (fn); +%! assert (a, [2e2, 4e-4]); +%! assert (d, " "); +%! assert (h, 0); + %!error importdata () %!error importdata (1,2,3,4) %!error importdata (1)