;ELC   
;;; compiled by gutnik@multics.mit.edu on Thu Jun 10 13:05:55 2004
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/xemacs-gnus-5.10.6/lisp/gnus-nocem.el
;;; emacs version 21.4 (patch 4) "Artificial Intelligence" XEmacs Lucid.
;;; bytecomp version 2.27 XEmacs; 2000-09-12.
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 19.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "20")))
    (error "`gnus-nocem.el' was compiled for Emacs 20"))

(or (boundp 'current-load-list) (setq current-load-list nil))


(byte-code "!!!!!%" [require gnus nnmail gnus-art gnus-sum gnus-range custom-declare-group gnus-nocem nil "NoCeM pseudo-cancellation treatment" :group gnus-score] 6)
(custom-declare-variable 'gnus-nocem-groups ''("news.lists.filters" "news.admin.net-abuse.bulletins" "alt.nocem.misc" "news.admin.net-abuse.announce") "*List of groups that will be searched for NoCeM messages." :group 'gnus-nocem :type '(repeat (string :tag "Group")))
(custom-declare-variable 'gnus-nocem-issuers ''("AutoMoose-1" "clewis@ferret.ocunix" "cosmo.roadkill" "SpamHippo" "hweede@snafu.de") "*List of NoCeM issuers to pay attention to.\n\nThis can also be a list of `(ISSUER CONDITION ...)' elements.\n\nSee <URL:http://www.xs4all.nl/~rosalind/nocemreg/nocemreg.html> for an\nissuer registry." :group 'gnus-nocem :link '(url-link "http://www.xs4all.nl/~rosalind/nocemreg/nocemreg.html") :type '(repeat (choice string sexp)))
(custom-declare-variable 'gnus-nocem-directory '(nnheader-concat gnus-article-save-directory "NoCeM/") "*Directory where NoCeM files will be stored." :group 'gnus-nocem :type 'directory)
(custom-declare-variable 'gnus-nocem-expiry-wait '15 "*Number of days to keep NoCeM headers in the cache." :group 'gnus-nocem :type 'integer)
(custom-declare-variable 'gnus-nocem-verifyer ''mc-verify "*Function called to verify that the NoCeM message is valid.\nOne likely value is `mc-verify'.  If the function in this variable\nisn't bound, the message will be used unconditionally." :group 'gnus-nocem :type '(radio (function-item mc-verify) (function :tag "other")))
(custom-declare-variable 'gnus-nocem-liberal-fetch 'nil "*If t try to fetch all messages which have @@NCM in the subject.\nOtherwise don't fetch messages which have references or whose message-id\nmatches a previously scanned and verified nocem message." :group 'gnus-nocem :type 'boolean)
(custom-declare-variable 'gnus-nocem-check-article-limit '500 "*If non-nil, the maximum number of articles to check in any NoCeM group." :group 'gnus-nocem :version "21.1" :type '(choice (const :tag "unlimited" nil) (integer 1000)))
(custom-declare-variable 'gnus-nocem-check-from 't "Non-nil means check for valid issuers in message bodies.\nOtherwise don't bother fetching articles unless their author matches a\nvalid issuer, which is much faster if you are selective about the issuers." :group 'gnus-nocem :version "21.1" :type 'boolean)
(byte-code "B!B!B!B!B!Ǉ" [gnus-nocem-seen-message-ids gnus-nocem-hashtb gnus-nocem-touched-alist gnus-nocem-alist gnus-nocem-active current-load-list boundp nil] 2)
(defalias 'gnus-nocem-active-file #[nil "!P" [gnus-nocem-directory file-name-as-directory "active"] 2])
(defalias 'gnus-nocem-cache-file #[nil "!P" [gnus-nocem-directory file-name-as-directory "cache"] 2])
#@42 Real-name mappings of subscribed groups.
(defvar gnus-nocem-real-group-hashtb nil (#$ . 3465))
#@79 Fill up a hash table with the real-name mappings from the user's active file.
(defalias 'gnus-fill-real-hashtb #[nil "	G!	\"" [gnus-nocem-real-group-hashtb gnus-newsrc-alist gnus-make-hashtable mapcar #[(group) "	@\n\"\nŕO\n)	\"L" [gnus-nocem-real-group-hashtb group gname string-match "^[^:]+:" 0 nil intern t] 3]] 3 (#$ . 3566)])
#@47 Scan all NoCeM groups for new NoCeM messages.
(defalias 'gnus-nocem-scan-groups #[nil "6ǉ0718!   !Ώ1A1@%!m\"A@A@W		AAW\"ǉ-2!!4֎r4q		AT@AB!0\"a02#2!--A-@H\"m9i:)`;H☬HPH<H\nBB3\n=\"G5\n.//@..H3T35&.\"/A/Z.D\"\"B+   ." [gnus-nocem-active active check-headers header gactive group t nil gnus-make-directory gnus-nocem-load-cache gnus-fill-real-hashtb file-exists-p gnus-nocem-active-file (byte-code " $" [load gnus-nocem-active-file t] 5) ((error)) gnus-activate-group assoc make-vector 10 get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "!!" [#1=#:temp-buffer buffer-name kill-buffer] 2)) gnus-retrieve-headers gnus-uncompress-range nov gnus-get-newsgroup-headers-xover gnus-get-newsgroup-headers string-match "@@NCM" 1 ok (byte-code "\"Ç" [gnus-nocem-issuers mapcar #[(author) "	:	@	H\"\"" [header author string-match 2 throw ok t] 4] nil] 3) 5 "" 4 0 last gnus-message 7 "Checking article %d in %s for NoCeM (%d of %d)..." gnus-nocem-check-article delq gnus-nocem-save-cache gnus-nocem-save-active headers h #2=#:--dolist-temp--11499 articles groups dependencies i #1# len gnus-nocem-groups gnus-inhibit-demon gnus-nocem-directory gnus-nocem-check-from case-fold-search gnus-nocem-liberal-fetch gnus-nocem-seen-message-ids gnus-nocem-check-article-limit] 9 (#$ . 3923) nil])
#@74 Check whether the current article is an NCM article and that we want it.
(defalias 'gnus-nocem-check-article #[(group header) "Hǉ!! !\"H\"eb#e͔|#͕d|eb##	\n}!!~\"\"! HB." [group b e type header issuer 3 nil time-less-p time-since date-to-time days-to-time gnus-request-article-this-buffer 0 re-search-forward "-----BEGIN PGP MESSAGE-----" t "-----END PGP MESSAGE-----\n?" search-forward "\n@@BEGIN NCM HEADERS\n" "\n@@BEGIN NCM BODY\n" mail-fetch-field "issuer" gnus-nocem-message-wanted-p message "invalid NoCeM issuer: %s" gnus-nocem-verify-issuer gnus-nocem-enter-article 4 date gnus-nocem-seen-message-ids gnus-newsgroup-name gnus-nocem-expiry-wait] 7 (#$ . 5437)])
(defalias 'gnus-nocem-message-wanted-p #[(issuer type) "Ɖ	\nǪ	\n\"AA@;\"l:@aA@;A@\"?R\"K," [type issuer issuers wanted conditions condition nil t assoc string-match not error "Invalid NoCeM condition: %S" gnus-nocem-issuers] 4])
#@60 Verify using PGP that the canceler is who she says she is.
(defalias 'gnus-nocem-verify-issuer #[(person) "!ďŇ" [gnus-nocem-verifyer fboundp nil (funcall gnus-nocem-verifyer) ((error)) t] 3 (#$ . 6495)])
#@49 Enter the current article into the NoCeM cache.
(defalias 'gnus-nocem-enter-article #[nil "eb##pȉ 	 ˔T}eb#Ώs9o!Ld!\n\"\n˕O\n)\"JJyfayu`!S{\"J\"LByfayu Aȡ)BB." [b e gname ncm id group search-forward "\n@@BEGIN NCM BODY\n" nil t "\n@@END NCM BODY\n" 0 "	" (byte-code "	!)" [group buf obarray gnus-nocem-real-group-hashtb read] 2) ((error)) boundp intern-soft symbol-name string-match "^[^:]+:" ?\t -1 intern 1 current-time gnus-nocem-hashtb time gnus-nocem-alist buf gnus-nocem-real-group-hashtb gnus-nocem-touched-alist] 7 (#$ . 6714)])
#@23 Load the NoCeM cache.
(defalias 'gnus-nocem-load-cache #[nil "? ! ĉ$ " [gnus-nocem-alist file-exists-p gnus-nocem-cache-file load t gnus-nocem-alist-to-hashtb] 5 (#$ . 7382) nil])
#@23 Save the NoCeM cache.
(defalias 'gnus-nocem-save-cache #[nil "\n	 !!Ȏrq\nDE!)rq~ed%,͉" [#1=#:temp-file gnus-nocem-touched-alist gnus-nocem-alist #2=#:temp-buffer gnus-nocem-cache-file get-buffer-create generate-new-buffer-name " *temp file*" ((byte-code "!!" [#2# buffer-name kill-buffer] 2)) gnus-prin1 setq quote write-region nil 0] 6 (#$ . 7582)])
#@29 Save the NoCeM active file.
(defalias 'gnus-nocem-save-active #[nil " !!ǎr\nqDE!)r\nq~ed	%," [gnus-nocem-active #1=#:temp-file #2=#:temp-buffer gnus-nocem-active-file get-buffer-create generate-new-buffer-name " *temp file*" ((byte-code "!!" [#2# buffer-name kill-buffer] 2)) gnus-prin1 setq quote write-region nil 0] 7 (#$ . 7977)])
#@50 Create a hashtable from the Message-IDs we have.
(defalias 'gnus-nocem-alist-to-hashtb #[nil "B!G_!@@!\n\"AA@	\"LArAO-" [gnus-nocem-alist gnus-nocem-hashtb expiry prev entry alist nil days-to-time gnus-make-hashtable 51 time-less-p time-since intern t pprev gnus-nocem-expiry-wait] 4 (#$ . 8346)])
(gnus-add-shutdown 'gnus-nocem-close 'gnus)
#@33 Clear internal NoCeM variables.
(defalias 'gnus-nocem-close #[nil "ƉƉƉ" [gnus-nocem-real-group-hashtb gnus-nocem-seen-message-ids gnus-nocem-touched-alist gnus-nocem-active gnus-nocem-hashtb gnus-nocem-alist nil] 3 (#$ . 8748)])
#@56 Say whether article ID in the current group is wanted.
(defalias 'gnus-nocem-unwanted-article-p #[(id) "		\"J" [id gnus-nocem-hashtb intern-soft] 3 (#$ . 8994)])
(provide 'gnus-nocem)
