forked from mirrors/org-mode
org.el: Avoid crash in `org-file-contents' in case of network failure
* lisp/org.el (org-file-contents): Wrap the `url-retrieve-synchronously' call into a `condition-case' block to avoid throwing an error when NOERROR is non-nil. TINYCHANGE
This commit is contained in:
parent
7a90f596d9
commit
f9aeba5dd7
34
lisp/org.el
34
lisp/org.el
|
@ -4559,21 +4559,25 @@ is available. This option applies only if FILE is a URL."
|
|||
(cache)
|
||||
(is-url
|
||||
(if (org--should-fetch-remote-resource-p file)
|
||||
(with-current-buffer (url-retrieve-synchronously file)
|
||||
(goto-char (point-min))
|
||||
;; Move point to after the url-retrieve header.
|
||||
(search-forward "\n\n" nil :move)
|
||||
;; Search for the success code only in the url-retrieve header.
|
||||
(if (save-excursion
|
||||
(re-search-backward "HTTP.*\\s-+200\\s-OK" nil :noerror))
|
||||
;; Update the cache `org--file-cache' and return contents.
|
||||
(puthash file
|
||||
(buffer-substring-no-properties (point) (point-max))
|
||||
org--file-cache)
|
||||
(funcall (if noerror #'message #'user-error)
|
||||
"Unable to fetch file from %S"
|
||||
file)
|
||||
nil))
|
||||
(condition-case error
|
||||
(with-current-buffer (url-retrieve-synchronously file)
|
||||
(goto-char (point-min))
|
||||
;; Move point to after the url-retrieve header.
|
||||
(search-forward "\n\n" nil :move)
|
||||
;; Search for the success code only in the url-retrieve header.
|
||||
(if (save-excursion
|
||||
(re-search-backward "HTTP.*\\s-+200\\s-OK" nil :noerror))
|
||||
;; Update the cache `org--file-cache' and return contents.
|
||||
(puthash file
|
||||
(buffer-substring-no-properties (point) (point-max))
|
||||
org--file-cache)
|
||||
(funcall (if noerror #'message #'user-error)
|
||||
"Unable to fetch file from %S"
|
||||
file)
|
||||
nil))
|
||||
(error (if noerror
|
||||
(message "Org could't download \"%s\": %s %S" file (car error) (cdr error))
|
||||
(signal (car error) (cdr error)))))
|
||||
(funcall (if noerror #'message #'user-error)
|
||||
"The remote resource %S is considered unsafe, and will not be downloaded."
|
||||
file)))
|
||||
|
|
Loading…
Reference in New Issue