gmm-utils.el (gmm-flet): Remove.
[gnus] / lisp / gmm-utils.el
index 7d6684c..3357ee4 100644 (file)
@@ -417,30 +417,11 @@ 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)
-
+;; `labels' got 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
-them in closures will only work if `lexical-binding' is in use.  But in
-Emacs 24.2 and older, the lexical scoping is handled via `lexical-let'
-rather than relying on `lexical-binding'.
+The lexical scoping is handled via `lexical-let' rather than relying
+on `lexical-binding'.
 
 \(fn ((FUNC ARGLIST BODY...) ...) FORM...)"
   `(,(progn (require 'cl) (if (fboundp 'cl-labels) 'cl-labels 'labels))