changeset 16573:4d8462fe15b9

strread.m: catch unknown format specifiers (bug #38834)
author Philip Nienhuis <prnienhuis@users.sf.net>
date Fri, 26 Apr 2013 14:25:09 +0200
parents d5ae5aa80d42
children 17941fedd4ce
files scripts/io/strread.m
diffstat 1 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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 <format specifiers are not supported> strread ("a", "%*f64 %s")
 %!error <format specifiers are not supported> strread ("a", "%u32")
 %!error <format specifiers are not supported> strread ("a", "%*u32 %d")
+
+%% Illegal format specifiers
+%!test
+%!error <unknown format specifier> strread ("1.0", "%z")