From bba4577b112f251a6a907ac107cd38b3e2fa0c7c Mon Sep 17 00:00:00 2001 From: Katsumi Yamaoka Date: Wed, 5 Dec 2012 00:13:39 +0000 Subject: [PATCH] gmm-utils.el (gmm-flet): Remove. gnus-sync.el (gnus-sync-lesync-call) message.el (message-read-from-minibuffer): Don't use it. --- lisp/ChangeLog | 6 ++++++ lisp/gmm-utils.el | 25 +++---------------------- lisp/gnus-sync.el | 26 +++++++++++++++----------- lisp/message.el | 10 +++++++--- 4 files changed, 31 insertions(+), 36 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d9d29e623..ebdf77361 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-12-05 Katsumi Yamaoka + + * 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 * gmm-utils.el (gmm-labels): Use cl-labels if available. diff --git a/lisp/gmm-utils.el b/lisp/gmm-utils.el index 7d6684ca6..3357ee422 100644 --- a/lisp/gmm-utils.el +++ b/lisp/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-sync.el b/lisp/gnus-sync.el index 8584e9422..877a0799f 100644 --- a/lisp/gnus-sync.el +++ b/lisp/gnus-sync.el @@ -99,7 +99,6 @@ (require 'gnus) (require 'gnus-start) (require 'gnus-util) -(require 'gmm-utils) (defvar gnus-topic-alist) ;; gnus-group.el (eval-when-compile @@ -188,16 +187,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/message.el b/lisp/message.el index 32d0edffb..34c820328 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -8184,9 +8184,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)))) -- 2.25.1