From eee1e38f9b84618358ea7fa800f12b7a81d1d626 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 24 Aug 2016 05:57:56 -0700 Subject: 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. --- eval.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eval.c b/eval.c index c5935cc1..341dbcff 100644 --- a/eval.c +++ b/eval.c @@ -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); -- cgit v1.2.3