diff --git a/lib/init-7.scm b/lib/init-7.scm index 035bb36c..4a4c5321 100644 --- a/lib/init-7.scm +++ b/lib/init-7.scm @@ -1105,7 +1105,11 @@ _or (append (map - (lambda (clause) (expand-pattern (car clause) (cadr clause))) + (lambda (clause) + (if (and (list? clause) (= (length clause) 2)) + (expand-pattern (car clause) (cadr clause)) + (error "invalid syntax-rules clause, which must be of the form (pattern template) (note fenders are not supported)" + clause))) forms) (list (list _cons diff --git a/tools/chibi-ffi b/tools/chibi-ffi index bc728ac2..cd3f9ac9 100755 --- a/tools/chibi-ffi +++ b/tools/chibi-ffi @@ -195,8 +195,7 @@ (syntax-rules () ((define-c-int-type type) (if (not (memq 'type *c-int-types*)) - (set! *c-int-types* (cons 'type *c-int-types*))) - #f))) + (set! *c-int-types* (cons 'type *c-int-types*)))))) (define-syntax define-c-enum ;; TODO: support conversion to/from symbolic names @@ -640,7 +639,7 @@ (let ((e (x->string errno))) (string-append " case " e ": return \"" e "\";\n"))) errnos) - + " } snprintf(buf, 64, \"unknown error: %d\", err); return buf;