From: yamaoka Date: Tue, 25 Apr 2000 03:30:12 +0000 (+0000) Subject: (union, member-if, mapcon, last): Remove compiler macros. X-Git-Tag: t-gnus-6_14_4-00~6 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=1f9eb8d4966d5f61052cde9635df1f6bf7dbb815;p=elisp%2Fgnus.git- (union, member-if, mapcon, last): Remove compiler macros. --- diff --git a/lisp/dgnushack.el b/lisp/dgnushack.el index 496935d..7e1fdb1 100644 --- a/lisp/dgnushack.el +++ b/lisp/dgnushack.el @@ -53,81 +53,6 @@ (push "/usr/share/emacs/site-lisp" load-path) -(unless (featurep 'xemacs) - (define-compiler-macro last (&whole form x &optional n) - (if (and (fboundp 'last) - (subrp (symbol-function 'last))) - form - (if n - `(let* ((x ,x) - (n ,n) - (m 0) - (p x)) - (while (consp p) - (incf m) - (pop p)) - (if (<= n 0) - p - (if (< n m) - (nthcdr (- m n) x) - x))) - `(let ((x ,x)) - (while (consp (cdr x)) - (pop x)) - x)))) - - (define-compiler-macro mapcon (&whole form fn seq &rest rest) - (if (and (fboundp 'mapcon) - (subrp (symbol-function 'mapcon))) - form - (if rest - `(let (res - (args (list ,seq ,@rest)) - p) - (while (not (memq nil args)) - (push (apply ,fn args) res) - (setq p args) - (while p - (setcar p (cdr (pop p))) - )) - (apply (function nconc) (nreverse res))) - `(let (res - (arg ,seq)) - (while arg - (push (funcall ,fn arg) res) - (setq arg (cdr arg))) - (apply (function nconc) (nreverse res)))))) - - (define-compiler-macro member-if (&whole form pred list) - (if (and (fboundp 'member-if) - (subrp (symbol-function 'member-if))) - form - `(let ((fn ,pred) - (seq ,list)) - (while (and seq - (not (funcall fn (car seq)))) - (pop seq)) - seq))) - - (define-compiler-macro union (&whole form list1 list2) - (if (and (fboundp 'union) - (subrp (symbol-function 'union))) - form - `(let ((a ,list1) - (b ,list2)) - (cond ((null a) b) - ((null b) a) - ((equal a b) a) - (t - (or (>= (length a) (length b)) - (setq a (prog1 b (setq b a)))) - (while b - (or (memq (car b) a) - (push (car b) a)) - (pop b)) - a))))) - ) - ;; If we are building w3 in a different directory than the source ;; directory, we must read *.el from source directory and write *.elc ;; into the building directory. For that, we define this function