# HG changeset patch # User Philip Nienhuis # Date 1366979109 -7200 # Node ID 4d8462fe15b93f06b687b447b4242d64d6850b1d # Parent d5ae5aa80d42bf47e6c2e5578fa2c3cddae00ef8 strread.m: catch unknown format specifiers (bug #38834) diff --git a/scripts/io/strread.m b/scripts/io/strread.m --- a/scripts/io/strread.m +++ b/scripts/io/strread.m @@ -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")