X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fmm-url.el;h=35a43f5bd273634fa29a9588488f14cd67fe994a;hb=524e94faf9db4206a60cf28a34ebb564a3f410d4;hp=9387fb348f258922d50b130fc2839461fe4302ab;hpb=786d05e27f23ae1e1254d90a50f61487e168c616;p=gnus diff --git a/lisp/mm-url.el b/lisp/mm-url.el index 9387fb348..35a43f5bd 100644 --- a/lisp/mm-url.el +++ b/lisp/mm-url.el @@ -1,25 +1,24 @@ ;;; 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, 2007, 2008, 2009, 2010 +;; Free Software Foundation, Inc. ;; Author: Shenghuo Zhu ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published -;; by the Free Software Foundation; either version 2, or (at your -;; option) any later version. +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. -;; GNU Emacs is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -35,10 +34,9 @@ (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 +55,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 +267,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 +292,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,12 +365,12 @@ 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 - (match-string 1) 1)))) - (if (mm-char-or-char-int-p c) c 32)) + (let ((c (mm-ucs-to-char + (string-to-number + (substring (match-string 1) 1))))) + (if (mm-char-or-char-int-p c) c ?#)) (or (cdr (assq (intern (match-string 1)) mm-url-html-entities)) ?#)))) @@ -449,5 +456,5 @@ spaces. Die Die Die." (provide 'mm-url) -;;; arch-tag: 0594f9b3-417c-48b0-adc2-5082e1e7917f +;; arch-tag: 0594f9b3-417c-48b0-adc2-5082e1e7917f ;;; mm-url.el ends here