+1998-11-16  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.10.032.
+
+       * Sync up with Pterodactyl Gnus 0.47.
+
 1998-11-15  Tatsuya Ichikawa  <t-ichi@po.shiojiri.ne.jp>
 
        * lisp/gnus.el (gnus-version-number): Update to 6.10.031.
 
 * T-gnus 6.8.19 is the last version Gnus 5.6 base.
   After this , T-gnus 6.10 - this is based on Pterodactyl Gnus.
 
-  The latest T-gnus is T-gnus 6.10.029 (Based on pgnus-0.42).
+  The latest T-gnus is T-gnus 6.10.032 (Based on pgnus-0.47).
 
+Sun Nov 15 22:01:55 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Pterodactyl Gnus v0.47 is released.
+
+1998-11-15 20:11:33  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * message.el (message-encode-message-body): Insert MIME warning. 
+
+       * mml.el (mml-read-tag): Look for #tag.
+
+       * mm-util.el (mm-find-charset-region): Check whether
+       enable-multibyte-characters is bound. 
+
 Sun Nov 15 02:01:31 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Pterodactyl Gnus v0.46 is released.
 
 (defconst gnus-product-name "T-gnus"
   "Product name of this version of gnus.")
 
-(defconst gnus-version-number "6.10.031"
+(defconst gnus-version-number "6.10.032"
   "Version number for this version of gnus.")
 
-(defconst gnus-original-version-number "0.46"
+(defconst gnus-original-version-number "0.47"
     "Version number for this version of Gnus.")
 
 (defconst gnus-original-product-name "Pterodactyl Gnus"
 
 ;;; MIME functions
 ;;;
 
+(defun message-insert-mime-part (file type)
+  "Insert a multipart/alternative part into the buffer."
+  (interactive
+   (let* ((file (read-file-name "Insert file: " nil nil t))
+         (type (mm-default-file-encoding file)))
+     (list file
+          (completing-read
+           (format "MIME type for %s: " file)
+           (mapcar (lambda (m) (list (cdr m))) mailcap-mime-extensions)
+           nil nil type))))
+  (insert (format "<#part type=%s filename=\"%s\"><#/part>\n"
+                 type file)))
+
 (defun message-encode-message-body ()
   (message-goto-body)
-  (narrow-to-region (point) (point-max))
-  (let ((new (mml-generate-mime)))
-    (delete-region (point-min) (point-max))
-    (insert new)
-    (goto-char (point-min))
-    (widen)
-    (forward-line -1)
-    (let ((beg (point))
-         (line (buffer-substring (point) (progn (forward-line 1) (point)))))
-      (delete-region beg (point))
-      (insert "Mime-Version: 1.0\n")
-      (insert line))))
+  (save-restriction
+    (narrow-to-region (point) (point-max))
+    (let ((new (mml-generate-mime)))
+      (delete-region (point-min) (point-max))
+      (insert new)
+      (goto-char (point-min))
+      (widen)
+      (forward-line -1)
+      (let ((beg (point))
+           (line (buffer-substring (point) (progn (forward-line 1) (point)))))
+       (delete-region beg (point))
+       (insert "Mime-Version: 1.0\n")
+       (search-forward "\n\n")
+       (insert line)
+       (when (save-excursion
+               (re-search-backward "^Content-Type: multipart/" nil t))
+         (insert "This is a MIME multipart message.  If you are reading\n")
+         (insert "this, you shouldn't.\n\n"))))))
 
 (defvar message-save-buffer " *encoding")
 (defun message-save-drafts ()
     (set-buffer buffer)
     (set-buffer-modified-p nil)))
 
-(defun message-insert-mime-part (file type)
-  "Insert a multipart/alternative part into the buffer."
-  (interactive
-   (let* ((file (read-file-name "Insert file: " nil nil t))
-         (type (mm-default-file-encoding file)))
-     (list file
-          (completing-read
-           (format "MIME type for %s: " file)
-           (mapcar (lambda (m) (list (cdr m))) mailcap-mime-extensions)
-           nil nil type))))
-  (insert (format "<part type=%s filename=\"%s\"></part>\n"
-                 type file)))
-
-    
 (run-hooks 'message-load-hook)
 
 (provide 'message)
 
 
 (defun mm-find-charset-region (b e)
   "Return a list of charsets in the region."
-  (if enable-multibyte-characters
+  (if (and (boundp 'enable-multibyte-characters)
+          enable-multibyte-characters)
       (find-charset-region b e)
     ;; We are in a unibyte buffer, so we futz around a bit.
     (save-excursion
 
   "Parse the current buffer as an MML document."
   (let (struct)
     (while (and (not (eobp))
-               (not (looking-at "</multipart")))
+               (not (looking-at "</#multipart")))
       (cond
-       ((looking-at "<multipart")
+       ((looking-at "<#multipart")
        (push (nconc (mml-read-tag) (mml-parse-1)) struct))
-       ((looking-at "<part")
+       ((looking-at "<#part")
        (push (nconc (mml-read-tag) (list (cons 'contents (mml-read-part))))
              struct))
        (t
 (defun mml-read-tag ()
   "Read a tag and return the contents."
   (let (contents name elem val)
-    (forward-char 1)
+    (forward-char 2)
     (setq name (buffer-substring (point) (progn (forward-sexp 1) (point))))
     (skip-chars-forward " \t\n")
     (while (not (looking-at ">"))
 (defun mml-read-part ()
   "Return the buffer up till the next part, multipart or closing part or multipart."
   (let ((beg (point)))
-    (if (re-search-forward "</?\\(multi\\)?part." nil t)
+    (if (re-search-forward "<#/?\\(multi\\)?part." nil t)
        (prog1
            (buffer-substring beg (match-beginning 0))
-         (unless (equal (match-string 0) "</part>")
+         (unless (equal (match-string 0) "<#/part>")
            (goto-char (match-beginning 0))))
       (buffer-substring beg (goto-char (point-max))))))
 
       (with-temp-buffer
        (if (setq filename (cdr (assq 'filename cont)))
            (insert-file-contents-literally filename)
-         (insert (cdr (assq 'contents cont))))
+         (save-restriction
+           (narrow-to-region (point) (point))
+           (insert (cdr (assq 'contents cont)))
+           (goto-char (point-min))
+           (while (re-search-forward "<#!+\\(part\\|multipart\\)" nil t)
+             (delete-region (+ (match-beginning 0) 2)
+                            (+ (match-beginning 0) 3)))))
        (if (equal (car (split-string type "/")) "text")
            (setq charset (mm-encode-body)
                  encoding (mm-body-encoding))
        (mml-generate-mime-1 (pop cont)))
       (insert "--" mml-boundary "--\n")))
    (t
-    (error "%S" cont))))
+    (error "Invalid element: %S" cont))))
 
 (provide 'mml)
 
 
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus-ja
-@settitle Semi-gnus 6.10.031 Manual
+@settitle Semi-gnus 6.10.032 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 @tex
 
 @titlepage
-@title Semi-gnus 6.10.031 Manual
+@title Semi-gnus 6.10.032 Manual
 
 @author by Lars Magne Ingebrigtsen
 @author by members of Semi-gnus mailing-list
 \e$B$J8@8l7w$r:9JL$7$^$;$s!#$"$"!"%/%j%s%4%s$NJ}$O\e(B Unicode Next Generation\e$B$r\e(B
 \e$B$*BT$A$/$@$5$$!#\e(B
 
-\e$B$3$N@bL@=q$O\e(B Semi-gnus 6.10.031 \e$B$KBP1~$7$^$9!#\e(B
+\e$B$3$N@bL@=q$O\e(B Semi-gnus 6.10.032 \e$B$KBP1~$7$^$9!#\e(B
 
 @end ifinfo
 
 
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Semi-gnus 6.10.031 Manual
+@settitle Semi-gnus 6.10.032 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 @tex
 
 @titlepage
-@title Semi-gnus 6.10.031 Manual
+@title Semi-gnus 6.10.032 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
 API.  So Semi-gnus does not discriminate various language communities.
 Oh, if you are a Klingon, please wait Unicode Next Generation.
 
-This manual corresponds to Semi-gnus 6.10.031.
+This manual corresponds to Semi-gnus 6.10.032.
 
 @end ifinfo
 
 
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message-ja
-@settitle Message 6.10.029 Manual
+@settitle Message 6.10.032 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 @tex
 
 @titlepage
-@title Message 6.10.029 Manual
+@title Message 6.10.032 Manual
 
 @author by Lars Magne Ingebrigtsen
 @translated by members of Semi-gnus mailing-list
 * Key Index::         \e$B%a%C%;!<%8%b!<%I%-!<$N0lMw!#\e(B
 @end menu
 
-\e$B$3$N%^%K%e%"%k$O\e(B Message 6.10.029 \e$B$KBP1~$7$^$9!#\e(BMessage \e$B$O$3$N%^%K%e%"%k$H\e(B
+\e$B$3$N%^%K%e%"%k$O\e(B Message 6.10.032 \e$B$KBP1~$7$^$9!#\e(BMessage \e$B$O$3$N%^%K%e%"%k$H\e(B
 \e$BF1$8HGHV9f$N\e(B Gnus \e$B$NG[I[$H6&$KG[I[$5$l$^$9!#\e(B
 
 
 
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Pterodactyl Message 0.46 Manual
+@settitle Message 6.10.032 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 @tex
 
 @titlepage
-@title Pterodactyl Message 0.46 Manual
+@title Message 6.10.032 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
 * Key Index::         List of Message mode keys.
 @end menu
 
-This manual corresponds to Pterodactyl Message 0.46.  Message is
+This manual corresponds to Message 6.10.032.  Message is
 distributed with the Gnus distribution bearing the same version number
 as this manual.