From 231fcc921b53b1dc32f9a945319f999e5ba4bda8 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Wed, 1 Nov 2000 22:38:23 +0000 Subject: [PATCH] Synch with Gnus. --- lisp/ChangeLog | 19 +++++++++++++++++++ lisp/gnus-art.el | 12 +++++++++++- lisp/gnus-sum.el | 6 ++++++ lisp/mml.el | 18 ++++++++++++++---- lisp/mml2015.el | 11 ++++++++++- texi/ChangeLog | 9 +++++++++ texi/gnus-ja.texi | 2 +- texi/gnus.texi | 36 +++++++++++++++++++++++++++++++++++- 8 files changed, 105 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c8f7cea..0d67469 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,22 @@ +2000-11-01 10:07:13 ShengHuo ZHU + + * gnus-art.el (gnus-mime-display-part): Add to signed or encrypted. + gnus-article-wash-types. + * gnus-art.el (gnus-article-wash-status): Use them. + +2000-11-01 08:54:11 ShengHuo ZHU + + * mml.el (mml-read-tag): Remove spaces and LF. + +2000-11-01 08:01:03 ShengHuo ZHU + + * mml2015.el (mml2015-mailcrypt-encrypt): Use from and sign parameters. + * mml.el (mml-generate-mime-1): Add sender and recipients attributes. + +2000-11-01 07:39:24 ShengHuo ZHU + + * gnus-sum.el (gnus-summary-force-verify-and-decrypt): New function. + 2000-10-31 22:06:13 ShengHuo ZHU * gnus-sum.el (gnus-article-charset): New variable. diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 68e0462..158735c 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -3754,6 +3754,14 @@ In no internal viewer is available, use an external viewer." ;;;!!!to the first part. (gnus-mime-display-part (cadr handle))) ;; Other multiparts are handled like multipart/mixed. + ((equal (car handle) "multipart/signed") + (or (memq 'signed gnus-article-wash-types) + (push 'signed gnus-article-wash-types)) + (gnus-mime-display-mixed (cdr handle))) + ((equal (car handle) "multipart/encrypted") + (or (memq 'encrypted gnus-article-wash-types) + (push 'encrypted gnus-article-wash-types)) + (gnus-mime-display-mixed (cdr handle))) (t (gnus-mime-display-mixed (cdr handle))))) @@ -3945,13 +3953,15 @@ In no internal viewer is available, use an external viewer." (boring (memq 'boring-headers gnus-article-wash-types)) (pgp (memq 'pgp gnus-article-wash-types)) (pem (memq 'pem gnus-article-wash-types)) + (signed (memq 'signed gnus-article-wash-types)) + (encrypted (memq 'encrypted gnus-article-wash-types)) (signature (memq 'signature gnus-article-wash-types)) (overstrike (memq 'overstrike gnus-article-wash-types)) (emphasis (memq 'emphasis gnus-article-wash-types))) (format "%c%c%c%c%c%c%c" (if cite ?c ? ) (if (or headers boring) ?h ? ) - (if (or pgp pem) ?p ? ) + (if (or pgp pem signed encrypted) ?p ? ) (if signature ?s ? ) (if overstrike ?o ? ) (if gnus-show-mime ?m ? ) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 3aae533..f1b7119 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -5953,6 +5953,12 @@ be displayed." (gnus-article-show-all-headers)) 'old)))) +(defun gnus-summary-force-verify-and-decrypt () + (interactive) + (let ((mm-verify-option 'known) + (mm-decrypt-option 'known)) + (gnus-summary-select-article nil 'force))) + (defun gnus-summary-set-current-mark (&optional current-mark) "Obsolete function." nil) diff --git a/lisp/mml.el b/lisp/mml.el index 1218523..64ba761 100644 --- a/lisp/mml.el +++ b/lisp/mml.el @@ -219,7 +219,7 @@ one charsets.") (setq name (buffer-substring-no-properties (point) (progn (forward-sexp 1) (point)))) (skip-chars-forward " \t\n") - (while (not (looking-at ">")) + (while (not (looking-at ">[ \t]*\n?")) (setq elem (buffer-substring-no-properties (point) (progn (forward-sexp 1) (point)))) (skip-chars-forward "= \t\n") @@ -229,7 +229,7 @@ one charsets.") (setq val (match-string 1 val))) (push (cons (intern elem) val) contents) (skip-chars-forward " \t\n")) - (forward-char 1) + (goto-char (match-end 0)) ;; Don't skip the leading space. ;;(skip-chars-forward " \t\n") (cons (intern name) (nreverse contents)))) @@ -396,11 +396,21 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." (insert "\n--" mml-boundary "--\n"))))) (t (error "Invalid element: %S" cont))) - (let ((item (assoc (cdr (assq 'sign cont)) mml-sign-alist))) + (let ((item (assoc (cdr (assq 'sign cont)) mml-sign-alist)) + sender recipients) (when item + (if (setq sender (cdr (assq 'sender cont))) + (message-options-set 'message-sender sender)) + (if (setq recipients (cdr (assq 'recipients cont))) + (message-options-set 'message-sender recipients)) (funcall (nth 1 item) cont))) - (let ((item (assoc (cdr (assq 'encrypt cont)) mml-encrypt-alist))) + (let ((item (assoc (cdr (assq 'encrypt cont)) mml-encrypt-alist)) + sender recipients) (when item + (if (setq sender (cdr (assq 'sender cont))) + (message-options-set 'message-sender sender)) + (if (setq recipients (cdr (assq 'recipients cont))) + (message-options-set 'message-sender recipients)) (funcall (nth 1 item) cont)))))) (defun mml-compute-boundary (cont) diff --git a/lisp/mml2015.el b/lisp/mml2015.el index 6ef9dde..6d37aba 100644 --- a/lisp/mml2015.el +++ b/lisp/mml2015.el @@ -59,6 +59,7 @@ (eval-and-compile (autoload 'mailcrypt-decrypt "mailcrypt") (autoload 'mailcrypt-verify "mailcrypt") + (autoload 'mc-pgp-always-sign "mailcrypt") (autoload 'mc-encrypt-generic "mc-toplev") (autoload 'mc-cleanup-recipient-headers "mc-toplev") (autoload 'mc-sign-generic "mc-toplev")) @@ -156,7 +157,15 @@ (or (message-options-get 'message-recipients) (message-options-set 'message-recipients (mc-cleanup-recipient-headers - (read-string "Recipients: "))))) + (read-string "Recipients: ")))) + nil nil nil + (message-options-get 'message-sender) + (or mc-pgp-always-sign + (eq t + (or (message-options-get 'message-sign-encrypt) + (message-options-set 'message-sign-encrypt + (or (y-or-n-p "Sign the message? ") + 'not)))))) (let ((boundary (funcall mml-boundary-function (incf mml-multipart-number)))) (goto-char (point-min)) diff --git a/texi/ChangeLog b/texi/ChangeLog index 48c64cd..a2205a8 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,12 @@ +2000-11-01 Kai Gro,A_(Bjohann + + * gnus.texi (Fancy Mail Splitting): Explain + `nnmail-split-fancy-with-parent'. + +2000-11-01 09:12:24 ShengHuo ZHU + + * gnus.texi (Finding the News): @env is not supported in texinfo 3.12. + 2000-10-31 Jorge Godoy * gnus.texi: gnus-gpg document. diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 1f978cb..01f53bf 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -1021,7 +1021,7 @@ Emacs for Heathens @vindex gnus-nntpserver-file @cindex NNTPSERVER @cindex @sc{nntp} server -$B$b$7$3$NJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"(Bgnus $B$O(B @env{NNTPSERVER} $B4D6-JQ?t$r(B +$B$b$7$3$NJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"(Bgnus $B$O(B @code{NNTPSERVER} $B4D6-JQ?t$r(B $BFI$_$K$$$-$^$9!#$b$7$=$NJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"(B gnus $B$O(B @code{gnus-nntpserver-file} ($B@_Dj$5$l$F$$$J$$>l9g(B $B$O(B @file{/etc/nntpserver}) $B$,$3$N7o$K4X$7$F2?$+$r8@$C$F$$$J$$$+$rD4$Y$^(B diff --git a/texi/gnus.texi b/texi/gnus.texi index b9000c2..7bbbb71 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -943,7 +943,7 @@ certainly be much faster. @cindex NNTPSERVER @cindex @sc{nntp} server If this variable is not set, gnus will take a look at the -@env{NNTPSERVER} environment variable. If that variable isn't set, +@code{NNTPSERVER} environment variable. If that variable isn't set, gnus will see whether @code{gnus-nntpserver-file} (@file{/etc/nntpserver} by default) has any opinions on the matter. If that fails as well, gnus will try to use the machine running Emacs as an @sc{nntp} server. That's a long shot, though. @@ -11779,6 +11779,40 @@ matched string will be substituted. Similarly, the elements @samp{\\1} up to @samp{\\9} will be substituted with the text matched by the groupings 1 through 9. +@findex nnmail-split-fancy-with-parent +@code{nnmail-split-fancy-with-parent} is a function which allows you to +split followups into the same groups their parents are in. Sometimes +you can't make splitting rules for all your mail. For example, your +boss might send you personal mail regarding different projects you are +working on, and as you can't tell your boss to put a distinguishing +string into the subject line, you have to resort to manually moving the +messages into the right group. With this function, you only have to do +it once per thread. + +To use this feature, you have to set @code{nnmail-treat-duplicates} to a +non-nil value. And then you can include +@code{nnmail-split-fancy-with-parent} using the colon feature, like so: +@lisp +(setq nnmail-split-fancy + '(| (: nnmail-split-fancy-with-parent) + ;; other splits go here + )) +@end lisp + +This feature works as follows: when @code{nnmail-treat-duplicates} is +non-nil, Gnus records the message id of every message it sees in the +file specified by the variable @code{nnmail-message-id-cache-file}, +together with the group it is in (the group is omitted for non-mail +messages). When mail splitting is invoked, the function +@code{nnmail-split-fancy-with-parent} then looks at the References (and +In-Reply-To) header of each message to split and searches the file +specified by @code{nnmail-message-id-cache-file} for the message ids. +When it has found a parent, it returns the corresponding group name. It +is recommended that you set @code{nnmail-message-id-cache-length} to a +somewhat higher number than the default so that the message ids are +still in the cache. (A value of 5000 appears to create a file some +300 kBytes in size.) + @node Group Mail Splitting @subsection Group Mail Splitting -- 1.7.10.4