;ELC   
;;; Compiled by amu@quiche-lorraine.mit.edu on Thu Jan  6 19:17:23 2000
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/gnus-5.8.3/lisp/gnus-nocem.el
;;; in Emacs version 20.4.1
;;; with bytecomp version 2.56
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`gnus-nocem.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\301\302!\210\301\303!\210\301\304!\210\301\305!\210\301\306!\210\307\310\311\312\313%\207" [:group require gnus nnmail gnus-art gnus-sum gnus-range custom-declare-group gnus-nocem nil "NoCeM pseudo-cancellation treatment" gnus-score] 6)
#@59 *List of groups that will be searched for NoCeM messages.
(custom-declare-variable 'gnus-nocem-groups ''("news.lists.filters" "news.admin.net-abuse.bulletins" "alt.nocem.misc" "news.admin.net-abuse.announce") '(#$ . -898) :group 'gnus-nocem :type '(repeat (string :tag "Group")))
#@105 *List of NoCeM issuers to pay attention to.

This can also be a list of `(ISSUER CONDITIONS)' elements.
(custom-declare-variable 'gnus-nocem-issuers ''("AutoMoose-1" "Automoose-1" "rbraver@ohww.norman.ok.us" "clewis@ferret.ocunix.on.ca" "jem@xpat.com" "snowhare@xmission.com" "red@redpoll.mrfs.oh.us (Richard E. Depew)") '(#$ . -1185) :group 'gnus-nocem :type '(repeat (choice string sexp)))
#@46 *Directory where NoCeM files will be stored.
(custom-declare-variable 'gnus-nocem-directory '(nnheader-concat gnus-article-save-directory "NoCeM/") '(#$ . -1583) :group 'gnus-nocem :type 'directory)
#@53 *Number of days to keep NoCeM headers in the cache.
(custom-declare-variable 'gnus-nocem-expiry-wait '15 '(#$ . -1788) :group 'gnus-nocem :type 'integer)
#@183 *Function called to verify that the NoCeM message is valid.
One likely value is `mc-verify'.  If the function in this variable
isn't bound, the message will be used unconditionally.
(custom-declare-variable 'gnus-nocem-verifyer ''mc-verify '(#$ . -1949) :group 'gnus-nocem :type '(radio (function-item mc-verify) (function :tag "other")))
#@197 *If t try to fetch all messages which have @@NCM in the subject.
Otherwise don't fetch messages which have references or whose message-id
matches an previously scanned and verified nocem message.
(custom-declare-variable 'gnus-nocem-liberal-fetch 'nil '(#$ . -2295) :group 'gnus-nocem :type 'boolean)
(byte-code "\306\300!\204 \307\300	B\306\302!\204 \307\302	B\306\303!\204  \307\303	B\306\304!\204, \307\304	B\306\305!\2048 \307\305	B\307\207" [gnus-nocem-active current-load-list gnus-nocem-alist gnus-nocem-touched-alist gnus-nocem-hashtb gnus-nocem-seen-message-ids boundp nil] 2)
(defalias 'gnus-nocem-active-file #[nil "\301!\302P\207" [gnus-nocem-directory file-name-as-directory "active"] 2])
(defalias 'gnus-nocem-cache-file #[nil "\301!\302P\207" [gnus-nocem-directory file-name-as-directory "cache"] 2])
#@42 Real-name mappings of subscribed groups.
(defvar gnus-nocem-real-group-hashtb nil (#$ . 3131))
#@79 Fill up a hash table with the real-name mappings from the user's active file.
(defalias 'gnus-fill-real-hashtb #[nil "\302G!\303\304\"\207" [gnus-newsrc-alist gnus-nocem-real-group-hashtb gnus-make-hashtable mapcar #[(group) "@\303\304	\"\203 	\305\225\306O\202 	)\307\n\"\310L\207" [group gname gnus-nocem-real-group-hashtb string-match "^[^:]+:" 0 nil intern t] 3]] 3 (#$ . 3232)])
#@47 Scan all NoCeM groups for new NoCeM messages.
(defalias 'gnus-nocem-scan-groups #[nil "\306\307\211\211\211\211+,\310-!\210\311 \210\312 \210\313\314 !\203, .\204, \315\316\317\217\210,\211A,@\211\203+\320!\211\203, \321.\"A@A@W\204\f\203\\ \fAAW\203\212\322\323\307\"\307\211/01\324\325\326!!2\327\216r2q\210\330\331\f\203\203 \fAT\202\205 @AB!\211\"\332=\203\233 \333\n\3071#\202\237 \3341!00\211A0@\211/\203\337 \335\336/\337H\"\203\241 3\204\327 /\340H\341\230\204\315 /\340H\204\241 /\342H4\235\204\241 /	B\202\241 \343	G56	\3077\2118\2038@7\344\345\3467\343H6T\21165&\210\3477\"\2108A\2118\204\360 .D\350\321.\".\"B.\202, \351 \210\352 .\207" [gnus-nocem-groups check-headers articles gactive active group t nil gnus-make-directory gnus-nocem-load-cache gnus-fill-real-hashtb file-exists-p gnus-nocem-active-file #1=#:G81994 (byte-code "\300\301 \302\211\211$\207" [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 "\301!\203\n \302!\210\301\207" [#2=#: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 5 "" 4 0 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 gnus-inhibit-demon groups gnus-nocem-directory gnus-nocem-active header headers dependencies #2# gnus-nocem-liberal-fetch gnus-nocem-seen-message-ids len i h #3=#:--dolist-temp--81995] 8 (#$ . 3631) nil])
#@74 Check whether the current article is an NCM article and that we want it.
(defalias 'gnus-nocem-check-article #[(group header) "\306H\307\211\211\211\211\203 \310\311\312!!\313!\"\205\212 \314\315H\"\210eb\210\316\317\307\320#\2036 e\315\224|\210\316\321\307\320#\203C \315\225d|\210eb\210\322\323\307\320#\211\205\212 \322\324\307\320#\211\205\212 \n}\210\325\326!\325\326!~\210\327\f	\"\204v \330\331\f\"\202\212 \332\f!\205\212 \333 \205\212 \334HB\211-\207" [header type e b issuer date 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 gnus-nocem-expiry-wait group gnus-nocem-seen-message-ids] 6 (#$ . 5302)])
(defalias 'gnus-nocem-message-wanted-p #[(issuer type) "\306\211\211\f\235\203 \307\202\\ \310\f\"A\211\205\\ \n\211A@\211\203[ 	;\2034 \311	\"\202 	:\203S 	@\312=\203S 	A@;\203S \311	A@\"?\202 \313\314	\"\210\202 ,\207" [gnus-nocem-issuers condition conditions wanted issuers issuer nil t assoc string-match not error "Invalid NoCeM condition: %S" type] 4])
#@60 Verify using PGP that the canceler is who she says she is.
(defalias 'gnus-nocem-verify-issuer #[(person) "\301!\203 \302\303\304\217\207\305\207" [gnus-nocem-verifyer fboundp #1=#:G81996 (funcall gnus-nocem-verifyer) ((error)) t] 3 (#$ . 6651)])
#@49 Enter the current article into the NoCeM cache.
(defalias 'gnus-nocem-enter-article #[nil "eb\210\306\307\310\311#\306\312\310\311#p\310\211\211\211\205\301 \f\205\301 \313\224T}\210eb\210\306\314\310\311#\203\246 \315\316\317\217\203( 9\203( \320!\204I \310L\210\202( \321\322!\323\324\"\203` \313\225\310O\202b )\"J\203( \313y\210\310f\325=\203z \326y\210\202m `\306\314!S{\321	\"J\204\226 \327	\"\311L\210	\nB\330y\210\310f\325=\203( \330y\210\202\231 \n\203\300 \311\331 \211A\310\241\210)\nBB\311.\207" [group id ncm buf e b search-forward "\n@@BEGIN NCM BODY\n" nil t "\n@@END NCM BODY\n" 0 "	" #1=#:G81997 (byte-code "\304\n!)\211\207" [gnus-active-hashtb obarray buf group read] 2) ((error)) boundp intern-soft symbol-name string-match "^[^:]+:" 9 -1 intern 1 current-time gname gnus-nocem-real-group-hashtb gnus-nocem-hashtb gnus-nocem-touched-alist time gnus-nocem-alist] 7 (#$ . 6906)])
#@23 Load the NoCeM cache.
(defalias 'gnus-nocem-load-cache #[nil "?\205 \301\302 !\205 \303\302 \304\211\211$\210\305 \207" [gnus-nocem-alist file-exists-p gnus-nocem-cache-file load t gnus-nocem-alist-to-hashtb] 5 (#$ . 7851) nil])
#@23 Save the NoCeM cache.
(defalias 'gnus-nocem-save-cache #[nil "\2053 	\2053 \304 \305\306\307!!\310\216r\nq\210\311\312\300\313DE!\210)r\nq\210~\210\314ed\315\316%\210,\315\211\207" [gnus-nocem-alist gnus-nocem-touched-alist #1=#:temp-buffer #2=#:temp-file gnus-nocem-cache-file get-buffer-create generate-new-buffer-name " *temp file*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) gnus-prin1 setq quote write-region nil 0] 6 (#$ . 8089)])
#@29 Save the NoCeM active file.
(defalias 'gnus-nocem-save-active #[nil "\303 \304\305\306!!\307\216rq\210\310\311\302\312\nDE!)rq\210~\210\313ed	\314\315%\210,\207" [#1=#:temp-buffer #2=#:temp-file gnus-nocem-active gnus-nocem-active-file get-buffer-create generate-new-buffer-name " *temp file*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) gnus-prin1 setq quote write-region nil 0] 7 (#$ . 8575)])
#@50 Create a hashtable from the Message-IDs we have.
(defalias 'gnus-nocem-alist-to-hashtb #[nil "\306	B\211\307\f!\306\310	G\311_!	@\211\205W \312\313@!\"\2042 	A\241\210\202P 	A\211\203P \314@\"\315L\210A\211\204= 	A\211\202 -\207" [gnus-nocem-alist alist pprev prev gnus-nocem-expiry-wait expiry nil days-to-time gnus-make-hashtable 51 time-less-p time-since intern t entry gnus-nocem-hashtb] 4 (#$ . 9017)])
(gnus-add-shutdown 'gnus-nocem-close 'gnus)
#@33 Clear internal NoCeM variables.
(defalias 'gnus-nocem-close #[nil "\306\306\306\306\306\306\211\207" [gnus-nocem-alist gnus-nocem-hashtb gnus-nocem-active gnus-nocem-touched-alist gnus-nocem-seen-message-ids gnus-nocem-real-group-hashtb nil] 2 (#$ . 9505)])
#@56 Say whether article ID in the current group is wanted.
(defalias 'gnus-nocem-unwanted-article-p #[(id) "\205	 \302	\"J\207" [gnus-nocem-hashtb id intern-soft] 3 (#$ . 9775)])
(provide 'gnus-nocem)
