changeset 63868:e903f947651d

Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-458 Merge from gnus--rel--5.10 Patches applied: * gnus--rel--5.10 (patch 83-85) - Merge from emacs--cvs-trunk--0 - Update from CVS 2005-06-29 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-nocem.el (gnus-nocem-verifyer): Default to pgg-verify. (gnus-nocem-check-article): Fetch the Type header. (gnus-nocem-message-wanted-p): Fix the way to examine types. (gnus-nocem-verify-issuer): Use functionp instead of fboundp. (gnus-nocem-enter-article): Make sure gnus-nocem-hashtb is initialized. * lisp/gnus/pgg.el (pgg-verify): Return the verification result. 2005-06-29 Katsumi Yamaoka <yamaoka@jpl.org> * man/gnus.texi (NoCeM): gnus-nocem-verifyer defaults to pgg-verify.
author Miles Bader <miles@gnu.org>
date Thu, 30 Jun 2005 00:27:41 +0000
parents f3e6b99200bc
children e7c533a3b1b9 bb71c6cf2009
files lisp/gnus/ChangeLog lisp/gnus/gnus-nocem.el lisp/gnus/pgg.el man/ChangeLog man/gnus.texi
diffstat 5 files changed, 42 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Wed Jun 29 23:50:29 2005 +0000
+++ b/lisp/gnus/ChangeLog	Thu Jun 30 00:27:41 2005 +0000
@@ -1,3 +1,13 @@
+2005-06-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-nocem.el (gnus-nocem-verifyer): Default to pgg-verify.
+	(gnus-nocem-check-article): Fetch the Type header.
+	(gnus-nocem-message-wanted-p): Fix the way to examine types.
+	(gnus-nocem-verify-issuer): Use functionp instead of fboundp.
+	(gnus-nocem-enter-article): Make sure gnus-nocem-hashtb is initialized.
+
+	* pgg.el (pgg-verify): Return the verification result.
+
 2005-06-24  Juanma Barranquero  <lekktu@gmail.com>
 
 	* gnus-art.el (gnus-article-mode): Set `nobreak-char-display', not
--- a/lisp/gnus/gnus-nocem.el	Wed Jun 29 23:50:29 2005 +0000
+++ b/lisp/gnus/gnus-nocem.el	Thu Jun 30 00:27:41 2005 +0000
@@ -1,6 +1,6 @@
 ;;; gnus-nocem.el --- NoCeM pseudo-cancellation treatment
 
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2004
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 
@@ -74,12 +74,13 @@
   :group 'gnus-nocem
   :type 'integer)
 
-(defcustom gnus-nocem-verifyer 'mc-verify
+(defcustom gnus-nocem-verifyer 'pgg-verify
   "*Function called to verify that the NoCeM message is valid.
-One likely value is `mc-verify'.  If the function in this variable
+One likely value is `pgg-verify'.  If the function in this variable
 isn't bound, the message will be used unconditionally."
   :group 'gnus-nocem
-  :type '(radio (function-item mc-verify)
+  :type '(radio (function-item pgg-verify)
+		(function-item mc-verify)
 		(function :tag "other")))
 
 (defcustom gnus-nocem-liberal-fetch nil
@@ -246,7 +247,7 @@
 	;; We get the name of the issuer.
 	(narrow-to-region b e)
 	(setq issuer (mail-fetch-field "issuer")
-	      type (mail-fetch-field "issuer"))
+	      type (mail-fetch-field "type"))
 	(widen)
 	(if (not (gnus-nocem-message-wanted-p issuer type))
 	    (message "invalid NoCeM issuer: %s" issuer)
@@ -267,18 +268,20 @@
       (while (setq condition (pop conditions))
 	(cond
 	 ((stringp condition)
-	  (setq wanted (string-match condition type)))
+	  (when (string-match condition type)
+	    (setq wanted t)))
 	 ((and (consp condition)
 	       (eq (car condition) 'not)
 	       (stringp (cadr condition)))
-	  (setq wanted (not (string-match (cadr condition) type))))
+	  (when (string-match (cadr condition) type)
+	    (setq wanted nil)))
 	 (t
 	  (error "Invalid NoCeM condition: %S" condition))))
       wanted))))
 
 (defun gnus-nocem-verify-issuer (person)
   "Verify using PGP that the canceler is who she says she is."
-  (if (fboundp gnus-nocem-verifyer)
+  (if (functionp gnus-nocem-verifyer)
       (ignore-errors
 	(funcall gnus-nocem-verifyer))
     ;; If we don't have Mailcrypt, then we use the message anyway.
@@ -315,7 +318,10 @@
 	    (while (eq (char-after) ?\t)
 	      (forward-line -1))
 	    (setq id (buffer-substring (point) (1- (search-forward "\t"))))
-	    (unless (gnus-gethash id gnus-nocem-hashtb)
+	    (unless (if gnus-nocem-hashtb
+			(gnus-gethash id gnus-nocem-hashtb)
+		      (setq gnus-nocem-hashtb (gnus-make-hashtable))
+		      nil)
 	      ;; only store if not already present
 	      (gnus-sethash id t gnus-nocem-hashtb)
 	      (push id ncm))
--- a/lisp/gnus/pgg.el	Wed Jun 29 23:50:29 2005 +0000
+++ b/lisp/gnus/pgg.el	Thu Jun 30 00:27:41 2005 +0000
@@ -380,7 +380,8 @@
 	(with-output-to-temp-buffer pgg-echo-buffer
 	  (set-buffer standard-output)
 	  (insert-buffer-substring (if status pgg-output-buffer
-				     pgg-errors-buffer)))))))
+				     pgg-errors-buffer)))))
+    status))
 
 ;;;###autoload
 (defun pgg-insert-key ()
--- a/man/ChangeLog	Wed Jun 29 23:50:29 2005 +0000
+++ b/man/ChangeLog	Thu Jun 30 00:27:41 2005 +0000
@@ -1,3 +1,7 @@
+2005-06-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (NoCeM): gnus-nocem-verifyer defaults to pgg-verify.
+
 2005-06-29  Carsten Dominik  <dominik@science.uva.nl>
 
 	* org.texi: Version 3.12
--- a/man/gnus.texi	Wed Jun 29 23:50:29 2005 +0000
+++ b/man/gnus.texi	Thu Jun 30 00:27:41 2005 +0000
@@ -21750,27 +21750,18 @@
 
 @item gnus-nocem-verifyer
 @vindex gnus-nocem-verifyer
-@findex mc-verify
+@findex pgg-verify
 This should be a function for verifying that the NoCeM issuer is who she
-says she is.  The default is @code{mc-verify}, which is a Mailcrypt
-function.  If this is too slow and you don't care for verification
-(which may be dangerous), you can set this variable to @code{nil}.
-
-If you want signed NoCeM messages to be verified and unsigned messages
-not to be verified (but used anyway), you could do something like:
-
-@lisp
-(setq gnus-nocem-verifyer 'my-gnus-mc-verify)
-
-(defun my-gnus-mc-verify ()
-  (not (eq 'forged
-           (ignore-errors
-             (if (mc-verify)
-                 t
-               'forged)))))
-@end lisp
-
-This might be dangerous, though.
+says she is.  The default is @code{pgg-verify}, which returns
+non-@code{nil} if the verification is successful, otherwise (including
+the case the NoCeM message was not signed) returns @code{nil}.  If this
+is too slow and you don't care for verification (which may be dangerous),
+you can set this variable to @code{nil}.
+
+Formerly the default was @code{mc-verify}, which is a Mailcrypt
+function.  While you can still use it, you can change it into
+@code{pgg-verify} running with GnuPG if you are willing to add the
+@acronym{PGP} public keys to GnuPG's keyring.
 
 @item gnus-nocem-directory
 @vindex gnus-nocem-directory