]> code.delx.au - gnu-emacs/blobdiff - lisp/gnus/gnus-sync.el
gmm-utils.el (gmm-flet): Remove.
[gnu-emacs] / lisp / gnus / gnus-sync.el
index e2a71f0ee01fdc10f8adb7a271a7776cf84a5bda..895a5e4d9a5a43f6fcd03048ed00cf973f861a93 100644 (file)
@@ -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))