summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/advice.el
diff options
context:
space:
mode:
authorKaroly Lorentey <karoly@lorentey.hu>2007-05-11 18:24:42 +0000
committerKaroly Lorentey <karoly@lorentey.hu>2007-05-11 18:24:42 +0000
commitd6897a018781164bf9e7bd4ca51c87b303170313 (patch)
tree591ee4eb30a3a7170739723034f6311629cc45eb /lisp/emacs-lisp/advice.el
parent0218dbe25b68206442908b652b46b4974117bf9e (diff)
parent68380acf41d91014634d625e5f529cd3f773fbd4 (diff)
downloademacs-d6897a018781164bf9e7bd4ca51c87b303170313.tar.gz
Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-708 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-709 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-710 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-711 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-712 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-713 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-714 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-715 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-716 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-717 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-718 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-719 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-720 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-721 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-722 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-723 Merge from emacs--rel--22: lisp/dired-x.el: Revert 2007-04-06 change. * emacs@sv.gnu.org/emacs--devo--0--patch-724 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-725 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-726 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-727 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-728 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-729 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-730 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-731 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-732 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-733 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-734 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-735 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-736 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-737 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-738 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-739 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-740 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-741 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-742 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-743 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--rel--22--base-0 tag of emacs@sv.gnu.org/emacs--devo--0--patch-709 * emacs@sv.gnu.org/emacs--rel--22--patch-1 Sync to CVS tag EMACS_22_BRANCHPOINT * emacs@sv.gnu.org/emacs--rel--22--patch-2 Sync to CVS branch EMACS_22_BASE * emacs@sv.gnu.org/emacs--rel--22--patch-3 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-4 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-5 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-6 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-7 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-8 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-9 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-10 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-11 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-12 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-13 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-217 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-218 Merge from emacs--devo--0, emacs--rel--22 * emacs@sv.gnu.org/gnus--rel--5.10--patch-219 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-220 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-605
Diffstat (limited to 'lisp/emacs-lisp/advice.el')
-rw-r--r--lisp/emacs-lisp/advice.el22
1 files changed, 5 insertions, 17 deletions
diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el
index fe4639cf01a..8023bc58a53 100644
--- a/lisp/emacs-lisp/advice.el
+++ b/lisp/emacs-lisp/advice.el
@@ -2467,23 +2467,11 @@ will clear the cache."
"Take a macro function DEFINITION and make a lambda out of it."
`(cdr ,definition))
-;; There is no way to determine whether some subr is a special form or not,
-;; hence we need this list (which is probably out of date):
-(defvar ad-special-forms
- (let ((tem '(and catch cond condition-case defconst defmacro
- defun defvar function if interactive let let*
- or prog1 prog2 progn quote save-current-buffer
- save-excursion save-restriction save-window-excursion
- setq setq-default unwind-protect while
- with-output-to-temp-buffer)))
- ;; track-mouse could be void in some configurations.
- (if (fboundp 'track-mouse)
- (push 'track-mouse tem))
- (mapcar 'symbol-function tem)))
-
-(defmacro ad-special-form-p (definition)
- ;;"non-nil if DEFINITION is a special form."
- (list 'memq definition 'ad-special-forms))
+(defun ad-special-form-p (definition)
+ "Non-nil iff DEFINITION is a special form."
+ (if (and (symbolp definition) (fboundp definition))
+ (setq definition (indirect-function definition)))
+ (and (subrp definition) (eq (cdr (subr-arity definition)) 'unevalled)))
(defmacro ad-interactive-p (definition)
;;"non-nil if DEFINITION can be called interactively."