diff options
author | Karl Heuer <kwzh@gnu.org> | 1994-03-25 07:20:08 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1994-03-25 07:20:08 +0000 |
commit | b22e7ecc3f041dfe12c6bda14a8b2b5f7e8173c3 (patch) | |
tree | 436b18c5729f4dfbef53e7eca6e6ee5f17d29e41 /src/editfns.c | |
parent | ba32f2db71110396e28e6c1841dfdd2aa5daa68c (diff) | |
download | emacs-b22e7ecc3f041dfe12c6bda14a8b2b5f7e8173c3.tar.gz |
(Fformat): Validate number and type of arguments.
Diffstat (limited to 'src/editfns.c')
-rw-r--r-- | src/editfns.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/editfns.c b/src/editfns.c index 037c00d3c8b..e3863c5f117 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -1463,7 +1463,7 @@ Use %% to put a single % into the output.") if (*format == '%') format++; else if (++n >= nargs) - ; + error ("format string wants too many arguments"); else if (*format == 'S') { /* For `S', prin1 the argument and then treat like a string. */ @@ -1480,6 +1480,8 @@ Use %% to put a single % into the output.") else if (XTYPE (args[n]) == Lisp_String) { string: + if (*format != 's' && *format != 'S') + error ("format specifier doesn't match argument type"); total += XSTRING (args[n])->size; } /* Would get MPV otherwise, since Lisp_Int's `point' to low memory. */ |