+2000-11-01 10:07:13 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * 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 <zsh@cs.rochester.edu>
+
+ * mml.el (mml-read-tag): Remove spaces and LF.
+
+2000-11-01 08:01:03 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * 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 <zsh@cs.rochester.edu>
+
+ * gnus-sum.el (gnus-summary-force-verify-and-decrypt): New function.
+
2000-10-31 22:06:13 ShengHuo ZHU <zsh@cs.rochester.edu>
* gnus-sum.el (gnus-article-charset): New variable.
;;;!!!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)))))
(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 ? )
(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)
(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")
(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))))
(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)
(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"))
(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))
+2000-11-01 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+ * gnus.texi (Fancy Mail Splitting): Explain
+ `nnmail-split-fancy-with-parent'.
+
+2000-11-01 09:12:24 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.texi (Finding the News): @env is not supported in texinfo 3.12.
+
2000-10-31 Jorge Godoy <godoy@conectiva.com>
* gnus.texi: gnus-gpg document.
@vindex gnus-nntpserver-file
@cindex NNTPSERVER
@cindex @sc{nntp} server
-\e$B$b$7$3$NJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"\e(Bgnus \e$B$O\e(B @env{NNTPSERVER} \e$B4D6-JQ?t$r\e(B
+\e$B$b$7$3$NJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"\e(Bgnus \e$B$O\e(B @code{NNTPSERVER} \e$B4D6-JQ?t$r\e(B
\e$BFI$_$K$$$-$^$9!#$b$7$=$NJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"\e(B
gnus \e$B$O\e(B @code{gnus-nntpserver-file} (\e$B@_Dj$5$l$F$$$J$$>l9g\e(B
\e$B$O\e(B @file{/etc/nntpserver}) \e$B$,$3$N7o$K4X$7$F2?$+$r8@$C$F$$$J$$$+$rD4$Y$^\e(B
@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.
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