>From ff85fd2a421f751626d61b73d6f268d0cc42d702 Mon Sep 17 00:00:00 2001 From: Tao Fang Date: Sat, 4 Jun 2016 23:27:55 +0800 Subject: [PATCH] url-retrieve-synchronously signal error when fail --- lisp/url/url.el | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lisp/url/url.el b/lisp/url/url.el index 6d710e0..1d49b10 100644 --- a/lisp/url/url.el +++ b/lisp/url/url.el @@ -235,12 +235,14 @@ how long to wait for a response before giving up." (let ((retrieval-done nil) (start-time (current-time)) - (asynch-buffer nil)) + (asynch-buffer nil) + err) (setq asynch-buffer - (url-retrieve url (lambda (&rest ignored) + (url-retrieve url (lambda (status &rest ignored) (url-debug 'retrieval "Synchronous fetching done (%S)" (current-buffer)) (setq retrieval-done t - asynch-buffer (current-buffer))) + asynch-buffer (current-buffer) + err (plist-get status :error))) nil silent inhibit-cookies)) (if (null asynch-buffer) ;; We do not need to do anything, it was a mailto or something @@ -300,6 +302,12 @@ how long to wait for a response before giving up." (delete-process proc)) (setq proc (and (not quit-flag) (get-buffer-process asynch-buffer))))))) + + ;; Before we return, check for error except 'http + (when (and err + (not (eq (cadr err) 'http))) + (signal (car err) (cdr err))) + asynch-buffer))) ;; url-mm-callback called from url-mm, which requires mm-decode. -- 2.8.3