diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-08-24 05:57:56 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-08-24 05:57:56 -0700 |
commit | e5789459224e621a3af559802598afb9d0b904f1 (patch) | |
tree | f824f00c8b91bb718c998759fc10d60517cbca52 | |
parent | 70f541e4a94c708607f75a4a1e4517cff397d035 (diff) | |
download | txr-e5789459224e621a3af559802598afb9d0b904f1.tar.gz txr-e5789459224e621a3af559802598afb9d0b904f1.tar.bz2 txr-e5789459224e621a3af559802598afb9d0b904f1.zip |
Check arg count when expanding defsymacro.
* eval.c (do_expand): Throw error if defsymacro form
isn't a list of three elements, just like defparm
and defparml do.
-rw-r--r-- | eval.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -3435,6 +3435,9 @@ static val do_expand(val form, val menv) val init_ex = expand(init, menv); val form_ex = form; + if (sym == defsymacro_s && length(form) != three) + eval_error(form, lit("~s: two arguments expected"), sym, nao); + if (init != init_ex) form_ex = rlcp(cons(sym, cons(name, cons(init_ex, nil))), form); |