Sync up with pgnus-0.46
authorichikawa <ichikawa>
Sun, 15 Nov 1998 02:54:35 +0000 (02:54 +0000)
committerichikawa <ichikawa>
Sun, 15 Nov 1998 02:54:35 +0000 (02:54 +0000)
12 files changed:
ChangeLog
lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-sum.el
lisp/gnus.el
lisp/message.el
lisp/mm-encode.el
lisp/mm-view.el
lisp/nndraft.el
texi/gnus-ja.texi
texi/gnus.texi
texi/message.texi

index e7f00d9..6bd33e6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+1998-11-15  Tatsuya Ichikawa  <t-ichi@po.shiojiri.ne.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.10.031.
+
+       * Sync up with Pterodactyl Gnus 0.46.
+
 1998-11-14  Tatsuya Ichikawa  <t-ichi@po.shiojiri.ne.jp>
 
        * lisp/message.el: Forget bind "\C-c\C-a" 'message-insert-mime-part
index 1a01fd1..8ddb0e7 100644 (file)
@@ -1,3 +1,39 @@
+Sun Nov 15 02:01:31 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Pterodactyl Gnus v0.46 is released.
+
+1998-11-15 01:54:40  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * message.el (message-encode-message-body): Insert headers at the
+       right spot.
+
+Sun Nov 15 01:13:41 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Pterodactyl Gnus v0.45 is released.
+
+1998-11-15 00:28:49  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * 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  <larsi@gnus.org>
+
+       * 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  <zsh@cs.rochester.edu>
+
+       * 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  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Pterodactyl Gnus v0.44 is released.
index c49255a..547dc30 100644 (file)
@@ -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
index 90dac13..87538fc 100644 (file)
@@ -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))
index 247c287..e54be29 100644 (file)
@@ -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"
index dcbc446..f977cf2 100644 (file)
@@ -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 "<part type=%s filename=\"%s\"></part>\n"
+                 type file)))
+
     
 (run-hooks 'message-load-hook)
 
index e3bd0af..30bc8cd 100644 (file)
 ;;; 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)
 
 (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
     )
    ((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")
index 069858e..706a2a2 100644 (file)
@@ -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)) "/")))
index 1c10613..912893e 100644 (file)
     (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)
index 42bb5b2..7ea1150 100644 (file)
@@ -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 \e$B$O!"Bg$-$J3($,F~$C$F$$$?$j$5$^$6$^$J7A<0$rMQ$$$?$j$7$F$$$k$A$g$C\e(B
 \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.029 \e$B$KBP1~$7$^$9!#\e(B
+\e$B$3$N@bL@=q$O\e(B Semi-gnus 6.10.031 \e$B$KBP1~$7$^$9!#\e(B
 
 @end ifinfo
 
index 3ebeb9d..81253af 100644 (file)
@@ -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
 
index bdd2a3f..af1a484 100644 (file)
@@ -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.