# HG changeset patch # User Philip Nienhuis # Date 1366979109 -7200 # Node ID 4d8462fe15b93f06b687b447b4242d64d6850b1d # Parent d5ae5aa80d42bf47e6c2e5578fa2c3cddae00ef8 strread.m: catch unknown format specifiers (bug #38834) diff -r d5ae5aa80d42 -r 4d8462fe15b9 scripts/io/strread.m --- a/scripts/io/strread.m Thu Apr 25 17:57:55 2013 -0400 +++ b/scripts/io/strread.m Fri Apr 26 14:25:09 2013 +0200 @@ -315,6 +315,11 @@ for jj = 1:numel (a) ## From right to left to avoid losing track ii = numel (a) - jj + 1; + ## Check for illegal format specifiers + if (isempty (b{ii})) + error ("strread: unknown format specifier #%d ('%s')\n", + ii, fmt_words{idy2(ii)}); + endif if (! (length (fmt_words{idy2(ii)}) == b{ii}(1))) ## Split fmt_words(ii) into % conv specifier and trailing literal fmt_words(idy2(ii)+1 : end+1) = fmt_words(idy2(ii) : end); @@ -985,3 +990,7 @@ %!error strread ("a", "%*f64 %s") %!error strread ("a", "%u32") %!error strread ("a", "%*u32 %d") + +%% Illegal format specifiers +%!test +%!error strread ("1.0", "%z")