(mml2015-epg-sign): Save the signing keys in
[gnus] / lisp / mm-url.el
index 9387fb3..c0e1f33 100644 (file)
@@ -1,6 +1,7 @@
 ;;; mm-url.el --- a wrapper of url functions/commands for Gnus
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005,
+;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 
 (require 'mm-util)
 (require 'gnus)
 
-(eval-when-compile
-  (if (featurep 'xemacs)
-      (require 'timer-funcs)
-    (require 'timer)))
+(defvar url-current-object)
+(defvar url-package-name)
+(defvar url-package-version)
 
 (defgroup mm-url nil
   "A wrapper of url package and external url command for Gnus."
@@ -57,7 +57,7 @@
   '((wget "wget" "--user-agent=mm-url" "-q" "-O" "-")
     (w3m  "w3m" "-dump_source")
     (lynx "lynx" "-source")
-    (curl "curl" "--silent")))
+    (curl "curl" "--silent" "--user-agent mm-url" "--location")))
 
 (defcustom mm-url-program
   (cond
@@ -269,7 +269,10 @@ This is taken from RFC 2396.")
 (defun mm-url-load-url ()
   "Load `url-insert-file-contents'."
   (unless (condition-case ()
-             (require 'url-handlers)
+             (progn
+               (require 'url-handlers)
+               (require 'url-parse)
+               (require 'url-vars))
            (error nil))
     ;; w3-4.0pre0.46 or earlier version.
     (require 'w3-vars)
@@ -291,7 +294,13 @@ If `mm-url-use-external' is non-nil, use `mm-url-program'."
        (list url (buffer-size)))
     (mm-url-load-url)
     (let ((name buffer-file-name)
-         (url-request-extra-headers (list (cons "Connection" "Close")))
+         (url-request-extra-headers
+          ;; ISTM setting a Connection header was a workaround for
+          ;; older versions of url included with w3, but it does more
+          ;; harm than good with the one shipped with Emacs. --ansel
+          (if (not (and (boundp 'url-version)
+                        (equal url-version "Emacs")))
+              (list (cons "Connection" "Close"))))
          (url-package-name (or mm-url-package-name
                                url-package-name))
          (url-package-version (or mm-url-package-version
@@ -358,7 +367,7 @@ If FOLLOW-REFRESH is non-nil, redirect refresh url in META."
 (defun mm-url-decode-entities ()
   "Decode all HTML entities."
   (goto-char (point-min))
-  (while (re-search-forward "&\\(#[0-9]+\\|[a-z]+\\);" nil t)
+  (while (re-search-forward "&\\(#[0-9]+\\|[a-z]+[0-9]*\\);" nil t)
     (let ((elem (if (eq (aref (match-string 1) 0) ?\#)
                        (let ((c
                               (string-to-number (substring