Fix my last change.
[gnus] / lisp / mm-view.el
index 6fb7289..9f389ba 100644 (file)
@@ -64,7 +64,7 @@
     (set-extent-property annot 'duplicable t)))
 
 (eval-and-compile
-  (if (string-match "XEmacs" (emacs-version))
+  (if (featurep 'xemacs)
       (defalias 'mm-inline-image 'mm-inline-image-xemacs)
     (defalias 'mm-inline-image 'mm-inline-image-emacs)))
 
            (save-window-excursion
              (save-restriction
                (let ((w3-strict-width width)
+                     ;; Don't let w3 set the global version of
+                     ;; this variable.
+                     (fill-column fill-column)
                      (url-standalone-mode t))
                  (condition-case var
                      (w3-region (point-min) (point-max))
       (let ((b (point))
            (charset (mail-content-type-get
                      (mm-handle-type handle) 'charset)))
-       (if (eq charset 'gnus-decoded)
+       (if (or (eq charset 'gnus-decoded)
+               ;; This is probably not entirely correct, but
+               ;; makes rfc822 parts with embedded multiparts work. 
+               (eq mail-parse-charset 'gnus-decoded))
            (mm-insert-part handle)
          (insert (mm-decode-string (mm-get-part handle) charset)))
        (when (and (equal type "plain")
         handle
         `(lambda ()
            (let (buffer-read-only)
-             (condition-case nil
+             (if (fboundp 'remove-specifier)
                  ;; This is only valid on XEmacs.
                  (mapcar (lambda (prop)
                            (remove-specifier
                             (face-property 'default prop) (current-buffer)))
-                         '(background background-pixmap foreground))
-               (error nil))
+                         '(background background-pixmap foreground)))
              (delete-region ,(point-min-marker) ,(point-max-marker)))))))))
 
-(defun mm-display-patch-inline (handle)
+(defun mm-display-inline-fontify (handle mode)
   (let (text)
     (with-temp-buffer
       (mm-insert-part handle)
-      (diff-mode)
+      (funcall mode)
       (font-lock-fontify-buffer)
       (when (fboundp 'extent-list)
        (map-extents (lambda (ext ignored)
       (setq text (buffer-string)))
     (mm-insert-inline handle text)))
 
+(defun mm-display-patch-inline (handle)
+  (mm-display-inline-fontify handle 'diff-mode))
+
+(defun mm-display-elisp-inline (handle)
+  (mm-display-inline-fontify handle 'emacs-lisp-mode))
+
 (provide 'mm-view)
 
 ;; mm-view.el ends here