Merge branch 'master' of https://git.gnus.org/gnus
authorLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Tue, 5 Oct 2010 07:53:39 +0000 (09:53 +0200)
committerLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Tue, 5 Oct 2010 07:53:39 +0000 (09:53 +0200)
ChangeLog
configure
configure.in
lisp/ChangeLog
lisp/gnus-html.el
lisp/gnus-registry.el
lisp/gnus-util.el
lisp/lpath.el
lisp/mm-decode.el

index 50c0cae..1cf0fbc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-10-04  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * configure.in: Fix help strings.
+
 2010-04-23  Teodor Zlatanov  <tzz@lifelogs.com>
 
        * .gitignore: Remove configure from ignores.
index 4b00ae8..c24dba8 100755 (executable)
--- a/configure
+++ b/configure
@@ -1239,8 +1239,8 @@ if test -n "$ac_init_help"; then
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-xemacs           Use XEmacs to build
-  --with-emacs            Use Emacs to build
+  --with-xemacs[=PROG]    use XEmacs to build (default: PROG=xemacs)
+  --with-emacs[=PROG]     use Emacs to build (default: PROG=emacs)
   --with-lispdir=DIR      Where to install lisp files
   --with-etcdir=DIR       Where to install etc files
   --with-url=DIR          Specify where to find the url package
@@ -3565,4 +3565,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
-
index e4c53c9..d697ea0 100644 (file)
@@ -10,9 +10,13 @@ if test "${EMACS}" = "t"; then
    EMACS=""
 fi
 
