summaryrefslogtreecommitdiff
path: root/lisp/gnus
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/gnus')
-rw-r--r--lisp/gnus/ChangeLog6
-rw-r--r--lisp/gnus/gmm-utils.el25
-rw-r--r--lisp/gnus/gnus-sync.el26
-rw-r--r--lisp/gnus/message.el10
4 files changed, 31 insertions, 36 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 2d125753c17..af19f607f99 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,9 @@
+2012-12-05 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gmm-utils.el (gmm-flet): Remove.
+ * gnus-sync.el (gnus-sync-lesync-call)
+ * message.el (message-read-from-minibuffer): Don't use it.
+
2012-12-04 Katsumi Yamaoka <yamaoka@jpl.org>
* gmm-utils.el (gmm-labels): Use cl-labels if available.
diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el
index 7d6684ca6c1..3357ee42239 100644
--- a/lisp/gnus/gmm-utils.el
+++ b/lisp/gnus/gmm-utils.el
@@ -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))
diff --git a/lisp/gnus/gnus-sync.el b/lisp/gnus/gnus-sync.el
index e2a71f0ee01..895a5e4d9a5 100644
--- a/lisp/gnus/gnus-sync.el
+++ b/lisp/gnus/gnus-sync.el
@@ -88,7 +88,6 @@
(require 'gnus)
(require 'gnus-start)
(require 'gnus-util)
-(require 'gmm-utils)
(defvar gnus-topic-alist) ;; gnus-group.el
(eval-when-compile
@@ -177,16 +176,21 @@ and `gnus-topic-alist'. Also see `gnus-variable-list'."
(defun gnus-sync-lesync-call (url method headers &optional kvdata)
"Make an access request to URL using KVDATA and METHOD.
KVDATA must be an alist."
- (gmm-flet ((json-alist-p (list) (gnus-sync-json-alist-p list))) ; temp patch
- (let ((url-request-method method)
- (url-request-extra-headers headers)
- (url-request-data (if kvdata (json-encode kvdata) nil)))
- (with-current-buffer (url-retrieve-synchronously url)
- (let ((data (gnus-sync-lesync-parse)))
- (gnus-message 12 "gnus-sync-lesync-call: %s URL %s sent %S got %S"
- method url `((headers . ,headers) (data ,kvdata)) data)
- (kill-buffer (current-buffer))
- data)))))
+ (let ((orig-json-alist-p (symbol-function 'json-alist-p)))
+ (fset 'json-alist-p
+ (lambda (list) (gnus-sync-json-alist-p list))) ; temp patch
+ (unwind-protect
+ (let ((url-request-method method)
+ (url-request-extra-headers headers)
+ (url-request-data (if kvdata (json-encode kvdata) nil)))
+ (with-current-buffer (url-retrieve-synchronously url)
+ (let ((data (gnus-sync-lesync-parse)))
+ (gnus-message
+ 12 "gnus-sync-lesync-call: %s URL %s sent %S got %S"
+ method url `((headers . ,headers) (data ,kvdata)) data)
+ (kill-buffer (current-buffer))
+ data)))
+ (fset 'json-alist-p orig-json-alist-p))))
(defun gnus-sync-lesync-PUT (url headers &optional data)
(gnus-sync-lesync-call url "PUT" headers data))
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 2171dcf3edc..03ffe2fb2eb 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -8140,9 +8140,13 @@ regexp VARSTR."
"Read from the minibuffer while providing abbrev expansion."
(if (fboundp 'mail-abbrevs-setup)
(let ((minibuffer-setup-hook 'mail-abbrevs-setup)
- (minibuffer-local-map message-minibuffer-local-map))
- (gmm-flet ((mail-abbrev-in-expansion-header-p nil t))
- (read-from-minibuffer prompt initial-contents)))
+ (minibuffer-local-map message-minibuffer-local-map)
+ (orig-m-a-i-e-h-p (symbol-function
+ 'mail-abbrev-in-expansion-header-p)))
+ (fset 'mail-abbrev-in-expansion-header-p (lambda (&rest args) t))
+ (unwind-protect
+ (read-from-minibuffer prompt initial-contents)
+ (fset 'mail-abbrev-in-expansion-header-p orig-m-a-i-e-h-p)))
(let ((minibuffer-setup-hook 'mail-abbrev-minibuffer-setup-hook)
(minibuffer-local-map message-minibuffer-local-map))
(read-string prompt initial-contents))))