nnweb.el (nnweb-google-parse-1): Fix minor Y10k bug
[gnus] / lisp / mm-decode.el
index 5f5d06d..8076b2e 100644 (file)
@@ -1,6 +1,6 @@
 ;;; mm-decode.el --- Functions for decoding MIME things
 
-;; Copyright (C) 1998-2012  Free Software Foundation, Inc.
+;; Copyright (C) 1998-2012 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     MORIOKA Tomohiko <morioka@jaist.ac.jp>
@@ -29,7 +29,6 @@
 
 (require 'mail-parse)
 (require 'mm-bodies)
-(require 'mm-archive)
 (eval-when-compile (require 'cl)
                   (require 'term))
 
 (autoload 'mm-extern-cache-contents "mm-extern")
 (autoload 'mm-insert-inline "mm-view")
 
+(autoload 'mm-archive-decoders "mm-archive")
+(autoload 'mm-archive-dissect-and-inline "mm-archive")
+(autoload 'mm-dissect-archive "mm-archive")
+
 (defvar gnus-current-window-configuration)
 
 (add-hook 'gnus-exit-gnus-hook 'mm-destroy-postponed-undisplay-list)
@@ -278,7 +281,8 @@ before the external MIME handler is invoked."
                     (ignore-errors
                       (if (fboundp 'create-image)
                           (create-image (buffer-string) 'imagemagick 'data-p)
-                        (mm-create-image-xemacs (mm-handle-media-subtype handle))))))
+                        (mm-create-image-xemacs
+                         (mm-handle-media-subtype handle))))))
                (when image
                  (setcar (cdr handle) (list "image/imagemagick"))
                  (mm-image-fit-p handle)))))))
@@ -573,7 +577,9 @@ Postpone undisplaying of viewers for types in
 (autoload 'message-fetch-field "message")
 
 (defun mm-dissect-buffer (&optional no-strict-mime loose-mime from)
-  "Dissect the current buffer and return a list of MIME handles."
+  "Dissect the current buffer and return a list of MIME handles.
+If NO-STRICT-MIME, don't require the message to have a
+MIME-Version header before proceeding."
   (save-excursion
     (let (ct ctl type subtype cte cd description id result)
       (save-restriction
@@ -671,7 +677,7 @@ Postpone undisplaying of viewers for types in
     (let ((handle
           (mm-make-handle
            (mm-copy-to-buffer) ctl cte nil cdl description nil id))
-         (decoder (assoc (car ctl) mm-archive-decoders)))
+         (decoder (assoc (car ctl) (mm-archive-decoders))))
       (if (and decoder
               ;; Do automatic decoding
               (cadr decoder)
@@ -1508,7 +1514,7 @@ be determined."
   (let ((image (mm-get-image handle)))
     (or (not image)
        (if (featurep 'xemacs)
-           ;; XEmacs' glyphs can actually tell us about their width, so
+           ;; XEmacs's glyphs can actually tell us about their width, so
            ;; let's be nice and smart about them.
            (or mm-inline-large-images
                (and (<= (glyph-width image) (window-pixel-width))
@@ -1772,6 +1778,10 @@ If RECURSIVE, search recursively."
                                    (string-to-number (match-string 2)))
                                  mm-extra-numeric-entities)))
             (replace-match (char-to-string char))))
+        ;; Remove "soft hyphens".
+        (goto-char (point-min))
+        (while (search-forward "­" nil t)
+          (replace-match "" t t))
         (libxml-parse-html-region (point-min) (point-max))))
       (unless (bobp)
        (insert "\n"))