-AC_ARG_WITH(xemacs,[  --with-xemacs           Use XEmacs to build], 
+AC_ARG_WITH(xemacs,
+       [AS_HELP_STRING([[--with-xemacs[=PROG]]],
+                       [use XEmacs to build (default: PROG=xemacs)])],
        [ if test "${withval}" = "yes"; then EMACS=xemacs; else EMACS=${withval}; fi ])
-AC_ARG_WITH(emacs,[  --with-emacs            Use Emacs to build], 
+AC_ARG_WITH(emacs,
+       [AS_HELP_STRING([[--with-emacs[=PROG]]],
+                       [use Emacs to build (default: PROG=emacs)])],
        [ if test "${withval}" = "yes"; then EMACS=emacs; else EMACS=${withval}; fi ])
 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, no)
 
index 65cae79..30296e6 100644 (file)
@@ -1,3 +1,28 @@
+2010-10-05  Julien Danjou  <julien@danjou.info>
+
+       * gnus-util.el (gnus-emacs-completing-read)
+       (gnus-iswitchb-completing-read): Use autoload rather than require.
+
+2010-10-05  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * lpath.el: Fbind libxml-parse-html-region and shr-insert-document for
+       Emacs 22 and XEmacs; fbind help-function-arglist for XEmacs 21.4 and
+       SXEmacs; fbind ido-completing-read, and bind iswitchb-mode and
+       iswitchb-temp-buflist for XEmacs.
+
+       * gnus-util.el (gnus-completing-read-function): Exclude
+       gnus-icompleting-read and gnus-ido-completing-read from candidates for
+       XEmacs since iswitchb.el is very old and ido.el is unavailable in
+       XEmacs.
+
+       * gnus-registry.el (gnus-registry-install-nnregistry): Rewrite so as
+       not to use `delete-dups' that is unavailable in XEmacs 21.4.
+
+       * gnus-html.el: Don't require help-fns under XEmacs.
+       (gnus-html-schedule-image-fetching): Work for XEmacs.
+
+       * mm-decode.el (mm-shr): Decode contents by charset.
+
 2010-10-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * nnimap.el (nnimap-open-connection): Give an error if nnimap-stream is
index d0414e7..3ae3766 100644 (file)
@@ -37,7 +37,7 @@
 (require 'url-cache)
 (require 'xml)
 (require 'browse-url)
-(require 'help-fns)
+(eval-and-compile (unless (featurep 'xemacs) (require 'help-fns)))
 
 (defcustom gnus-html-image-cache-ttl (days-to-time 7)
   "Time used to determine if we should use images from the cache."
@@ -367,7 +367,10 @@ Use ALT-TEXT for the image string."
   (let ((args (list (car image)
                    'gnus-html-image-fetched
                    (list buffer image))))
-    (when (> (length (help-function-arglist 'url-retrieve)) 4)
+    (when (> (length (if (featurep 'xemacs)
+                        (split-string (function-arglist 'url-retrieve))
+                      (help-function-arglist 'url-retrieve)))
+            4)
       (setq args (nconc args (list t))))
     (apply #'url-retrieve args)))
 
index cbea1e1..45fa956 100644 (file)
@@ -1153,13 +1153,16 @@ Returns the first place where the trail finds a group name."
 (defun gnus-registry-install-nnregistry ()
   "Install the nnregistry refer method in `gnus-refer-article-method'."
   (interactive)
-  (setq gnus-refer-article-method
-        (delete-dups
-         (append
-          (if (listp gnus-refer-article-method)
-              gnus-refer-article-method
-            (list gnus-refer-article-method))
-          (list 'nnregistry)))))
+  (cond ((eq 'nnregistry gnus-refer-article-method))
+       ((null gnus-refer-article-method)
+        (setq gnus-refer-article-method 'nnregistry))
+       ((consp gnus-refer-article-method)
+        (unless (memq 'nnregistry gnus-refer-article-method)
+          (setq gnus-refer-article-method
+                (append gnus-refer-article-method '(nnregistry)))))
+       (t
+        (setq gnus-refer-article-method
+              (list gnus-refer-article-method 'nnregistry)))))
 
 (defun gnus-registry-unload-hook ()
   "Uninstall the registry hooks."
index e4b8f8f..5fda600 100644 (file)
   "Function use to do completing read."
   :version "24.1"
   :group 'gnus-meta
-  :type '(radio (function-item
+  :type `(radio (function-item
                  :doc "Use Emacs standard `completing-read' function."
                  gnus-emacs-completing-read)
-                (function-item
-                 :doc "Use `ido-completing-read' function."
-                 gnus-ido-completing-read)
-                (function-item
-                 :doc "Use iswitchb based completing-read function."
-                 gnus-iswitchb-completing-read)))
+               ;; iswitchb.el is very old and ido.el is unavailable
+               ;; in XEmacs, so we exclude those function items.
+               ,@(unless (featurep 'xemacs)
+                   '((function-item
+                      :doc "Use `ido-completing-read' function."
+                      gnus-ido-completing-read)
+                     (function-item
+                      :doc "Use iswitchb based completing-read function."
+                      gnus-iswitchb-completing-read)))))
 
 (defcustom gnus-completion-styles
   (if (and (boundp 'completion-styles-alist)
@@ -1608,16 +1611,17 @@ SPEC is a predicate specifier that contains stuff like `or', `and',
                      (mapcar 'list collection)
                      nil require-match initial-input history def)))
 
+(autoload 'ido-completing-read "ido")
 (defun gnus-ido-completing-read (prompt collection &optional require-match
                                         initial-input history def)
   "Call `ido-completing-read-function'."
-  (require 'ido)
   (ido-completing-read prompt collection nil require-match initial-input history def))
 
+
+(autoload 'iswitchb-read-buffer "iswitchb")
 (defun gnus-iswitchb-completing-read (prompt collection &optional require-match
                                             initial-input history def)
   "`iswitchb' based completing-read function."
-  (require 'iswitchb)
   (let ((iswitchb-make-buflist-hook
          (lambda ()
            (setq iswitchb-temp-buflist
index dc2d6cc..7726dff 100644 (file)
        Info-index-next Info-menu bbdb-complete-name bookmark-default-handler
        bookmark-get-bookmark-record bookmark-make-record-default
        bookmark-prop-get display-time-event-handler epg-check-configuration
-       find-coding-system frame-device recenter-top-bottom
-       rmail-swap-buffers-maybe w3-do-setup w3-parse-buffer w3-prepare-buffer
-       w3-region w3m-detect-meta-charset w3m-region))
+       find-coding-system frame-device libxml-parse-html-region
+       recenter-top-bottom rmail-swap-buffers-maybe shr-insert-document
+       w3-do-setup w3-parse-buffer w3-prepare-buffer w3-region
+       w3m-detect-meta-charset w3m-region))
     (maybe-bind
      '(w3m-link-map))))
 
      display-time-event-handler epg-check-configuration event-click-count
      event-end event-start find-coding-systems-for-charsets
      find-coding-systems-region find-coding-systems-string find-image
-     float-time help-buffer image-size image-type-available-p insert-image
+     float-time help-buffer ido-completing-read image-size
+     image-type-available-p insert-image libxml-parse-html-region
      mail-abbrevs-setup make-mode-line-mouse-map make-network-process
      mouse-minibuffer-check mouse-movement-p mouse-scroll-subr overlay-lists
      pgg-display-output-buffer posn-point posn-window put-image read-event
      recenter-top-bottom rmail-msg-restore-non-pruned-header
-     rmail-swap-buffers-maybe select-safe-coding-system sort-coding-systems
-     track-mouse ucs-to-char url-generic-parse-url url-insert-file-contents
-     vcard-pretty-print w3-parse-buffer w3m-detect-meta-charset w3m-region
-     window-edges))
+     rmail-swap-buffers-maybe select-safe-coding-system shr-insert-document
+     sort-coding-systems track-mouse ucs-to-char url-generic-parse-url
+     url-insert-file-contents vcard-pretty-print w3-parse-buffer
+     w3m-detect-meta-charset w3m-region window-edges))
   (maybe-bind
    '(adaptive-fill-first-line-regexp
      buffer-display-table completion-styles completion-styles-alist
      cursor-in-non-selected-windows default-enable-multibyte-characters
      default-file-name-coding-system eudc-protocol filladapt-mode
      gnus-agent-expire-current-dirs help-xref-stack-item idna-program
-     installation-directory line-spacing mark-active
-     mouse-selection-click-count mouse-selection-click-count-buffer
+     installation-directory iswitchb-mode iswitchb-temp-buflist line-spacing
+     mark-active mouse-selection-click-count mouse-selection-click-count-buffer
      ps-print-color-p rmail-default-file rmail-default-rmail-file
      rmail-insert-mime-forwarded-message-function show-trailing-whitespace
      smtpmail-default-smtp-server temporary-file-directory tool-bar-mode
     (maybe-fbind
      '(custom-autoload
        decode-char display-graphic-p display-images-p display-visual-class
-       get-display-table make-temp-file next-single-char-property-change
-       put-display-table select-frame-set-input-focus set-buffer-multibyte
-       string-as-multibyte timer-set-function unicode-precedence-list
-       unicode-to-char))
+       get-display-table help-function-arglist make-temp-file
+       next-single-char-property-change put-display-table
+       select-frame-set-input-focus set-buffer-multibyte string-as-multibyte
+       timer-set-function unicode-precedence-list unicode-to-char))
     (maybe-bind
      '(header-line-format
        scroll-margin timer-list)))
index ab96e34..edbd252 100644 (file)
@@ -1679,14 +1679,27 @@ If RECURSIVE, search recursively."
         (and (eq (mm-body-7-or-8) '7bit)
              (not (mm-long-lines-p 76))))))
 
+(declare-function libxml-parse-html-region "xml.c"
+                 (start end &optional base-url))
+(declare-function shr-insert-document "shr" (dom))
+
 (defun mm-shr (handle)
-  (let ((article-buffer (current-buffer)))
+  (let ((article-buffer (current-buffer))
+       charset)
     (unless handle
       (setq handle (mm-dissect-buffer t)))
+    (setq charset (mail-content-type-get (mm-handle-type handle) 'charset))
     (save-restriction
       (narrow-to-region (point) (point))
       (shr-insert-document
        (mm-with-part handle
+        (when (and charset
+                   (setq charset (mm-charset-to-coding-system charset))
+                   (not (eq charset 'ascii)))
+          (insert (prog1
+                      (mm-decode-coding-string (buffer-string) charset)
+                    (erase-buffer)
+                    (mm-enable-multibyte))))
         (libxml-parse-html-region (point-min) (point-max)))))))
 
 (provide 'mm-decode)