Importing Oort Gnus v0.01.
[elisp/gnus.git-] / lisp / mm-view.el
index d2a67a0..639c32e 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mm-view.el --- Functions for viewing MIME objects
-;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
                    (and (boundp 'w3-meta-charset-content-type-regexp)
                         (re-search-forward
                          w3-meta-charset-content-type-regexp nil t)))
-               (setq charset (or (w3-coding-system-for-mime-charset 
-                                  (buffer-substring-no-properties 
-                                   (match-beginning 2) 
+               (setq charset (or (w3-coding-system-for-mime-charset
+                                  (buffer-substring-no-properties
+                                   (match-beginning 2)
                                    (match-end 2)))
                                  charset)))
            (delete-region (point-min) (point-max))
                      (mm-handle-type handle) 'charset)))
        (if (or (eq charset 'gnus-decoded)
                ;; This is probably not entirely correct, but
-               ;; makes rfc822 parts with embedded multiparts work. 
+               ;; makes rfc822 parts with embedded multiparts work.
                (eq mail-parse-charset 'gnus-decoded))
            (save-restriction
              (narrow-to-region (point) (point))
       (setq handles gnus-article-mime-handles))
     (when handles
       (setq gnus-article-mime-handles
-           (nconc gnus-article-mime-handles 
-                  (if (listp (car handles)) 
-                      handles (list handles))))))
+           (mm-merge-handles gnus-article-mime-handles handles))))
   (fundamental-mode)
   (goto-char (point-min)))
 
 (defun mm-inline-message (handle)
   (let ((b (point))
+       (bolp (bolp))
        (charset (mail-content-type-get
                  (mm-handle-type handle) 'charset))
        gnus-displaying-mime handles)
        (narrow-to-region b b)
        (mm-insert-part handle)
        (let (gnus-article-mime-handles
-             ;; disable prepare hook 
-             gnus-article-prepare-hook  
+             ;; disable prepare hook
+             gnus-article-prepare-hook
              (gnus-newsgroup-charset
               (or charset gnus-newsgroup-charset)))
          (run-hooks 'gnus-article-decode-hook)
          (gnus-article-prepare-display)
          (setq handles gnus-article-mime-handles))
+       (goto-char (point-min))
+       (unless bolp
+         (insert "\n"))
        (goto-char (point-max))
        (unless (bolp)
          (insert "\n"))
        (insert "----------\n\n")
        (when handles
          (setq gnus-article-mime-handles
-               (nconc gnus-article-mime-handles 
-                      (if (listp (car handles)) 
-                          handles (list handles)))))
+               (mm-merge-handles gnus-article-mime-handles handles)))
        (mm-handle-set-undisplayer
         handle
         `(lambda ()