From 67f59d37ab263cff7abee31538f6a92f35c78fb2 Mon Sep 17 00:00:00 2001 From: ichikawa Date: Sun, 15 Nov 1998 02:54:35 +0000 Subject: [PATCH] Sync up with pgnus-0.46 --- ChangeLog | 6 ++++ lisp/ChangeLog | 36 +++++++++++++++++++++ lisp/gnus-art.el | 4 +++ lisp/gnus-sum.el | 5 ++- lisp/gnus.el | 4 +-- lisp/message.el | 91 ++++++++++++++--------------------------------------- lisp/mm-encode.el | 65 ++++++-------------------------------- lisp/mm-view.el | 3 +- lisp/nndraft.el | 9 ------ texi/gnus-ja.texi | 6 ++-- texi/gnus.texi | 6 ++-- texi/message.texi | 6 ++-- 12 files changed, 93 insertions(+), 148 deletions(-) diff --git a/ChangeLog b/ChangeLog index e7f00d9..6bd33e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +1998-11-15 Tatsuya Ichikawa + + * lisp/gnus.el (gnus-version-number): Update to 6.10.031. + + * Sync up with Pterodactyl Gnus 0.46. + 1998-11-14 Tatsuya Ichikawa * lisp/message.el: Forget bind "\C-c\C-a" 'message-insert-mime-part diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1a01fd1..8ddb0e7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,39 @@ +Sun Nov 15 02:01:31 1998 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.46 is released. + +1998-11-15 01:54:40 Lars Magne Ingebrigtsen + + * message.el (message-encode-message-body): Insert headers at the + right spot. + +Sun Nov 15 01:13:41 1998 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.45 is released. + +1998-11-15 00:28:49 Lars Magne Ingebrigtsen + + * nndraft.el (nndraft-save-mime-part): Removed. + (nndraft-get-mime-part): Ditto. + + * message.el (message-format-mime-old): Removed. + (message-encode-message-body): Removed. + (message-encode-message-body): Renamed. + +1998-11-14 18:27:19 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-get-newsgroup-headers): Translate \r's. + + * message.el (message-format-mime): Check message-mime-part. + + * mm-encode.el (mm-mime-file-types): Removed. + (mm-default-file-encoding): New definition. + +Sat Nov 14 01:29:39 1998 Shenghuo ZHU + + * mm-view.el (mm-inline-image): Use mm-insert-inline. + * gnus-art.el (gnus-mm-display-part): Go to correct position. + Sat Nov 14 05:47:57 1998 Lars Magne Ingebrigtsen * gnus.el: Pterodactyl Gnus v0.44 is released. diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index c49255a..547dc30 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -2413,6 +2413,8 @@ If ALL-HEADERS is non-nil, no headers are hidden." (unwind-protect (progn (select-window (get-buffer-window (current-buffer) t)) + (goto-char point) + (forward-line) (mm-display-part handle)) (select-window window)))) (goto-char point)))) @@ -2441,6 +2443,8 @@ If ALL-HEADERS is non-nil, no headers are hidden." (if gnus-tmp-description (concat " (" gnus-tmp-description ")") "")) + (unless (bolp) + (insert "\n")) (setq b (point)) (gnus-eval-format gnus-mime-button-line-format gnus-mime-button-line-format-alist diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 90dac13..87538fc 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -4443,6 +4443,7 @@ The resulting hash table is returned, or nil if no Xrefs were found." (set-buffer nntp-server-buffer) ;; Translate all TAB characters into SPACE characters. (subst-char-in-region (point-min) (point-max) ?\t ? t) + (subst-char-in-region (point-min) (point-max) ?\r ? t) (gnus-run-hooks 'gnus-parse-headers-hook) (let ((case-fold-search t) in-reply-to header p lines chars ctype) @@ -4604,9 +4605,7 @@ list of headers that match SEQUENCE (see `nntp-retrieve-headers')." number headers header) (save-excursion (set-buffer nntp-server-buffer) - (goto-char (point-min)) - (while (search-forward "\r" nil t) - (replace-match " " t t)) + (subst-char-in-region (point-min) (point-max) ?\r ? t) ;; Allow the user to mangle the headers before parsing them. (gnus-run-hooks 'gnus-parse-headers-hook) (goto-char (point-min)) diff --git a/lisp/gnus.el b/lisp/gnus.el index 247c287..e54be29 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -259,10 +259,10 @@ is restarted, and sometimes reloaded." (defconst gnus-product-name "T-gnus" "Product name of this version of gnus.") -(defconst gnus-version-number "6.10.030" +(defconst gnus-version-number "6.10.031" "Version number for this version of gnus.") -(defconst gnus-original-version-number "0.44" +(defconst gnus-original-version-number "0.46" "Version number for this version of Gnus.") (defconst gnus-original-product-name "Pterodactyl Gnus" diff --git a/lisp/message.el b/lisp/message.el index dcbc446..f977cf2 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -53,6 +53,7 @@ (require 'mail-parse) (require 'mm-bodies) (require 'mm-encode) + (require 'mml) ) (defgroup message '((user-mail-address custom-variable) @@ -798,6 +799,8 @@ Valid valued are `unique' and `unsent'." (defvar message-mode-syntax-table (let ((table (copy-syntax-table text-mode-syntax-table))) (modify-syntax-entry ?% ". " table) + (modify-syntax-entry ?> ". " table) + (modify-syntax-entry ?< ". " table) table) "Syntax table used while in Message mode.") @@ -4685,35 +4688,19 @@ regexp varstr." ;;; (defun message-encode-message-body () - "Examine the message body, encode it, and add the requisite headers." - (message-format-mime) - (when (featurep 'mule) - (let (old-headers) - (save-excursion - (save-restriction - (message-narrow-to-headers-or-head) - (unless (setq old-headers (message-fetch-field "mime-version")) - (message-remove-header - "^Content-Transfer-Encoding:\\|^Content-Type:\\|^Mime-Version:" - t)) - (goto-char (point-max)) - (widen) - (narrow-to-region (point) (point-max)) - (let* ((charset (mm-encode-body)) - (encoding (mm-body-encoding))) - (when (consp charset) - (error "Can't encode messages with multiple charsets (yet)")) - (widen) - (message-narrow-to-headers-or-head) - (goto-char (point-max)) - (setq charset (or charset - (mm-mule-charset-to-mime-charset 'ascii))) - ;; We don't insert MIME headers if they only say the default. - (when (and (not old-headers) - (not (and (eq charset 'us-ascii) - (eq encoding '7bit)))) - (mm-insert-rfc822-headers charset encoding)) - (mm-encode-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)))) (defvar message-save-buffer " *encoding") (defun message-save-drafts () @@ -4735,44 +4722,14 @@ regexp varstr." (interactive (let* ((file (read-file-name "Insert file: " nil nil t)) (type (mm-default-file-encoding file))) - (setq mime-type - (read-string (format "MIME type for %s: " file) (car type))) - (unless (equal mime-type (car type)) - (setq type (list mime-type))) - (list file type))) - - (insert (format "-*[%s %d]*-\n" (car type) (incf message-mime-part))) - (let ((current buffer-file-name) - (part message-mime-part)) - (mm-with-unibyte-buffer - (insert-file file) - (mm-insert-headers type (mm-encode-buffer type) file) - (nndraft-save-mime-part current part)))) - -(defun message-format-mime () - "Insert all the MIME parts." - (when (not (zerop message-mime-part)) - (message-narrow-to-headers) - (goto-char (point-max)) - (let ((boundary (mm-insert-multipart-headers)) - (current buffer-file-name)) - (widen) - (forward-line 1) - (insert "This is a MIME message. If you are reading this -- *phphthth*.\n\n") - (insert "--" boundary "\n\n") - (while (re-search-forward - "-\\*\\[\\([-a-z/A-Z0-9]+\\) \\([0-9]+\\)\\]\\*-" nil t) - (let ((part (string-to-number (match-string 2)))) - (delete-region (match-beginning 0) (match-end 0)) - (insert "\n--" boundary "\n") - (narrow-to-region (point) (point)) - (nndraft-get-mime-part current part) - (goto-char (point-max)) - (widen) - (insert "\n--" boundary "\n\n") - )) - (goto-char (point-max)) - (insert "\n--" boundary "--\n")))) + (list file + (completing-read + (format "MIME type for %s: " file) + (mapcar (lambda (m) (list (cdr m))) mailcap-mime-extensions) + nil nil type)))) + (insert (format "\n" + type file))) + (run-hooks 'message-load-hook) diff --git a/lisp/mm-encode.el b/lisp/mm-encode.el index e3bd0af..30bc8cd 100644 --- a/lisp/mm-encode.el +++ b/lisp/mm-encode.el @@ -25,50 +25,7 @@ ;;; Code: (require 'mail-parse) - -(defvar mm-mime-file-types - '(("\\.rtf$" "text/richtext") - ("\\.\\(html\\|htm\\)$" "text/html") - ("\\.ps$" "application/postscript" - (encoding quoted-printable) - (disposition "attachment")) - ("\\.\\(jpeg\\|jpg\\)$" "image/jpeg") - ("\\.gif$" "image/gif") - ("\\.png$" "image/png") - ("\\.\\(tiff\\|tif\\)$" "image/tiff") - ("\\.pic$" "image/x-pic") - ("\\.mag$" "image/x-mag") - ("\\.xbm$" "image/x-xbm") - ("\\.xwd$" "image/x-xwd") - ("\\.au$" "audio/basic") - ("\\.mpg$" "video/mpeg") - ("\\.txt$" "text/plain") - ("\\.el$" "application/octet-stream" - ("type" ."emacs-lisp")) - ("\\.lsp$" "application/octet-stream" - ("type" "common-lisp")) - ("\\.tar\\.gz$" "application/octet-stream" - ("type" "tar+gzip")) - ("\\.tgz$" "application/octet-stream" - ("type" "tar+gzip")) - ("\\.tar\\.Z$" "application/octet-stream" - ("type" "tar+compress")) - ("\\.taz$" "application/octet-stream" - ("type" "tar+compress")) - ("\\.gz$" "application/octet-stream" - ("type" "gzip")) - ("\\.Z$" "application/octet-stream" - ("type" "compress")) - ("\\.lzh$" "application/octet-stream" - ("type" . "lha")) - ("\\.zip$" "application/zip") - ("\\.diffs?$" "text/plain" - ("type" . "patch")) - ("\\.patch$" "application/octet-stream" - ("type" "patch")) - ("\\.signature" "text/plain") - (".*" "application/octet-stream")) - "*Alist of regexps and MIME types.") +(require 'mailcap) (defvar mm-content-transfer-encoding-defaults '(("text/.*" quoted-printable) @@ -93,13 +50,9 @@ (defun mm-default-file-encoding (file) "Return a default encoding for FILE." - (let ((types mm-mime-file-types) - type) - (catch 'found - (while (setq type (pop types)) - (when (string-match (car type) file) - (throw 'found (cdr type))) - (pop types))))) + (if (not (string-match "\\.[^.]+$" file)) + "application/octet-stream" + (mailcap-extension-to-mime (match-string 0 file)))) (defun mm-encode-content-transfer-encoding (encoding &optional type) (cond @@ -117,10 +70,10 @@ ) ((null encoding) ) - ((eq encoding 'x-uuencode) - (condition-case () - (uudecode-encode-region (point-min) (point-max)) - (error nil))) + ;;((eq encoding 'x-uuencode) + ;; (condition-case () + ;; (uudecode-encode-region (point-min) (point-max)) + ;; (error nil))) ((functionp encoding) (condition-case () (funcall encoding (point-min) (point-max)) @@ -141,7 +94,7 @@ The encoding used is returned." (defun mm-insert-headers (type encoding &optional file) "Insert headers for TYPE." - (insert "Content-Type: " (car type)) + (insert "Content-Type: " type) (when file (insert ";\n\tname=\"" (file-name-nondirectory file) "\"")) (insert "\n") diff --git a/lisp/mm-view.el b/lisp/mm-view.el index 069858e..706a2a2 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -45,8 +45,7 @@ (let ((annot (make-annotation image nil 'text))) (set-extent-property annot 'mm t) (set-extent-property annot 'duplicable t) - (mm-handle-set-undisplayer handle annot)) - (insert " \n"))) + (mm-insert-inline handle " \n")))) (defun mm-inline-text (handle) (let ((type (cadr (split-string (car (mm-handle-type handle)) "/"))) diff --git a/lisp/nndraft.el b/lisp/nndraft.el index 1c10613..912893e 100644 --- a/lisp/nndraft.el +++ b/lisp/nndraft.el @@ -160,15 +160,6 @@ (clear-visited-file-modtime) article)) -(defun nndraft-save-mime-part (file part) - "Save MIME PART belonging to the FILE." - (write-region (point-min) (point-max) - (format "%s.%d" file part))) - -(defun nndraft-get-mime-part (file part) - "Save MIME PART belonging to the FILE." - (insert-file-contents (format "%s.%d" file part))) - (deffoo nndraft-request-expire-articles (articles group &optional server force) (nndraft-possibly-change-group group) (let* ((nnmh-allow-delete-final t) diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 42bb5b2..7ea1150 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus-ja -@settitle Semi-gnus 6.10.029 Manual +@settitle Semi-gnus 6.10.031 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -345,7 +345,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Semi-gnus 6.10.029 Manual +@title Semi-gnus 6.10.031 Manual @author by Lars Magne Ingebrigtsen @author by members of Semi-gnus mailing-list @@ -399,7 +399,7 @@ Semi-gnus は、大きな絵が入っていたりさまざまな形式を用いたりしているちょっ な言語圏を差別しません。ああ、クリンゴンの方は Unicode Next Generationを お待ちください。 -この説明書は Semi-gnus 6.10.029 に対応します。 +この説明書は Semi-gnus 6.10.031 に対応します。 @end ifinfo diff --git a/texi/gnus.texi b/texi/gnus.texi index 3ebeb9d..81253af 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Semi-gnus 6.10.030 Manual +@settitle Semi-gnus 6.10.031 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -318,7 +318,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Semi-gnus 6.10.030 Manual +@title Semi-gnus 6.10.031 Manual @author by Lars Magne Ingebrigtsen @page @@ -361,7 +361,7 @@ internationalization/localization and multiscript features based on MULE 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.030. +This manual corresponds to Semi-gnus 6.10.031. @end ifinfo diff --git a/texi/message.texi b/texi/message.texi index bdd2a3f..af1a484 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Pterodactyl Message 0.44 Manual +@settitle Pterodactyl Message 0.46 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Pterodactyl Message 0.44 Manual +@title Pterodactyl Message 0.46 Manual @author by Lars Magne Ingebrigtsen @page @@ -83,7 +83,7 @@ Message mode buffers. * Key Index:: List of Message mode keys. @end menu -This manual corresponds to Pterodactyl Message 0.44. Message is +This manual corresponds to Pterodactyl Message 0.46. Message is distributed with the Gnus distribution bearing the same version number as this manual. -- 1.7.10.4