preserve original lambda list in ttl-tag-src - gcl.git - GNU Common Lisp

index : gcl.git
GNU Common Lisp
summary refs log tree commit diff
diff options
context:
space:
mode:
authorCamm Maguire <camm@debian.org>2013年10月28日 13:16:13 +0000
committerCamm Maguire <camm@debian.org>2013年10月28日 13:16:13 +0000
commit79dcaf0f7327ad05fea7482610ccbc9490f98475 (patch)
tree54834fe592b993e95d22e0bec3249eb91b713fd4
parent767820020c1aa106749962b681101bc29dcd0d9a (diff)
downloadgcl-79dcaf0f7327ad05fea7482610ccbc9490f98475.tar.gz
preserve original lambda list in ttl-tag-src
Diffstat
-rwxr-xr-xgcl/cmpnew/gcl_cmpeval.lsp 4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcl/cmpnew/gcl_cmpeval.lsp b/gcl/cmpnew/gcl_cmpeval.lsp
index 37f1c428d..dabf9820c 100755
--- a/gcl/cmpnew/gcl_cmpeval.lsp
+++ b/gcl/cmpnew/gcl_cmpeval.lsp
@@ -1148,7 +1148,9 @@
(parse-body-header src)
(let* ((aux (member '&aux ll));FIXME centralize with new-defun-args
(ll (ldiff ll aux))
- (regs (mapcan (lambda (x) (if (symbolp x) (list x) (cons (if (symbolp (car x)) (car x) (cadar x)) (cddr x)))) ll))
+ (regs (mapcan (lambda (x &aux (lp (listp x)))
+ (cons (if lp (if (listp (car x)) (cadar x) (car x)) x)
+ (when (when lp (cddr x)) (list (caddr x))))) ll))
(regs (set-difference regs '(&optional &rest &key &allow-other-keys)))
(od (split-decls regs decls))
(rd (cons `(declare (optimize (safety ,(decl-safety decls)))) (pop od)))
generated by cgit v1.2.3 (git 2.39.1) at 2025年09月02日 01:42:58 +0000

AltStyle によって変換されたページ (->オリジナル) /