X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/b2b049bc3783e7de267b194489f0840220a7b78c..1b9b6fbb5cfa6d6cf3401a6cc08e47cd6e83a41a:/lisp/gnus/gmm-utils.el diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el index 7d6684ca6c..8bafb7d0f6 100644 --- a/lisp/gnus/gmm-utils.el +++ b/lisp/gnus/gmm-utils.el @@ -1,6 +1,6 @@ ;;; gmm-utils.el --- Utility functions for Gnus, Message and MML -;; Copyright (C) 2006-2012 Free Software Foundation, Inc. +;; Copyright (C) 2006-2013 Free Software Foundation, Inc. ;; Author: Reiner Steib ;; Keywords: news @@ -417,24 +417,19 @@ coding-system." (write-region start end filename append visit lockname)) (write-region start end filename append visit lockname mustbenew))) -;; `flet' and `labels' got obsolete since Emacs 24.3. -(defmacro gmm-flet (bindings &rest body) - "Make temporary overriding function definitions. - -\(fn ((FUNC ARGLIST BODY...) ...) FORM...)" - `(let (fn origs) - (dolist (bind ',bindings) - (setq fn (car bind)) - (push (cons fn (and (fboundp fn) (symbol-function fn))) origs) - (fset fn (cons 'lambda (cdr bind)))) - (unwind-protect - (progn ,@body) - (dolist (orig origs) - (if (cdr orig) - (fset (car orig) (cdr orig)) - (fmakunbound (car orig))))))) -(put 'gmm-flet 'lisp-indent-function 1) - +;; `interactive-p' is obsolete since Emacs 23.2. +(defmacro gmm-called-interactively-p (kind) + (condition-case nil + (progn + (eval '(called-interactively-p 'any)) + ;; Emacs >=23.2 + `(called-interactively-p ,kind)) + ;; Emacs <23.2 + (wrong-number-of-arguments '(called-interactively-p)) + ;; XEmacs + (void-function '(interactive-p)))) + +;; `labels' is obsolete since Emacs 24.3. (defmacro gmm-labels (bindings &rest body) "Make temporary function bindings. The bindings can be recursive and the scoping is lexical, but capturing