aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/property.lisp6
-rw-r--r--src/util.lisp7
2 files changed, 8 insertions, 5 deletions
diff --git a/src/property.lisp b/src/property.lisp
index 2aeb836..bd1acf0 100644
--- a/src/property.lisp
+++ b/src/property.lisp
@@ -193,11 +193,7 @@ rather than writing a property which programmatically calls other properties.
This is because using this macro takes care of calling property :HOSTATTRS
subroutines at the right time."
(when (stringp (car properties)) (pop properties))
- (let ((new-args (cons (gensym)
- (loop for arg in args
- if (symbol-named &aux arg)
- return accum
- else collect arg into accum)))
+ (let ((new-args (cons (gensym) (ordinary-ll-without-&aux args)))
;; TODO :UNAPPLY which unapplies in reverse order
(slots (list :hostattrs '(lambda (propspec &rest ignore)
(declare (ignore ignore))
diff --git a/src/util.lisp b/src/util.lisp
index 248f52a..c8054b1 100644
--- a/src/util.lisp
+++ b/src/util.lisp
@@ -54,6 +54,13 @@ expand into errors."
(t
expanded))))
+(defun ordinary-ll-without-&aux (ll)
+ (loop for arg in ll
+ if (symbol-named &aux arg)
+ return accum
+ else collect arg into accum
+ finally (return accum)))
+
;;;; Version numbers