[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r111102: gmm-util.el: Re-introduce gm
From: |
Katsumi Yamaoka |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r111102: gmm-util.el: Re-introduce gmm-flet using cl-letf |
Date: |
Wed, 05 Dec 2012 02:26:15 +0000 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 111102
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Wed 2012-12-05 02:26:15 +0000
message:
gmm-util.el: Re-introduce gmm-flet using cl-letf
modified:
lisp/gnus/ChangeLog
lisp/gnus/gmm-utils.el
lisp/gnus/gnus-sync.el
lisp/gnus/message.el
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog 2012-12-05 00:13:56 +0000
+++ b/lisp/gnus/ChangeLog 2012-12-05 02:26:15 +0000
@@ -1,5 +1,11 @@
2012-12-05 Katsumi Yamaoka <address@hidden>
+ * gmm-utils.el (gmm-flet): Restore it using cl-letf.
+ * gnus-sync.el (gnus-sync-lesync-call)
+ * message.el (message-read-from-minibuffer): Use it.
+
+2012-12-05 Katsumi Yamaoka <address@hidden>
+
* gmm-utils.el (gmm-flet): Remove.
* gnus-sync.el (gnus-sync-lesync-call)
* message.el (message-read-from-minibuffer): Don't use it.
=== modified file 'lisp/gnus/gmm-utils.el'
--- a/lisp/gnus/gmm-utils.el 2012-12-05 00:18:23 +0000
+++ b/lisp/gnus/gmm-utils.el 2012-12-05 02:26:15 +0000
@@ -417,7 +417,23 @@
(write-region start end filename append visit lockname))
(write-region start end filename append visit lockname mustbenew)))
-;; `labels' got obsolete since Emacs 24.3.
+;; `flet' and `labels' got obsolete since Emacs 24.3.
+(defmacro gmm-flet (bindings &rest body)
+ "Make temporary overriding function definitions.
+This is an analogue of a dynamically scoped `let' that operates on
+the function cell of FUNCs rather than their value cell.
+
+\(fn ((FUNC ARGLIST BODY...) ...) FORM...)"
+ (require 'cl)
+ (if (fboundp 'cl-letf)
+ `(cl-letf ,(mapcar (lambda (binding)
+ `((symbol-function ',(car binding))
+ (lambda ,@(cdr binding))))
+ bindings)
+ ,@body)
+ `(flet ,bindings ,@body)))
+(put 'gmm-flet 'lisp-indent-function 1)
+
(defmacro gmm-labels (bindings &rest body)
"Make temporary function bindings.
The bindings can be recursive and the scoping is lexical, but capturing
=== modified file 'lisp/gnus/gnus-sync.el'
--- a/lisp/gnus/gnus-sync.el 2012-12-05 00:13:56 +0000
+++ b/lisp/gnus/gnus-sync.el 2012-12-05 02:26:15 +0000
@@ -88,6 +88,7 @@
(require 'gnus)
(require 'gnus-start)
(require 'gnus-util)
+(require 'gmm-utils)
(defvar gnus-topic-alist) ;; gnus-group.el
(eval-when-compile
@@ -176,21 +177,16 @@
(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."
- (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))))
+ (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)))))
(defun gnus-sync-lesync-PUT (url headers &optional data)
(gnus-sync-lesync-call url "PUT" headers data))
=== modified file 'lisp/gnus/message.el'
--- a/lisp/gnus/message.el 2012-12-05 00:13:56 +0000
+++ b/lisp/gnus/message.el 2012-12-05 02:26:15 +0000
@@ -8140,13 +8140,9 @@
"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)
- (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)))
+ (minibuffer-local-map message-minibuffer-local-map))
+ (gmm-flet ((mail-abbrev-in-expansion-header-p nil t))
+ (read-from-minibuffer prompt initial-contents)))
(let ((minibuffer-setup-hook 'mail-abbrev-minibuffer-setup-hook)
(minibuffer-local-map message-minibuffer-local-map))
(read-string prompt initial-contents))))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r111102: gmm-util.el: Re-introduce gmm-flet using cl-letf,
Katsumi Yamaoka <=