+2000-10-21 11:23:21  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * mm-util.el (mm-multibyte-p): Test (featurep 'xemacs).
+
+2000-10-21 10:54:57  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-art.el (gnus-article-mime-total-parts): New function.
+       (gnus-mm-display-part): Use it.
+       (gnus-mime-display-single): Ditto.
+       (gnus-mime-display-alternative): Ditto.
+
+2000-10-21 09:38:27  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * mailcap.el (mailcap-parse-mailcaps): Don't use parse-colon-path,
+       because they are files, not directories.
+       (mailcap-parse-mimetypes): Ditto.
+
+2000-10-20 19:55:59  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-art.el (gnus-mime-inline-part): Check validity of charset.
+
 2000-10-18  Dave Love  <fx@gnu.org>
 
        * mail-source.el (mm-util): Require.
 
                  (read-coding-system "Charset: ")))))
       (forward-line 2)
       (mm-insert-inline handle
-                       (if charset 
-                           (mm-decode-coding-string
-                            contents (mm-charset-to-coding-system charset))
+                       (if (and charset 
+                                (setq charset (mm-charset-to-coding-system 
+                                               charset))
+                                (not (eq charset 'ascii)))
+                           (mm-decode-coding-string contents charset)
                          contents))
       (goto-char b))))
 
          (when (eq (gnus-mm-display-part handle) 'internal)
            (gnus-set-window-start)))))))
 
+(defsubst gnus-article-mime-total-parts ()
+  (if (bufferp (car gnus-article-mime-handles))
+      1 ;; single part
+    (1- (length gnus-article-mime-handles))))
+
 (defun gnus-mm-display-part (handle)
   "Display HANDLE and fix MIME button."
   (let ((id (get-text-property (point) 'gnus-part))
                      (narrow-to-region (point) (point-max))
                      (gnus-treat-article
                       nil id
-                      (1- (length gnus-article-mime-handles))
+                      (gnus-article-mime-total-parts)
                       (mm-handle-media-type handle)))))
              (select-window window))))
       (goto-char point)
            (setq display t)
          (when (equal (mm-handle-media-supertype handle) "text")
            (setq text t)))
-       (let ((id (1+ (length gnus-article-mime-handle-alist))))
+       (let ((id (1+ (length gnus-article-mime-handle-alist)))
+             beg)
          (push (cons id handle) gnus-article-mime-handle-alist)
          (when (or (not display)
                    (not (gnus-unbuttonized-mime-type-p type)))
             handle id (list (or display (and not-attachment text))))
            (gnus-article-insert-newline)
            ;(gnus-article-insert-newline)
-           (setq move t)))
-       (let ((beg (point)))
+           (setq move t))
+         (setq beg (point))
          (cond
           (display
            (when move
            (save-restriction
              (narrow-to-region beg (point))
              (gnus-treat-article
-              nil (length gnus-article-mime-handle-alist)
-              (1- (length gnus-article-mime-handles))
+              nil id 
+              (gnus-article-mime-total-parts)
               (mm-handle-media-type handle)))))))))
 
 (defun gnus-unbuttonized-mime-type-p (type)
                  (narrow-to-region (car begend) (point-max))
                  (gnus-treat-article
                   nil (length gnus-article-mime-handle-alist)
-                  (1- (length gnus-article-mime-handles))
+                  (gnus-article-mime-total-parts)
                   (mm-handle-media-type handle))))))
          (goto-char (point-max))
          (setcdr begend (point-marker)))))
 
                "/usr/local/etc/mailcap"))))
     (let ((fnames (reverse
                   (if (stringp path)
-                      (parse-colon-path path)
+                      (delete "" (split-string path path-separator))
                     path)))
          fname)
       (while fnames
                "/usr/local/etc/mime-types"
                "/usr/local/www/conf/mime-types"))))
     (let ((fnames (reverse (if (stringp path)
-                              (parse-colon-path path)
+                              (delete "" (split-string path path-separator))
                             path)))
          fname)
       (while fnames