From 8e0d2bca4727ab344554ce40b3dde3eb9aa24c52 Mon Sep 17 00:00:00 2001 From: ichikawa Date: Mon, 31 Aug 1998 14:05:55 +0000 Subject: [PATCH] Sync up with Pterodactyl Gnus 0.10. --- ChangeLog | 43 ++++++++++--- lisp/ChangeLog | 59 ++++++++++++++++++ lisp/gnus-art.el | 32 ---------- lisp/gnus-msg.el | 4 ++ lisp/gnus-sum.el | 8 +-- lisp/gnus.el | 12 ++-- lisp/lpath.el | 3 +- lisp/message.el | 6 +- lisp/mm-decode.el | 111 +-------------------------------- lisp/mm-encode.el | 175 +---------------------------------------------------- lisp/nnfolder.el | 25 ++++---- lisp/qp.el | 9 ++- texi/ChangeLog | 4 ++ texi/gnus.texi | 12 +++- texi/message.texi | 6 +- 15 files changed, 149 insertions(+), 360 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1429273..225cdf5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,42 @@ 1998-08-31 Tatsuya Ichikawa - * lisp/gnus-agent.el: Do not use nnheader-temp-write. + * lisp/gnus.el (gnus-version-number): Update to 6.9.04. + + * Sync up with Pterodactyl Gnus 0.10. + + * lisp/gnus-agent.el : back to version Gnus 5.6.32. +1998-08-31 Katsumi Yamaoka + + * lisp/rfc1522.el: Abolished. + + * lisp/message.el: (message-send-mail) (message-send-news): Don't + use `mm-encode-message-header'. + + * lisp/gnus.el: Delete autoload settings for + `hexl-hex-string-to-integer', `mm-decode-words-region', + `mm-decode-words-string', `gnus-hack-decode-rfc1522', + `gnus-article-de-quoted-unreadable', `gnus-decode-rfc1522' and + `article-decode-rfc1522'. + + * lisp/gnus-sum.el: Delete Key definitions for + `gnus-article-decode-mime-words', `gnus-article-decode-mime-words' + and `gnus-article-de-quoted-unreadable'. + + * lisp/gnus-art.el (gnus-article-decode-mime-words) + (gnus-decode-rfc1522) (article-de-quoted-unreadable) + (article-mime-decode-quoted-printable-buffer): Abolished. + + * lisp/gnus.el (gnus-version-number): Update to 6.9.03. + + * Sync up with Pterodactyl Gnus 0.9. + +1998-08-31 Tatsuya Ichikawa + + * lisp/gnus-agent.el: Do not use nnheader-temp-write. + * lisp/gnus-ems.el: Do not use nnheader-temp-write. - + * lisp/gnus.el (gnus-version-number): Update to 6.9.02. * Sync up with Pterodactyl Gnus 0.8. @@ -14,7 +47,7 @@ * lisp/gnus.el (gnus-original-version-number) (gnus-original-product-name) : New variable. - + * lisp/gnus.el (gnus-version-number): Update to 6.9.01. Third version number 0x means Original gnus's status in beta version. @@ -39,10 +72,6 @@ * lisp/gnus-i18n.el (gnus-set-summary-default-charset): Match "real" newsgroup name; strip "backend+server" prefix. - * lisp/message.el (message-make-in-reply-to): - Use `std11-extract-address-components'. - (message-use-mail-reply-to): Doc fix. - 1998-08-28 Katsumi Yamaoka * lisp/message.el (message-make-user-agent): New function. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5afb31d..acb8c2a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,62 @@ +Mon Aug 31 12:43:46 1998 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.10 is released. + +1998-08-31 11:45:13 Lars Magne Ingebrigtsen + + * nnfolder.el (nnfolder-delete-mail): Narrow to mail and allow + hook to be run. + +1998-08-30 17:59:07 Lars Magne Ingebrigtsen + + * rfc2047.el (rfc2047-encodable-p): Use find-charset-region. + + * mm-util.el (mm-charsets-in-region): Removed. + + * rfc2047.el: Renamed file. + + * gnus-msg.el (gnus-copy-article-buffer): Multibyte. + + * message.el (message-mode): Set multibyte. + + * mm-util.el (mm-charsets-in-region): Copied here. + + * gnus-util.el: Removed gnus-truncate-string. + + * gnus-art.el (gnus-article-decode-mime-words): Use 1522. + + * rfc1522.el (rfc1522-unencoded-charsets): New variable. + (rfc1522-encodable-p): New function. + (rfc1522-encode-message-header): Use it. + +Sun Aug 30 17:46:01 1998 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.9 is released. + +1998-08-30 16:13:08 Lars Magne Ingebrigtsen + + * mm-util.el: Shadow encode-coding-string. + + * base64.el (base64-encode-region): Don't add newline. + + * rfc1522.el (rfc1522-narrow-to-field): Copied here. + + * mm-util.el: New file. + + * mm-decode.el: Somewhat depleted. + * mm-encode.el: Ditto. + + * rfc1522.el: New file. + + * mm-util.el (mm-replace-chars-in-string): Copied here. + + * mm-encode.el (mm-q-encode-region): New function. + + * qp.el (quoted-printable-encode-region): Take an optional CLASS + param. + + * mm-encode.el (mm-encode-word-region): Downcase. + Sun Aug 30 15:28:01 1998 Lars Magne Ingebrigtsen * gnus.el: Pterodactyl Gnus v0.8 is released. diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index c7d9c80..b88f1c1 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -957,17 +957,6 @@ characters to translate to." (process-send-region "article-x-face" beg end) (process-send-eof "article-x-face")))))))))) -(defun gnus-article-decode-mime-words () - "Decode all MIME-encoded words in the article." - (interactive) - (save-excursion - (set-buffer gnus-article-buffer) - (let ((inhibit-point-motion-hooks t) - buffer-read-only) - (mm-decode-words-region (point-min) (point-max))))) - -(defalias 'gnus-decode-rfc1522 'gnus-article-decode-rfc1522) - ;; ;; Semi-gnus specific (defun gnus-article-decode-rfc1522 () @@ -978,27 +967,6 @@ characters to translate to." default-mime-charset))) (eword-decode-header charset) ))) -;; -;; Semi-gnus specific - -(defun article-de-quoted-unreadable (&optional force) - "Translate a quoted-printable-encoded article. -If FORCE, decode the article whether it is marked as quoted-printable -or not." - (interactive (list 'force)) - (save-excursion - (let ((buffer-read-only nil) - (type (gnus-fetch-field "content-transfer-encoding"))) - (gnus-article-decode-rfc1522) - (when (or force - (and type (string-match "quoted-printable" (downcase type)))) - (goto-char (point-min)) - (search-forward "\n\n" nil 'move) - (quoted-printable-decode-region (point) (point-max)))))) - -(defun article-mime-decode-quoted-printable-buffer () - "Decode Quoted-Printable in the current buffer." - (quoted-printable-decode-region (point-min) (point-max))) (defun article-hide-pgp (&optional arg) "Toggle hiding of any PGP headers and signatures in the current article. diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index 649b259..a998d19 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -375,6 +375,10 @@ header line with the old Message-ID." ;; this buffer should be passed to all mail/news reply/post routines. (setq gnus-article-copy (gnus-get-buffer-create " *gnus article copy*")) (buffer-disable-undo gnus-article-copy) + (save-excursion + (set-buffer gnus-article-copy) + (when (fboundp 'set-buffer-multibyte) + (set-buffer-multibyte t))) (let ((article-buffer (or article-buffer gnus-article-buffer)) end beg) (if (not (and (get-buffer article-buffer) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 19d0f44..25ea873 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -1405,9 +1405,6 @@ increase the score of each group you read." "c" gnus-article-highlight-citation "s" gnus-article-highlight-signature) - (gnus-define-keys (gnus-summary-wash-mime-map "M" gnus-summary-wash-map) - "w" gnus-article-decode-mime-words) - (gnus-define-keys (gnus-summary-wash-time-map "T" gnus-summary-wash-map) "z" gnus-article-date-ut "u" gnus-article-date-ut @@ -1507,9 +1504,6 @@ increase the score of each group you read." ["Headers" gnus-article-highlight-headers t] ["Signature" gnus-article-highlight-signature t] ["Citation" gnus-article-highlight-citation t]) - ("MIME" - ["Words" gnus-article-decode-mime-words t] - ["QP" gnus-article-de-quoted-unreadable t]) ("Date" ["Local" gnus-article-date-local t] ["ISO8601" gnus-article-date-iso8601 t] @@ -4234,7 +4228,7 @@ If WHERE is `summary', the summary mode line format will be used." ;; We might have to chop a bit of the string off... (when (> (length mode-string) max-len) (setq mode-string - (concat (gnus-truncate-string mode-string (- max-len 3)) + (concat (truncate-string mode-string (- max-len 3)) "..."))) ;; Pad the mode string a bit. (setq mode-string (format (format "%%-%ds" max-len) mode-string)))) diff --git a/lisp/gnus.el b/lisp/gnus.el index 818d5b4..ad333eb 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -253,10 +253,10 @@ is restarted, and sometimes reloaded." (defconst gnus-product-name "T-gnus" "Product name of this version of gnus.") -(defconst gnus-version-number "6.9.02" +(defconst gnus-version-number "6.9.04" "Version number for this version of gnus.") -(defconst gnus-original-version-number "0.8" +(defconst gnus-original-version-number "0.10" "Version number for this version of Gnus.") (defconst gnus-original-product-name "Pterodactyl Gnus" @@ -1579,10 +1579,8 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") (cdddr package) (cdr package))))) '(("info" Info-goto-node) - ("hexl" hexl-hex-string-to-integer) ("pp" pp pp-to-string pp-eval-expression) ("qp" quoted-printable-decode-region quoted-printable-decode-string) - ("mm-decode" mm-decode-words-region mm-decode-words-string) ("ps-print" ps-print-preprint) ("mail-extr" mail-extract-address-components) ("browse-url" browse-url) @@ -1703,19 +1701,19 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") gnus-article-next-page gnus-article-prev-page gnus-request-article-this-buffer gnus-article-mode gnus-article-setup-buffer gnus-narrow-to-page - gnus-article-delete-invisible-text gnus-hack-decode-rfc1522) + gnus-article-delete-invisible-text) ("gnus-art" :interactive t gnus-article-hide-headers gnus-article-hide-boring-headers gnus-article-treat-overstrike gnus-article-word-wrap gnus-article-remove-cr gnus-article-remove-trailing-blank-lines - gnus-article-display-x-face gnus-article-de-quoted-unreadable + gnus-article-display-x-face gnus-article-hide-pgp gnus-article-hide-pem gnus-article-hide-signature gnus-article-strip-leading-blank-lines gnus-article-date-local gnus-article-date-original gnus-article-date-lapsed gnus-article-show-all-headers gnus-article-edit-mode gnus-article-edit-article - gnus-article-edit-done gnus-decode-rfc1522 article-decode-rfc1522 + gnus-article-edit-done gnus-start-date-timer gnus-stop-date-timer) ("gnus-int" gnus-request-type) ("gnus-start" gnus-newsrc-parse-options gnus-1 gnus-no-server-1 diff --git a/lisp/lpath.el b/lisp/lpath.el index fc3688d..e5c87b1 100644 --- a/lisp/lpath.el +++ b/lisp/lpath.el @@ -37,7 +37,8 @@ w3-form-encode-xwfu gnus-mule-get-coding-system decode-coding-string mail-aliases-setup mm-copy-tree url-view-url w3-prepare-buffer - set-buffer-multibyte)) + set-buffer-multibyte + find-non-ascii-charset-region char-charset)) (maybe-bind '(global-face-data mark-active transient-mark-mode mouse-selection-click-count mouse-selection-click-count-buffer buffer-display-table diff --git a/lisp/message.el b/lisp/message.el index 213f25c..af1c78d 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -1505,6 +1505,8 @@ C-c C-r message-caesar-buffer-body (rot13 the message body)." (setq adaptive-fill-first-line-regexp (concat "[ \t]*[-a-z0-9A-Z]*>+[ \t]*\\|" adaptive-fill-first-line-regexp)) + (when (fboundp 'set-buffer-multibyte) + (set-buffer-multibyte t)) (run-hooks 'text-mode-hook 'message-mode-hook)) @@ -2195,8 +2197,6 @@ the user from the mailer." (let ((message-deletable-headers (if news nil message-deletable-headers))) (message-generate-headers message-required-mail-headers)) - (if (featurep 'mm-encode) - (mm-encode-message-header)) ;; Let the user do all of the above. (run-hooks 'message-header-hook)) (unwind-protect @@ -2398,8 +2398,6 @@ to find out how to use this." (message-narrow-to-headers) ;; Insert some headers. (message-generate-headers message-required-news-headers) - (if (featurep 'mm-encode) - (mm-encode-message-header)) ;; Let the user do all of the above. (run-hooks 'message-header-hook)) (message-cleanup-headers) diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index e1d50ed..d6275aa 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -2,7 +2,8 @@ ;; Copyright (C) 1998 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen -;; This file is not yet part of GNU Emacs. +;; MORIOKA Tomohiko +;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -23,112 +24,6 @@ ;;; Code: -(require 'base64) -(require 'qp) -(require 'nnheader) - -(defvar mm-charset-regexp (concat "[^" "][\000-\040()<>@,\;:\\\"/?.=" "]+")) - -(defvar mm-encoded-word-regexp - (concat "=\\?\\(" mm-charset-regexp "\\)\\?\\(B\\|Q\\)\\?" - "\\([!->@-~]+\\)\\?=")) - -(defun mm-decode-words-region (start end) - "Decode MIME-encoded words in region between START and END." - (interactive "r") - (save-excursion - (save-restriction - (narrow-to-region start end) - (goto-char (point-min)) - ;; Remove whitespace between encoded words. - (while (re-search-forward - (concat "\\(" mm-encoded-word-regexp "\\)" - "\\(\n?[ \t]\\)+" - "\\(" mm-encoded-word-regexp "\\)") - nil t) - (delete-region (goto-char (match-end 1)) (match-beginning 6))) - ;; Decode the encoded words. - (goto-char (point-min)) - (while (re-search-forward mm-encoded-word-regexp nil t) - (insert (mm-decode-word - (prog1 - (match-string 0) - (delete-region (match-beginning 0) (match-end 0))))))))) - -(defun mm-decode-words-string (string) - "Decode the quoted-printable-encoded STRING and return the results." - (with-temp-buffer - (insert string) - (inline - (mm-decode-words-region (point-min) (point-max))) - (buffer-string))) - -(defun mm-decode-word (word) - "Decode WORD and return it if it is an encoded word. -Return WORD if not." - (if (not (string-match mm-encoded-word-regexp word)) - word - (or - (condition-case nil - (mm-decode-text - (match-string 1 word) - (upcase (match-string 2 word)) - (match-string 3 word)) - (error word)) - word))) - -(eval-and-compile - (if (fboundp 'decode-coding-string) - (fset 'mm-decode-coding-string 'decode-coding-string) - (fset 'mm-decode-coding-string (lambda (s a) s)))) - -(defun mm-decode-text (charset encoding string) - "Decode STRING as an encoded text. -Valid ENCODINGs are \"B\" and \"Q\". -If your Emacs implementation can't decode CHARSET, it returns nil." - (let ((cs (mm-charset-to-coding-system charset))) - (when cs - (mm-decode-coding-string - (cond - ((equal "B" encoding) - (base64-decode string)) - ((equal "Q" encoding) - (quoted-printable-decode-string - (nnheader-replace-chars-in-string string ?_ ? ))) - (t (error "Invalid encoding: %s" encoding))) - cs)))) - -(defvar mm-charset-coding-system-alist - (let ((rest - '((us-ascii . iso-8859-1) - (gb2312 . cn-gb-2312) - (iso-2022-jp-2 . iso-2022-7bit-ss2) - (x-ctext . ctext))) - (systems (coding-system-list)) - dest) - (while rest - (let ((pair (car rest))) - (unless (memq (car pair) systems) - (setq dest (cons pair dest)))) - (setq rest (cdr rest))) - dest) - "Charset/coding system alist.") - -(defun mm-charset-to-coding-system (charset &optional lbt) - "Return coding-system corresponding to CHARSET. -CHARSET is a symbol naming a MIME charset. -If optional argument LBT (`unix', `dos' or `mac') is specified, it is -used as the line break code type of the coding system." - (when (stringp charset) - (setq charset (intern (downcase charset)))) - (setq charset - (or (cdr (assq charset mm-charset-coding-system-alist)) - charset)) - (when lbt - (setq charset (intern (format "%s-%s" charset lbt)))) - (when (memq charset (coding-system-list)) - charset)) - (provide 'mm-decode) -;; qp.el ends here +;; mm-decode.el ends here diff --git a/lisp/mm-encode.el b/lisp/mm-encode.el index 875d12f..38cd97a 100644 --- a/lisp/mm-encode.el +++ b/lisp/mm-encode.el @@ -3,7 +3,7 @@ ;; Author: Lars Magne Ingebrigtsen ;; MORIOKA Tomohiko -;; This file is not yet part of GNU Emacs. +;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -24,179 +24,6 @@ ;;; Code: -(defvar mm-header-encoding-alist - '(("X-Nsubject" . iso-2022-jp-2) - ("Newsgroups" . nil) - ("Message-ID" . nil) - (t . mime)) - "*Header/encoding method alist. -The list is traversed sequentially. The keys can either be a -header regexp or `t'. - -The values can be: - -1) nil, in which case no encoding is done; -2) `mime', in which case the header will be encoded according to RFC1522; -3) a charset, in which case it will be encoded as that charse; -4) `default', in which case the field will be encoded as the rest - of the article.") - -(defvar mm-mime-mule-charset-alist - '((us-ascii ascii) - (iso-8859-1 latin-iso8859-1) - (iso-8859-2 latin-iso8859-2) - (iso-8859-3 latin-iso8859-3) - (iso-8859-4 latin-iso8859-4) - (iso-8859-5 cyrillic-iso8859-5) - (koi8-r cyrillic-iso8859-5) - (iso-8859-6 arabic-iso8859-6) - (iso-8859-7 greek-iso8859-7) - (iso-8859-8 hebrew-iso8859-8) - (iso-8859-9 latin-iso8859-9) - (iso-2022-jp latin-jisx0201 - japanese-jisx0208-1978 japanese-jisx0208) - (euc-kr korean-ksc5601) - (cn-gb-2312 chinese-gb2312) - (cn-big5 chinese-big5-1 chinese-big5-2) - (iso-2022-jp-2 latin-iso8859-1 greek-iso8859-7 - latin-jisx0201 japanese-jisx0208-1978 - chinese-gb2312 japanese-jisx0208 - korean-ksc5601 japanese-jisx0212) - (iso-2022-int-1 latin-iso8859-1 greek-iso8859-7 - latin-jisx0201 japanese-jisx0208-1978 - chinese-gb2312 japanese-jisx0208 - korean-ksc5601 japanese-jisx0212 - chinese-cns11643-1 chinese-cns11643-2) - (iso-2022-int-1 latin-iso8859-1 latin-iso8859-2 - cyrillic-iso8859-5 greek-iso8859-7 - latin-jisx0201 japanese-jisx0208-1978 - chinese-gb2312 japanese-jisx0208 - korean-ksc5601 japanese-jisx0212 - chinese-cns11643-1 chinese-cns11643-2 - chinese-cns11643-3 chinese-cns11643-4 - chinese-cns11643-5 chinese-cns11643-6 - chinese-cns11643-7)) - "Alist of MIME-charset/MULE-charsets.") - -(defvar mm-mime-charset-encoding-alist - '((us-ascii . nil) - (iso-8859-1 . Q) - (iso-8859-2 . Q) - (iso-8859-3 . Q) - (iso-8859-4 . Q) - (iso-8859-5 . Q) - (koi8-r . Q) - (iso-8859-7 . Q) - (iso-8859-8 . Q) - (iso-8859-9 . Q) - (iso-2022-jp . B) - (iso-2022-kr . B) - (gb2312 . B) - (cn-gb . B) - (cn-gb-2312 . B) - (euc-kr . B) - (iso-2022-jp-2 . B) - (iso-2022-int-1 . B)) - "Alist of MIME charsets to MIME encodings. -Valid encodings are nil, `Q' and `B'.") - -(defvar mm-mime-encoding-function-alist - '((Q . quoted-printable-encode-region) - (B . base64-encode-region) - (nil . ignore)) - "Alist of MIME encodings to encoding functions.") - -(defun mm-encode-message-header () - "Encode the message header according to `mm-header-encoding-alist'." - (when (featurep 'mule) - (save-excursion - (save-restriction - (message-narrow-to-headers) - (let ((alist mm-header-encoding-alist) - elem method) - (while (not (eobp)) - (save-restriction - (message-narrow-to-field) - (when (find-non-ascii-charset-region (point-min) (point-max)) - ;; We found something that may perhaps be encoded. - (while (setq elem (pop alist)) - (when (or (and (stringp (car elem)) - (looking-at (car elem))) - (eq (car elem) t)) - (setq alist nil - method (cdr elem)))) - (when method - (cond - ((eq method 'mime) - (mm-encode-words-region (point-min) (point-max))) - ;; Hm. - (t)))) - (goto-char (point-max))))))))) - -(defun mm-encode-words-region (b e) - "Encode all encodable words in REGION." - (let (prev c start qstart qprev qend) - (save-excursion - (goto-char b) - (while (re-search-forward "[^ \t\n]+" nil t) - (save-restriction - (narrow-to-region (match-beginning 0) (match-end 0)) - (goto-char (setq start (point-min))) - (setq prev nil) - (while (not (eobp)) - (unless (eq (setq c (char-charset (following-char))) 'ascii) - (cond - ((eq c prev) - ) - ((null prev) - (setq qstart (or qstart start) - qend (point-max) - qprev c) - (setq prev c)) - (t - ;(mm-encode-word-region start (setq start (point)) prev) - (setq prev c) - ))) - (forward-char 1))) - (when (and (not prev) qstart) - (mm-encode-word-region qstart qend qprev) - (setq qstart nil))) - (when qstart - (mm-encode-word-region qstart qend qprev) - (setq qstart nil))))) - -(defun mm-encode-words-string (string) - "Encode words in STRING." - (with-temp-buffer - (insert string) - (mm-encode-words-region (point-min) (point-max)) - (buffer-string))) - -(defun mm-mule-charset-to-mime-charset (charset) - "Return the MIME charset corresponding to MULE CHARSET." - (let ((alist mm-mime-mule-charset-alist) - out) - (while alist - (when (memq charset (cdar alist)) - (setq out (caar alist) - alist nil)) - (pop alist)) - out)) - -(defun mm-encode-word-region (b e charset) - "Encode the word in the region with CHARSET." - (let* ((mime-charset (mm-mule-charset-to-mime-charset charset)) - (encoding (cdr (assq mime-charset mm-mime-charset-encoding-alist)))) - (save-restriction - (narrow-to-region b e) - (funcall (cdr (assq encoding mm-mime-encoding-function-alist)) - b e) - (goto-char (point-min)) - (insert "=?" (upcase (symbol-name mime-charset)) "?" - (symbol-name encoding) "?") - (goto-char (point-max)) - (insert "?=")))) - (provide 'mm-encode) ;;; mm-encode.el ends here diff --git a/lisp/nnfolder.el b/lisp/nnfolder.el index 5efb0db..b6ba830 100644 --- a/lisp/nnfolder.el +++ b/lisp/nnfolder.el @@ -511,17 +511,20 @@ Returns t if successful, nil otherwise." "Delete the message that point is in. If optional argument LEAVE-DELIM is t, then mailbox delimiter is not deleted. Point is left where the deleted region was." - (delete-region - (save-excursion - (forward-line 1) ; in case point is at beginning of message already - (nnmail-search-unix-mail-delim-backward) - (if leave-delim (progn (forward-line 1) (point)) - (point))) - (progn - (forward-line 1) - (if (nnmail-search-unix-mail-delim) - (point) - (point-max))))) + (save-restriction + (narrow-to-region + (save-excursion + (forward-line 1) ; in case point is at beginning of message already + (nnmail-search-unix-mail-delim-backward) + (if leave-delim (progn (forward-line 1) (point)) + (point))) + (progn + (forward-line 1) + (if (nnmail-search-unix-mail-delim) + (point) + (point-max)))) + (run-hooks 'nnfolder-delete-mail-hook) + (delete-region (point-min) (point-max)))) (defun nnfolder-possibly-change-group (group &optional server dont-check) ;; Change servers. diff --git a/lisp/qp.el b/lisp/qp.el index 1ef4a77..58dfb36 100644 --- a/lisp/qp.el +++ b/lisp/qp.el @@ -56,14 +56,17 @@ (quoted-printable-decode-region (point-min) (point-max)) (buffer-string))) -(defun quoted-printable-encode-region (from to) - "QP-encode the region between FROM and TO." +(defun quoted-printable-encode-region (from to &optional fold class) + "QP-encode the region between FROM and TO. +If FOLD, fold long lines. If CLASS, translate the characters +matched by that regexp." (interactive "r") (save-excursion (save-restriction (narrow-to-region from to) (goto-char (point-min)) - (while (re-search-forward "[\000-\007\013\015-\037\200-\237=]" nil t) + (while (re-search-forward + (or class "[\000-\007\013\015-\037\200-\377=]") nil t) (insert (prog1 (format "=%x" (char-after (1- (point)))) diff --git a/texi/ChangeLog b/texi/ChangeLog index fd2879c..335a4d4 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,7 @@ +1998-08-31 11:46:57 Lars Magne Ingebrigtsen + + * gnus.texi (Mail Folders): Addition. + 1998-08-27 07:29:17 Lars Magne Ingebrigtsen * gnus.texi (Mail Folders): Addition. diff --git a/texi/gnus.texi b/texi/gnus.texi index 1e5e822..b92f721 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Semi-gnus 6.9.02 Manual +@settitle Semi-gnus 6.9.04 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.9.02 Manual +@title Semi-gnus 6.9.04 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.9.02. +This manual corresponds to Semi-gnus 6.9.04. @end ifinfo @@ -10420,6 +10420,12 @@ your @file{.emacs} file: (add-hook 'nnfolder-save-buffer-hook 'turn-off-backup) @end lisp +@item nnfolder-delete-mail-hook +@vindex nnfolder-delete-mail-hook +Hook run in a buffer narrowed to the message that is to be deleted. +This function can be used to copy the message to somewhere else, or to +extract some information from it before removing it. + @end table diff --git a/texi/message.texi b/texi/message.texi index 65d345b..482b0d3 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Pterodactyl Message 0.8 Manual +@settitle Pterodactyl Message 0.10 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.8 Manual +@title Pterodactyl Message 0.10 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.8. Message is +This manual corresponds to Pterodactyl Message 0.10. Message is distributed with the Gnus distribution bearing the same version number as this manual has. -- 1.7.10.4