diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2017-01-22 01:24:44 +0100 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2017-01-22 01:24:44 +0100 |
commit | 724b2858ab6b629da943ca83a9a577261fb6d9b2 (patch) | |
tree | 35899e2f9ff3bae857374c38f24e9b590d00be0c | |
parent | 8ff9bd5c1b54a128d429c26e2c250707157863f6 (diff) | |
download | emacs-724b2858ab6b629da943ca83a9a577261fb6d9b2.tar.gz |
Always kill the buffer, even when ignoring errors
-rw-r--r-- | lisp/url/with-url.el | 23 |
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) |