X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fmm-url.el;h=7505f9f17ba301fb87b63cbc1df50473048f2d1a;hb=8c2a5a5cf5226f37cbe192d6aee9df67d8ec93c9;hp=42d3fceaecabbf7ad1beac46af3fbe232d8400a7;hpb=e6b31519e256eaa52280b45df80d5b436c1539b1;p=elisp%2Fgnus.git- diff --git a/lisp/mm-url.el b/lisp/mm-url.el index 42d3fce..7505f9f 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, 2003 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu @@ -17,8 +17,8 @@ ;; 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., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -31,14 +31,16 @@ (eval-when-compile (require 'cl)) -(require 'mm-util) +(require 'nnheader) ;; for `mm-char-or-char-int-p'. (require 'gnus) (eval-and-compile (autoload 'exec-installed-p "path-util")) (eval-when-compile - (require 'timer)) + (if (featurep 'xemacs) + (require 'timer-funcs) + (require 'timer))) (defgroup mm-url nil "A wrapper of url package and external url command for Gnus." @@ -49,14 +51,15 @@ (require 'url) (error nil))) "*If non-nil, use external grab program `mm-url-program'." + :version "22.1" :type 'boolean :group 'mm-url) (defvar mm-url-predefined-programs - '((wget "wget" "-q" "-O" "-") + '((wget "wget" "--user-agent=mm-url" "-q" "-O" "-") (w3m "w3m" "-dump_source") (lynx "lynx" "-source") - (curl "curl"))) + (curl "curl" "--silent"))) (defcustom mm-url-program (cond @@ -67,6 +70,7 @@ (t "GET")) "The url grab program. Likely values are `wget', `w3m', `lynx' and `curl'." + :version "22.1" :type '(choice (symbol :tag "wget" wget) (symbol :tag "w3m" w3m) @@ -77,6 +81,7 @@ Likely values are `wget', `w3m', `lynx' and `curl'." (defcustom mm-url-arguments nil "The arguments for `mm-url-program'." + :version "22.1" :type '(repeat string) :group 'mm-url) @@ -272,7 +277,10 @@ This is taken from RFC 2396.") (require 'w3-vars) (require 'url))) +;;;###autoload (defun mm-url-insert-file-contents (url) + "Insert file contents of URL. +If `mm-url-use-external' is non-nil, use `mm-url-program'." (if mm-url-use-external (progn (if (string-match "^file:/+" url) @@ -280,7 +288,7 @@ This is taken from RFC 2396.") (mm-url-insert-file-contents-external url)) (goto-char (point-min)) (if (fboundp 'url-generic-parse-url) - (setq url-current-object + (setq url-current-object (url-generic-parse-url url))) (list url (buffer-size))) (mm-url-load-url) @@ -303,7 +311,9 @@ This is taken from RFC 2396.") (car result)))) result))) +;;;###autoload (defun mm-url-insert-file-contents-external (url) + "Insert file contents of URL using `mm-url-program'." (let (program args) (if (symbolp mm-url-program) (let ((item (cdr (assq mm-url-program mm-url-predefined-programs)))) @@ -311,7 +321,8 @@ This is taken from RFC 2396.") args (append (cdr item) (list url)))) (setq program mm-url-program args (append mm-url-arguments (list url)))) - (apply 'call-process program nil t nil args))) + (unless (eq 0 (apply 'call-process program nil t nil args)) + (error "Couldn't fetch %s" url)))) (defvar mm-url-timeout 30 "The number of seconds before timing out an URL fetch.") @@ -394,9 +405,7 @@ spaces. Die Die Die." (encode-coding-string chunk (if (fboundp 'find-coding-systems-string) (car (find-coding-systems-string chunk)) - (static-if (boundp 'MULE) - file-coding-system - buffer-file-coding-system))) + buffer-file-coding-system)) chunk) ""))