X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fmm-url.el;h=5fb925e052f00add6a3048adbaeacaf5bf13aefc;hb=a469ddcc3be84b5f7924665489126f9f386017c2;hp=b653c7ec0ad866f9f907215a737667f1020e55c0;hpb=771b24db1272417e9b3c955d9dd02d53cd113ccd;p=gnus diff --git a/lisp/mm-url.el b/lisp/mm-url.el index b653c7ec0..5fb925e05 100644 --- a/lisp/mm-url.el +++ b/lisp/mm-url.el @@ -37,6 +37,9 @@ (eval-and-compile (autoload 'executable-find "executable")) +(eval-when-compile + (require 'timer)) + (defgroup mm-url nil "A wrapper of url package and external url command for Gnus." :group 'gnus) @@ -45,7 +48,7 @@ (condition-case nil (require 'url) (error nil))) - "*If not-nil, use external grab program `mm-url-program'." + "*If non-nil, use external grab program `mm-url-program'." :type 'boolean :group 'mm-url) @@ -276,20 +279,29 @@ This is taken from RFC 2396.") (insert-file-contents (substring url (1- (match-end 0)))) (mm-url-insert-file-contents-external url)) (goto-char (point-min)) + (if (fboundp 'url-generic-parse-url) + (setq url-current-object + (url-generic-parse-url url))) (list url (buffer-size))) (mm-url-load-url) (let ((name buffer-file-name) + (url-request-extra-headers (list (cons "Connection" "Close"))) (url-package-name (or mm-url-package-name url-package-name)) (url-package-version (or mm-url-package-version - url-package-version))) - (prog1 - (url-insert-file-contents url) - (save-excursion - (goto-char (point-min)) - (while (re-search-forward "\r 1000\r ?" nil t) - (replace-match ""))) - (setq buffer-file-name name))))) + url-package-version)) + result) + (setq result (url-insert-file-contents url)) + (save-excursion + (goto-char (point-min)) + (while (re-search-forward "\r 1000\r ?" nil t) + (replace-match ""))) + (setq buffer-file-name name) + (if (and (fboundp 'url-generic-parse-url) + (listp result)) + (setq url-current-object (url-generic-parse-url + (car result)))) + result))) (defun mm-url-insert-file-contents-external (url) (let (program args)