+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.