diff lisp/gnus/gnus-nocem.el @ 88155:d7ddb3e565de

sync with trunk
author Henrik Enberg <henrik.enberg@telia.com>
date Mon, 16 Jan 2006 00:03:54 +0000
parents 54348dbd8b9c
children
line wrap: on
line diff
--- a/lisp/gnus/gnus-nocem.el	Sun Jan 15 23:02:10 2006 +0000
+++ b/lisp/gnus/gnus-nocem.el	Mon Jan 16 00:03:54 2006 +0000
@@ -1,6 +1,7 @@
 ;;; gnus-nocem.el --- NoCeM pseudo-cancellation treatment
 
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
@@ -19,8 +20,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
@@ -35,7 +36,7 @@
 (require 'gnus-range)
 
 (defgroup gnus-nocem nil
-  "NoCeM pseudo-cancellation treatment"
+  "NoCeM pseudo-cancellation treatment."
   :group 'gnus-score)
 
 (defcustom gnus-nocem-groups
@@ -58,6 +59,7 @@
 See <URL:http://www.xs4all.nl/~rosalind/nocemreg/nocemreg.html> for an
 issuer registry."
   :group 'gnus-nocem
+  :link '(url-link "http://www.xs4all.nl/~rosalind/nocemreg/nocemreg.html")
   :type '(repeat (choice string sexp)))
 
 (defcustom gnus-nocem-directory
@@ -71,12 +73,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
@@ -243,7 +246,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)
@@ -264,18 +267,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.
@@ -294,7 +299,8 @@
       (while (search-forward "\t" nil t)
 	(cond
 	 ((not (ignore-errors
-		 (setq group (let ((obarray gnus-active-hashtb)) (read buf)))))
+		 (setq group (let ((obarray gnus-nocem-real-group-hashtb))
+			       (read buf)))))
 	  ;; An error.
 	  )
 	 ((not (symbolp group))
@@ -311,7 +317,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))
@@ -386,4 +395,5 @@
 
 (provide 'gnus-nocem)
 
+;;; arch-tag: 0e0c74ea-2f8e-4f3e-8fff-09f767c1adef
 ;;; gnus-nocem.el ends here