aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim F. Storm2006-09-20 23:12:25 +0000
committerKim F. Storm2006-09-20 23:12:25 +0000
commiteae510750d41e542edc35b5c74e9093f8afb2e01 (patch)
treeb24c3687157baced7a67fa866528034223b1b6f9
parent5bde639f478b246e33bfb74f03e8f8ccfa7542f9 (diff)
downloademacs-eae510750d41e542edc35b5c74e9093f8afb2e01.tar.gz
emacs-eae510750d41e542edc35b5c74e9093f8afb2e01.zip
(member*): Use memql instead of complex code.
Suggested by Miles Bader.
-rw-r--r--lisp/emacs-lisp/cl-macs.el16
1 files changed, 1 insertions, 15 deletions
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index e8590933863..b7d63acc861 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -2578,21 +2578,7 @@ surrounded by (block NAME ...).
2578 (cl-const-expr-val (nth 1 keys))))) 2578 (cl-const-expr-val (nth 1 keys)))))
2579 (cond ((eq test 'eq) (list 'memq a list)) 2579 (cond ((eq test 'eq) (list 'memq a list))
2580 ((eq test 'equal) (list 'member a list)) 2580 ((eq test 'equal) (list 'member a list))
2581 ((or (null keys) (eq test 'eql)) 2581 ((or (null keys) (eq test 'eql)) (list 'memql a list))
2582 (if (eq (cl-const-expr-p a) t)
2583 (list (if (floatp-safe (cl-const-expr-val a)) 'member 'memq)
2584 a list)
2585 (if (eq (cl-const-expr-p list) t)
2586 (let ((p (cl-const-expr-val list)) (mb nil) (mq nil))
2587 (if (not (cdr p))
2588 (and p (list 'eql a (list 'quote (car p))))
2589 (while p
2590 (if (floatp-safe (car p)) (setq mb t)
2591 (or (integerp (car p)) (symbolp (car p)) (setq mq t)))
2592 (setq p (cdr p)))
2593 (if (not mb) (list 'memq a list)
2594 (if (not mq) (list 'member a list) form))))
2595 form)))
2596 (t form)))) 2582 (t form))))
2597 2583
2598(define-compiler-macro assoc* (&whole form a list &rest keys) 2584(define-compiler-macro assoc* (&whole form a list &rest keys)