diff options
author | Karoly Lorentey <karoly@lorentey.hu> | 2007-05-11 18:24:42 +0000 |
---|---|---|
committer | Karoly Lorentey <karoly@lorentey.hu> | 2007-05-11 18:24:42 +0000 |
commit | d6897a018781164bf9e7bd4ca51c87b303170313 (patch) | |
tree | 591ee4eb30a3a7170739723034f6311629cc45eb /lisp/emacs-lisp/advice.el | |
parent | 0218dbe25b68206442908b652b46b4974117bf9e (diff) | |
parent | 68380acf41d91014634d625e5f529cd3f773fbd4 (diff) | |
download | emacs-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.el | 22 |
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." |