X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fmm-url.el;h=5fb925e052f00add6a3048adbaeacaf5bf13aefc;hb=88246064ae491a409e56f7f5330e1a73cfdd877a;hp=b1978cce3150190f37eed547058b5e5b81ff785a;hpb=853d3fa059d36143f0f4d600e50c6a1970ec41c3;p=gnus diff --git a/lisp/mm-url.el b/lisp/mm-url.el index b1978cce3..5fb925e05 100644 --- a/lisp/mm-url.el +++ b/lisp/mm-url.el @@ -1,5 +1,5 @@ ;;; mm-url.el --- a wrapper of url functions/commands for Gnus -;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu @@ -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) @@ -62,7 +65,8 @@ ((executable-find "lynx") 'lynx) ((executable-find "curl") 'curl) (t "GET")) - "The url grab program." + "The url grab program. +Likely values are `wget', `w3m', `lynx' and `curl'." :type '(choice (symbol :tag "wget" wget) (symbol :tag "w3m" w3m) @@ -275,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) @@ -358,7 +371,7 @@ If FOLLOW-REFRESH is non-nil, redirect refresh url in META." (with-temp-buffer (insert string) (mm-url-decode-entities) - (buffer-substring (point-min) (point-max)))) + (buffer-string))) (defun mm-url-form-encode-xwfu (chunk) "Escape characters in a string for application/x-www-form-urlencoded.