+Tue Dec 15 19:17:43 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Pterodactyl Gnus v0.68 is released.
+
+Tue Dec 15 18:28:24 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Pterodactyl Gnus v0.67 is released.
+
+Tue Dec 15 17:31:44 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Pterodactyl Gnus v0.66 is released.
+
+1998-12-13 11:00:43 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-art.el (gnus-insert-mime-button): Decode description.
+
+Sat Dec 5 16:50:49 1998 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus-art.el (article-decode-encoded-words): Rollback to 0.55.
+ (gnus-decode-header-methods): Ditto.
+ (gnus-decode-with-mail-decode-encoded-word-region): Ditto.
+
+1998-12-13 10:04:39 Lloyd Zusman <ljz@asfast.com>
+
+ * gnus-xmas.el (gnus-xmas-summary-recenter): Allow numbers.
+
+1998-12-13 09:32:38 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * mml.el (mml-insert-mime-headers): Encode description.
+
+ * nnfolder.el (nnfolder-request-expire-articles): Go to the date
+ line.
+
+ * gnus-sum.el (gnus-default-charset): Doc fix.
+
+Wed Dec 9 15:18:39 1998 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * mm-decode.el (mm-display-part): Forward a line.
+
+Wed Dec 9 13:30:29 1998 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * mm-util.el (mm-running-ntemacs): New variable.
+ (mm-text-coding-system): Ditto.
+ * nnmail.el (nnmail-incoming-coding-system): Ditto.
+ (nnmail-split-incoming): Use nnmail-incoming-coding-system.
+
+1998-12-13 08:52:45 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-picon.el (gnus-picons-network-display-internal): Don't set
+ buffer.
+
+ * message.el (message-insert-headers): New command and keystroke.
+
+1998-12-07 23:42:14 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * mm-decode.el (mm-inline-media-tests): Recognize x-xbitmap.
+ (mm-get-image): Ditto.
+
+ * mm-bodies.el (mm-decode-content-transfer-encoding): Only for
+ base64, uudecode and binhex.
+
+Sun Dec 6 21:58:31 1998 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * mm-bodies.el (mm-decode-content-transfer-encoding): Replace CRLF
+ in text/plain.
+ * mm-uu.el (mm-uu-dissect): Use inline.
+
+1998-12-07 23:19:14 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * mm-view.el (mm-view-message): New function.
+
+ * mm-encode.el (mm-content-transfer-encoding-defaults): Changed to
+ qp.
+
+1998-12-07 Karl Kleinpaste <karl@justresearch.com>
+
+ * mm-encode.el (mm-content-transfer-encoding-defaults): Add an
+ entry for message/rfc822 as 8bit.
+
+1998-12-07 23:16:54 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * mailcap.el (mailcap-mime-extensions): Add patch.
+
+1998-12-05 Dale Hagglund <rdh@best.com>
+
+ * gnus-sum.el (gnus-summary-display-buttonized): Use prefix
+ argument to force all multipart/* to look like multipart/mixed.
+
+ * gnus-art.el (gnus-mime-display-multipart-as-mixed): New
+ variable.
+ (gnus-mime-display-part): Use it.
+
+1998-12-07 22:46:37 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-draft.el (gnus-draft-send): Only disable checks for
+ non-interactive use.
+ (gnus-draft-send-message): Use it.
+
Sun Dec 6 19:36:53 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Pterodactyl Gnus v0.65 is released.
(set-window-point (get-buffer-window (current-buffer)) (point))
t))))))
+;;;###autoload
(defun gnus-article-prepare-display ()
"Make the current buffer look like a nice article."
(let ((method
'filename)
""))
(gnus-tmp-type (car (mm-handle-type handle)))
- (gnus-tmp-description (or (mm-handle-description handle)
- ""))
+ (gnus-tmp-description
+ (mail-decode-encoded-word-string (or (mm-handle-description handle)
+ "")))
(gnus-tmp-dots
(if (if displayed (car displayed)
(mm-handle-displayed-p handle))
(delete-region (point) (point-max)))
(gnus-mime-display-part handles))))))
+(defvar gnus-mime-display-multipart-as-mixed nil)
+
(defun gnus-mime-display-part (handle)
(cond
;; Single part.
((not (stringp (car handle)))
(gnus-mime-display-single handle))
;; multipart/alternative
- ((equal (car handle) "multipart/alternative")
+ ((and (equal (car handle) "multipart/alternative")
+ (not gnus-mime-display-multipart-as-mixed))
(let ((id (1+ (length gnus-article-mime-handle-alist))))
(push (cons id handle) gnus-article-mime-handle-alist)
(gnus-mime-display-alternative (cdr handle) nil nil id)))
;; multipart/related
- ((equal (car handle) "multipart/related")
+ ((and (equal (car handle) "multipart/related")
+ (not gnus-mime-display-multipart-as-mixed))
;;;!!!We should find the start part, but we just default
;;;!!!to the first part.
(gnus-mime-display-part (cadr handle)))
(select-window win)))
(defvar gnus-decode-header-methods
- '(gnus-decode-with-mail-decode-encoded-word-region)
+ '(mail-decode-encoded-word-region)
"List of methods used to decode headers.
This variable is a list of FUNCTION or (REGEXP . FUNCTION). If item is
(defvar gnus-decode-header-methods-cache nil)
-(defun gnus-decode-with-mail-decode-encoded-word-region (start end)
- (let ((rfc2047-default-charset gnus-newsgroup-default-charset)
- (mm-charset-iso-8859-1-forced gnus-newsgroup-iso-8859-1-forced))
- (mail-decode-encoded-word-region start end)))
-
(defun gnus-multi-decode-header (start end)
"Apply the functions from `gnus-encoded-word-methods' that match."
(unless (and gnus-decode-header-methods-cache
(while (setq article (pop articles))
(gnus-summary-remove-process-mark article)
(unless (memq article gnus-newsgroup-unsendable)
- (gnus-draft-send article gnus-newsgroup-name)
+ (gnus-draft-send article gnus-newsgroup-name t)
(gnus-summary-mark-article article gnus-canceled-mark)))))
-(defun gnus-draft-send (article &optional group)
+(defun gnus-draft-send (article &optional group interactive)
"Send message ARTICLE."
(gnus-draft-setup-for-sending article (or group "nndraft:queue"))
- (let ((message-syntax-checks 'dont-check-for-anything-just-trust-me)
+ (let ((message-syntax-checks (if interactive nil
+ 'dont-check-for-anything-just-trust-me))
message-send-hook type method)
;; We read the meta-information that says how and where
;; this message is to be sent.
(type . "audio/*")))
("message"
("rfc-*822"
- (viewer . gnus-article-prepare-display)
+ (viewer . mm-view-message)
(test . (and (featurep 'gnus)
(gnus-alive-p)))
(type . "message/rfc-822"))
(".nc" . "application/x-netcdf")
(".nc" . "application/x-netcdf")
(".oda" . "application/oda")
+ (".patch" . "application/x-patch")
(".pbm" . "image/x-portable-bitmap")
(".pdf" . "application/pdf")
(".pgm" . "image/portable-graymap")
(setq gnus-picons-processes-alist
(delq process gnus-picons-processes-alist))
(gnus-picons-set-buffer)
- (gnus-picons-make-annotation (make-glyph gnus-picons-x-face-file-name)
- nil 'text)
+ (gnus-picons-make-annotation
+ (make-glyph gnus-picons-x-face-file-name) nil 'text)
(when (file-exists-p gnus-picons-x-face-file-name)
(delete-file gnus-picons-x-face-file-name))))
nil 'text nil nil nil t)))
;; convert the x-face header to a .xbm file
(let* ((process-connection-type nil)
- (process (start-process-shell-command "gnus-x-face" nil
- gnus-picons-convert-x-face)))
+ (process (start-process-shell-command
+ "gnus-x-face" nil gnus-picons-convert-x-face)))
(push process gnus-picons-processes-alist)
(process-kill-without-query process)
(set-process-sentinel process 'gnus-picons-x-face-sentinel)
;;; picon network display functions :
(defun gnus-picons-network-display-internal (sym-ann glyph part right-p)
- (gnus-picons-set-buffer)
(gnus-picons-display-picon-or-name glyph part right-p)
(gnus-picons-next-job-internal))
:type 'regexp)
(defcustom gnus-default-charset 'iso-8859-1
- "Default charset assumed to be used when viewing non-ASCII characters.
-This variable is used only in non-Mule Emacsen.")
+ "Default charset assumed to be used when viewing non-ASCII characters.")
(defcustom gnus-newsgroup-default-charset-alist
'(("^hk\\>\\|^tw\\>\\|\\<big5\\>" . cn-big5)
;;; MIME Commands
;;;
-(defun gnus-summary-display-buttonized ()
- "Display the current article buffer fully MIME-buttonized."
- (interactive)
+(defun gnus-summary-display-buttonized (&optional show-all-parts)
+ "Display the current article buffer fully MIME-buttonized.
+If SHOW-ALL-PARTS (the prefix) is non-nil, all multipart/* parts are
+treated as multipart/mixed."
+ (interactive "P")
(require 'gnus-art)
- (let ((gnus-unbuttonized-mime-types nil))
+ (let ((gnus-unbuttonized-mime-types nil)
+ (gnus-mime-display-multipart-as-mixed show-all-parts))
(gnus-summary-show-article)))
(defun gnus-summary-repair-multipart (article)
(- (window-height) 2)))
(top (cond ((< height 4) 0)
((< height 7) 1)
- (t 2)))
+ (t (if (numberp gnus-auto-center-summary)
+ gnus-auto-center-summary
+ 2))))
(bottom (save-excursion (goto-char (point-max))
(forward-line (- height))
(point)))
(defconst gnus-product-name "T-gnus"
"Product name of this version of gnus.")
-(defconst gnus-version-number "6.10.050"
+(defconst gnus-version-number "6.10.051"
"Version number for this version of gnus.")
-(defconst gnus-original-version-number "0.65"
+(defconst gnus-original-version-number "0.68"
"Version number for this version of Gnus.")
(defconst gnus-original-product-name "Pterodactyl Gnus"
(define-key message-mode-map "\C-c\C-y" 'message-yank-original)
(define-key message-mode-map "\C-c\C-q" 'message-fill-yanked-message)
(define-key message-mode-map "\C-c\C-w" 'message-insert-signature)
+ (define-key message-mode-map "\C-c\M-h" 'message-insert-headers)
(define-key message-mode-map "\C-c\C-r" 'message-caesar-buffer-body)
(define-key message-mode-map "\C-c\C-o" 'message-sort-headers)
(define-key message-mode-map "\C-c\M-r" 'message-rename-buffer)
(nndraft-request-expire-articles
(list message-draft-article) "drafts" nil t)))
+(defun message-insert-headers ()
+ "Generate the headers for the article."
+ (interactive)
+ (save-excursion
+ (save-restriction
+ (message-narrow-to-headers)
+ (when (message-news-p)
+ (message-generate-headers
+ (delq 'Lines
+ (delq 'Subject
+ (copy-sequence message-required-news-headers)))))
+ (when (message-mail-p)
+ (message-generate-headers
+ (delq 'Lines
+ (delq 'Subject
+ (copy-sequence message-required-mail-headers))))))))
+
\f
;;;
;;;
(defun mm-decode-content-transfer-encoding (encoding &optional type)
- (cond
- ((eq encoding 'quoted-printable)
- (quoted-printable-decode-region (point-min) (point-max)))
- ((eq encoding 'base64)
- (prog1
- (condition-case ()
- (base64-decode-region (point-min) (point-max))
- (error nil))
- (when (equal type "text/plain")
- (goto-char (point-min))
- (while (search-forward "\r\n" nil t)
- (replace-match "\n" t t)))))
- ((memq encoding '(7bit 8bit binary))
- )
- ((null encoding)
- )
- ((eq encoding 'x-uuencode)
- (condition-case ()
- (uudecode-decode-region (point-min) (point-max))
- (error nil)))
- ((eq encoding 'x-binhex)
- (condition-case ()
- (binhex-decode-region (point-min) (point-max))
- (error nil)))
- ((functionp encoding)
- (condition-case ()
- (funcall encoding (point-min) (point-max))
- (error nil)))
- (t
- (message "Unknown encoding %s; defaulting to 8bit" encoding))))
+ (prog1
+ (condition-case ()
+ (cond
+ ((eq encoding 'quoted-printable)
+ (quoted-printable-decode-region (point-min) (point-max)))
+ ((eq encoding 'base64)
+ (base64-decode-region (point-min) (point-max)))
+ ((memq encoding '(7bit 8bit binary))
+ )
+ ((null encoding)
+ )
+ ((eq encoding 'x-uuencode)
+ (uudecode-decode-region (point-min) (point-max)))
+ ((eq encoding 'x-binhex)
+ (binhex-decode-region (point-min) (point-max)))
+ ((functionp encoding)
+ (funcall encoding (point-min) (point-max)))
+ (t
+ (message "Unknown encoding %s; defaulting to 8bit" encoding)))
+ (error nil))
+ (when (and
+ (memq encoding '(base64 x-uuencode x-binhex))
+ (equal type "text/plain"))
+ (goto-char (point-min))
+ (while (search-forward "\r\n" nil t)
+ (replace-match "\n" t t)))))
(defun mm-decode-body (charset &optional encoding type)
"Decode the current article that has been encoded with ENCODING.
("image/xbm" mm-inline-image
(and window-system (fboundp 'device-type)
(eq (device-type) 'x)))
+ ("image/x-xbitmap" mm-inline-image
+ (and window-system (fboundp 'device-type)
+ (eq (device-type) 'x)))
("image/xpm" mm-inline-image
(and window-system (featurep 'xpm)))
("image/x-pixmap" mm-inline-image
(if (eq user-method 'inline)
(progn
(forward-line 1)
- (mm-display-inline handle))
+ (mm-display-inline handle)
+ 'inline)
(when (or user-method
method
(not no-default))
(not method)
(equal "text" (car (split-string type))))
(progn
+ (forward-line 1)
(mm-insert-inline handle (mm-get-part handle))
'inline)
(mm-display-external
(cond
((equal type "x-pixmap")
"xpm")
+ ((equal type "x-xbitmap")
+ "xbm")
(t type)))
(or (mm-handle-cache handle)
(mm-with-unibyte-buffer
(defvar mm-content-transfer-encoding-defaults
'(("text/.*" quoted-printable)
+ ("message/rfc822" quoted-printable)
("application/emacs-lisp" 8bit)
+ ("application/x-patch" 8bit)
(".*" base64))
"Alist of regexps that match MIME types and their encodings.")
(defvar mm-running-xemacs (string-match "XEmacs" emacs-version))
+(defvar mm-running-ntemacs
+ (and (not mm-running-xemacs)
+ (string-match "nt" system-configuration)))
+
(defvar mm-binary-coding-system
(if mm-running-xemacs
'binary 'no-conversion)
"100% binary coding system.")
+(defvar mm-text-coding-system
+ (cond
+ ((not (fboundp 'coding-system-p)) nil)
+ (mm-running-xemacs ;; XEmacs
+ (and (coding-system-p 'no-conversion) 'no-conversion))
+ (mm-running-ntemacs ;; NTEmacs
+ (and (coding-system-p 'raw-text-dos) 'raw-text-dos))
+ ((coding-system-p 'raw-text) 'raw-text) ;; Emacs
+ (t nil))
+ "100% text coding system, for removing ^M.")
+
(defvar mm-default-coding-system nil
"The default coding system to use.")
;; Copyright (c) 1998 by Shenghuo Zhu <zsh@cs.rochester.edu>
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
-;; $Revision: 1.1.2.6 $
+;; $Revision: 1.1.2.7 $
;; Keywords: news postscript uudecode binhex shar
;; This file is not part of GNU Emacs, but the same permissions
"application/octet-stream"))
mm-uu-decode-function nil
(if (and file-name (not (equal file-name "")))
- (list "attachment" (cons 'filename file-name)))))
+ (list "inline" (cons 'filename file-name)))))
((eq type 'binhex)
(mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
(list (or (and file-name
"application/octet-stream"))
mm-uu-binhex-decode-function nil
(if (and file-name (not (equal file-name "")))
- (list "attachment" (cons 'filename file-name)))))
+ (list "inline" (cons 'filename file-name)))))
((eq type 'shar)
(mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
'("application/x-shar"))))
(require 'w3)
(w3-prepare-buffer))
+(eval-and-compile
+ (autoload 'gnus-article-prepare-display "gnus-art"))
+
+(defun mm-view-message ()
+ (gnus-article-prepare-display)
+ (fundamental-mode))
+
(provide 'mm-view)
;; mm-view.el ends here
(unless (eq encoding '7bit)
(insert (format "Content-Transfer-Encoding: %s\n" encoding)))
(when (setq description (cdr (assq 'description cont)))
- (insert "Content-Description: " description "\n"))))
+ (insert "Content-Description: "
+ (mail-encode-encoded-word-string description) "\n"))))
(defun mml-parameter-string (cont types)
(let ((string "")
(set-buffer nnfolder-current-buffer)
(while (and articles is-old)
(goto-char (point-min))
- (when (nnfolder-goto-article (car articles))
+ (when (and (nnfolder-goto-article (car articles))
+ (search-forward (concat "\n" nnfolder-article-marker)
+ nil t))
+ (forward-sexp)
(if (setq is-old
(nnmail-expired-article-p
newsgroup
'raw-text-dos 'binary)
"Another coding system used in nnmail.")
+(defvar nnmail-incoming-coding-system 'raw-text
+ "Coding system used in reading inbox")
+
(defun nnmail-find-file (file)
"Insert FILE in server buffer safely."
(set-buffer nntp-server-buffer)
;; Insert the incoming file.
(set-buffer (get-buffer-create " *nnmail incoming*"))
(erase-buffer)
- (nnheader-insert-file-contents incoming)
+ (let ((nnheader-file-coding-system nnmail-incoming-coding-system))
+ (nnheader-insert-file-contents incoming))
(unless (zerop (buffer-size))
(goto-char (point-min))
(save-excursion (run-hooks 'nnmail-prepare-incoming-hook))