* nnmail.el (nnmail-cache-insert): make sure that the
[gnus] / lisp / mm-url.el
index 0f5af82..5fb925e 100644 (file)
@@ -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)
@@ -359,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.