summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2017-01-22 01:24:44 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2017-01-22 01:24:44 +0100
commit724b2858ab6b629da943ca83a9a577261fb6d9b2 (patch)
tree35899e2f9ff3bae857374c38f24e9b590d00be0c
parent8ff9bd5c1b54a128d429c26e2c250707157863f6 (diff)
downloademacs-724b2858ab6b629da943ca83a9a577261fb6d9b2.tar.gz
Always kill the buffer, even when ignoring errors
-rw-r--r--lisp/url/with-url.el23
1 files changed, 14 insertions, 9 deletions
diff --git a/lisp/url/with-url.el b/lisp/url/with-url.el
index 36de4cc49ea..a65661860b0 100644
--- a/lisp/url/with-url.el
+++ b/lisp/url/with-url.el
@@ -174,8 +174,9 @@ and `base64'."
(let ((buffer (process-buffer (url-request-process ,requestv))))
(with-current-buffer buffer
(unwind-protect
- (when (or (not (url-request-ignore-errors ,requestv))
- (url-okp))
+ (if (and (url-request-ignore-errors ,requestv)
+ (url-error))
+ (kill-buffer buffer)
(goto-char (point-min))
,@body)
(kill-buffer buffer)))))
@@ -283,10 +284,11 @@ If given, return the value in BUFFER instead."
(push (list 'response
500 (format "Error occurred while fetching file: %s" err))
with-url--status)))
- (when (or (not (url-request-ignore-errors req))
- (url-okp))
- (goto-char (point-min))
- (when (url-request-callback req)
+ (goto-char (point-min))
+ (when (url-request-callback req)
+ (if (and (url-request-ignore-errors req)
+ (url-error))
+ (kill-buffer buffer)
(unwind-protect
(funcall (url-request-callback req))
(kill-buffer buffer)))))))
@@ -549,9 +551,12 @@ If given, return the value in BUFFER instead."
(delete-char -1)))
(goto-char (point-min))
(when (url-request-callback req)
- (unwind-protect
- (funcall (url-request-callback req))
- (kill-buffer buffer))))))
+ (if (and (url-request-ignore-errors req)
+ (url-error))
+ (kill-buffer buffer)
+ (unwind-protect
+ (funcall (url-request-callback req))
+ (kill-buffer buffer)))))))
(defun with-url--decode-chunked ()
(let (length)