;ELC   
;;; Compiled by amu@quiche-lorraine.mit.edu on Thu Jan  6 19:18:10 2000
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/gnus-5.8.3/lisp/nnmail.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 "`nnmail.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\301\307!\210\310\311\312\"\210\310\313\312\"\210\314\315\316\317\320%\210\314\321\316\322\315%\210\314\323\316\324\315%\210\314\325\316\326\315%\210\314\327\316\330\315%\210\314\331\316\332\333\315&\210\314\334\316\335\315%\210\314\336\316\337\315%\210\314\340\316\341\315%\207" [:group require nnheader message custom gnus-util mail-source mm-util autoload gnus-error "gnus-util" gnus-buffer-live-p custom-declare-group nnmail nil "Reading mail with Gnus." gnus nnmail-retrieve "Retrieving new mail." nnmail-prepare "Preparing (or mangling) new mail after retrival." nnmail-duplicate "Handling of duplicate mail messages." nnmail-split "Organizing the incomming mail in folders." nnmail-files "Mail files." gnus-files nnmail-expire "Expiring old mail." nnmail-procmail "Interfacing with procmail and other mail agents." nnmail-various "Various mail options."] 8)
#@1036 *Incoming mail will be split according to this variable.

If you'd like, for instance, one mail group for mail from the
"4ad-l" mailing list, one group for junk mail and one for everything
else, you could do something like this:

 (setq nnmail-split-methods
       '(("mail.4ad" "From:.*4ad")
         ("mail.junk" "From:.*Lars\\|Subject:.*buy")
         ("mail.misc" "")))

As you can see, this variable is a list of lists, where the first
element in each "rule" is the name of the group (which, by the way,
does not have to be called anything beginning with "mail",
"yonka.zow" is a fine, fine name), and the second is a regexp that
nnmail will try to match on the header to find a fit.

The second element can also be a function.  In that case, it will be
called narrowed to the headers with the first element of the rule as
the argument.  It should return a non-nil value if it thinks that the
mail belongs in that group.

The last element should always have "" as the regexp.

This variable can also have a function as its value.
(custom-declare-variable 'nnmail-split-methods ''(("mail.misc" "")) '(#$ . -1594) :group 'nnmail-split :type '(choice (repeat :tag "Alist" (group (string :tag "Name") regexp)) (function-item nnmail-split-fancy) (function :tag "Other")))
#@114 If non-nil, do crossposting if several split methods match the mail.
If nil, the first match found will be used.
(custom-declare-variable 'nnmail-crosspost 't '(#$ . 2873) :group 'nnmail-split :type 'boolean)
#@271 If non-nil, nnmail will never delete/move a group's last article.
It can be marked expirable, so it will be deleted when it is no longer last.

You may need to set this variable if other programs are putting
new mail into folder numbers that Gnus has marked as expired.
(custom-declare-variable 'nnmail-keep-last-article 'nil '(#$ . 3089) :group 'nnmail-procmail :group 'nnmail-various :type 'boolean)
#@148 If non-nil the mail backends will use long file and directory names.
If nil, groups like "mail.misc" will end up in directories like
"mail/misc/".
(custom-declare-variable 'nnmail-use-long-file-names 'nil '(#$ . 3498) :group 'nnmail-files :type 'boolean)
#@58 Set the mode bits of all new mail files to this integer.
(custom-declare-variable 'nnmail-default-file-modes '384 '(#$ . 3759) :group 'nnmail-files :type 'integer)
#@239 *Expirable articles that are older than this will be expired.
This variable can either be a number (which will be interpreted as a
number of days) -- this doesn't have to be an integer.  This variable
can also be `immediate' and `never'.
(custom-declare-variable 'nnmail-expiry-wait '7 '(#$ . -3930) :group 'nnmail-expire :type '(choice (const immediate) (integer :tag "days") (const never)))
#@597 Variable that holds function to specify how old articles should be before they are expired.
  The function will be called with the name of the group that the
expiry is to be performed in, and it should return an integer that
says how many days an article can be stored before it is considered
"old".  It can also return the values `never' and `immediate'.

Eg.:

(setq nnmail-expiry-wait-function
      (lambda (newsgroup)
        (cond ((string-match "private" newsgroup) 31)
              ((string-match "junk" newsgroup) 1)
	      ((string-match "important" newsgroup) 'never)
	      (t 7))))
(custom-declare-variable 'nnmail-expiry-wait-function 'nil '(#$ . 4330) :group 'nnmail-expire :type '(choice (const :tag "nnmail-expiry-wait" nil) (function :format "%v" nnmail-)))
#@73 If non-nil, put Message-IDs of Gcc'd articles into the duplicate cache.
(custom-declare-variable 'nnmail-cache-accepted-message-ids 'nil '(#$ . 5113) :group 'nnmail :type 'boolean)
#@172 *Where the mail backends will look for incoming mail.
This variable is a list of mail source specifiers.
This variable is obsolete; `mail-sources' should be used instead.
(custom-declare-variable 'nnmail-spool-file ''((file)) '(#$ . -5301) :group 'nnmail-files :type 'sexp)
#@54 *If non-nil, re-split incoming procmail sorted mail.
(custom-declare-variable 'nnmail-resplit-incoming 'nil '(#$ . -5581) :group 'nnmail-procmail :type 'boolean)
#@56 Function called to delete files in some mail backends.
(custom-declare-variable 'nnmail-delete-file-function ''delete-file '(#$ . 5749) :group 'nnmail-files :type 'function)
#@233 *Function called to create a copy of a file.
This is `add-name-to-file' by default, which means that crossposts
will use hard links.  If your file system doesn't allow hard
links, you could set this variable to `copy-file' instead.
(custom-declare-variable 'nnmail-crosspost-link-function '(if (string-match "windows-nt\\|emx" (symbol-name system-type)) 'copy-file 'add-name-to-file) '(#$ . -5930) :group 'nnmail-files :type '(radio (function-item add-name-to-file) (function-item copy-file) (function :tag "Other")))
#@898 *Hook that will be run after the incoming mail has been transferred.
The incoming mail is moved from `nnmail-spool-file' (which normally is
something like "/usr/spool/mail/$user") to the user's home
directory.  This hook is called after the incoming mail box has been
emptied, and can be used to call any mail box programs you have
running ("xwatch", etc.)

Eg.

(add-hook 'nnmail-read-incoming-hook
	   (lambda ()
	     (start-process "mailsend" nil
			    "/local/bin/mailsend" "read" "mbox")))

If you have xwatch running, this will alert it that mail has been
read.

If you use `display-time', you could use something like this:

(add-hook 'nnmail-read-incoming-hook
	  (lambda ()
	    ;; Update the displayed time, since that will clear out
	    ;; the flag that says you have mail.
	    (when (eq (process-status "display-time") 'run)
	      (display-time-filter display-time-process ""))))
(custom-declare-variable 'nnmail-read-incoming-hook '(if (eq system-type 'windows-nt) '(nnheader-ms-strip-cr) nil) '(#$ . -6455) :group 'nnmail-prepare :type 'hook)
#@105 Hook called before treating incoming mail.
The hook is run in a buffer with all the new, incoming mail.
(custom-declare-variable 'nnmail-prepare-incoming-hook 'nil '(#$ . 7524) :group 'nnmail-prepare :type 'hook)
#@179 Hook called narrowed to the headers of each message.
This can be used to remove excessive spaces (and stuff like
that) from the headers before splitting and saving the messages.
(custom-declare-variable 'nnmail-prepare-incoming-header-hook 'nil '(#$ . 7744) :group 'nnmail-prepare :type 'hook)
#@39 Hook called narrowed to each message.
(custom-declare-variable 'nnmail-prepare-incoming-message-hook 'nil '(#$ . 8044) :group 'nnmail-prepare :type 'hook)
#@89 Regexp that matches list identifiers to be removed.
This can also be a list of regexps.
(custom-declare-variable 'nnmail-list-identifiers 'nil '(#$ . 8205) :group 'nnmail-prepare :type '(choice (const :tag "none" nil) (regexp :value ".*") (repeat :value (".*") regexp)))
#@63 Hook called just before starting to handle new incoming mail.
(custom-declare-variable 'nnmail-pre-get-new-mail-hook 'nil '(#$ . 8482) :group 'nnmail-retrieve :type 'hook)
#@62 Hook called just after finishing handling new incoming mail.
(custom-declare-variable 'nnmail-post-get-new-mail-hook 'nil '(#$ . 8660) :group 'nnmail-retrieve :type 'hook)
#@215 Hook called before deciding where to split an article.
The functions in this hook are free to modify the buffer
contents in any way they choose -- the buffer contents are
discarded after running the split process.
(custom-declare-variable 'nnmail-split-hook 'nil '(#$ . 8839) :group 'nnmail-split :type 'hook)
#@184 *The number of the articles which indicates a large newsgroup.
If the number of the articles is greater than the value, verbose
messages will be shown to indicate the current status.
(custom-declare-variable 'nnmail-large-newsgroup '50 '(#$ . -9156) :group 'nnmail-various :type 'integer)
#@2982 Incoming mail can be split according to this fancy variable.
To enable this, set `nnmail-split-methods' to `nnmail-split-fancy'.

The format of this variable is SPLIT, where SPLIT can be one of
the following:

GROUP: Mail will be stored in GROUP (a string).

(FIELD VALUE [- RESTRICT [- RESTRICT [...]]] SPLIT): If the message
  field FIELD (a regexp) contains VALUE (a regexp), store the messages 
  as specified by SPLIT.  If RESTRICT (a regexp) matches some string
  after FIELD and before the end of the matched VALUE, return NIL,
  otherwise process SPLIT.  Multiple RESTRICTs add up, further
  restricting the possibility of processing SPLIT.

(| SPLIT...): Process each SPLIT expression until one of them matches.
  A SPLIT expression is said to match if it will cause the mail
  message to be stored in one or more groups.

(& SPLIT...): Process each SPLIT expression.

(: FUNCTION optional args): Call FUNCTION with the optional args, in
  the buffer containing the message headers.  The return value FUNCTION
  should be a split, which is then recursively processed.

(! FUNCTION SPLIT): Call FUNCTION with the result of SPLIT.  The
  return value FUNCTION should be a split, which is then recursively
  processed.

FIELD must match a complete field name.  VALUE must match a complete
word according to the `nnmail-split-fancy-syntax-table' syntax table.
You can use ".*" in the regexps to match partial field names or words.

FIELD and VALUE can also be lisp symbols, in that case they are expanded
as specified in `nnmail-split-abbrev-alist'.

GROUP can contain \& and \N which will substitute from matching
\(\) patterns in the previous VALUE.

Example:

(setq nnmail-split-methods 'nnmail-split-fancy
      nnmail-split-fancy
      ;; Messages from the mailer daemon are not crossposted to any of
      ;; the ordinary groups.  Warnings are put in a separate group
      ;; from real errors.
      '(| ("from" mail (| ("subject" "warn.*" "mail.warning")
			  "mail.misc"))
	  ;; Non-error messages are crossposted to all relevant
	  ;; groups, but we don't crosspost between the group for the
	  ;; (ding) list and the group for other (ding) related mail.
	  (& (| (any "ding@ifi\\.uio\\.no" "ding.list")
		("subject" "ding" "ding.misc"))
	     ;; Other mailing lists...
	     (any "procmail@informatik\\.rwth-aachen\\.de" "procmail.list")
	     (any "SmartList@informatik\\.rwth-aachen\\.de" "SmartList.list")
             ;; Both lists below have the same suffix, so prevent
             ;; cross-posting to mkpkg.list of messages posted only to 
             ;; the bugs- list, but allow cross-posting when the
             ;; message was really cross-posted.
             (any "bugs-mypackage@somewhere" "mypkg.bugs")
             (any "mypackage@somewhere" - "bugs-mypackage" "mypkg.list")
             ;; 
	     ;; People...
	     (any "larsi@ifi\\.uio\\.no" "people.Lars Magne Ingebrigtsen"))
	  ;; Unmatched mail goes to the catch all group.
	  "misc.misc"))
(custom-declare-variable 'nnmail-split-fancy '"mail.misc" '(#$ . 9453) :group 'nnmail-split :type 'sexp)
#@58 *Alist of abbreviations allowed in `nnmail-split-fancy'.
(custom-declare-variable 'nnmail-split-abbrev-alist ''((any . "from\\|to\\|cc\\|sender\\|apparently-to\\|resent-from\\|resent-to\\|resent-cc") (mail . "mailer-daemon\\|postmaster\\|uucp") (to . "to\\|cc\\|apparently-to\\|resent-to\\|resent-cc") (from . "from\\|sender\\|resent-from") (nato . "to\\|cc\\|resent-to\\|resent-cc") (naany . "from\\|to\\|cc\\|sender\\|resent-from\\|resent-to\\|resent-cc")) '(#$ . -12545) :group 'nnmail-split :type '(repeat (cons :format "%v" symbol regexp)))
#@149 *The approximate number of Message-IDs nnmail will keep in its cache.
If this variable is nil, no checking on duplicate messages will be
performed.
(custom-declare-variable 'nnmail-message-id-cache-length '1000 '(#$ . -13098) :group 'nnmail-duplicate :type '(choice (const :tag "disable" nil) (integer :format "%v")))
#@48 *The file name of the nnmail Message-ID cache.
(custom-declare-variable 'nnmail-message-id-cache-file '"~/.nnmail-cache" '(#$ . -13422) :group 'nnmail-duplicate :group 'nnmail-files :type 'file)
#@543 *If non-nil, nnmail keep a cache of Message-IDs to discover mail duplicates.
Three values are valid: nil, which means that nnmail is not to keep a
Message-ID cache; `warn', which means that nnmail should insert extra
headers to warn the user about the duplication (this is the default);
and `delete', which means that nnmail will delete duplicated mails.

This variable can also be a function.  It will be called from a buffer
narrowed to the article in question with the Message-ID as a
parameter.  It should return nil, `warn' or `delete'.
(custom-declare-variable 'nnmail-treat-duplicates ''warn '(#$ . -13624) :group 'nnmail-duplicate :type '(choice (const :tag "off" nil) (const warn) (const delete)))
#@26 *Extra headers to parse.
(custom-declare-variable 'nnmail-extra-headers 'nil '(#$ . -14337) :group 'nnmail :type '(repeat symbol))
#@75 Header lines longer than this limit are excluded from the split function.
(custom-declare-variable 'nnmail-split-header-length-limit '512 '(#$ . 14474) :group 'nnmail :type 'integer)
#@80 List of group/article elements that say where the previous split put messages.
(defvar nnmail-split-history nil (#$ . 14663))
#@44 Syntax table used by `nnmail-split-fancy'.
(defvar nnmail-split-fancy-syntax-table nil (#$ . 14795))
(byte-code "\301!\204 \302\303 !\304\305\306#\210\301\207" [nnmail-split-fancy-syntax-table syntax-table-p copy-syntax-table standard-syntax-table modify-syntax-entry 37 "."] 4)
#@33 Hook called before saving mail.
(defvar nnmail-prepare-save-mail-hook nil (#$ . 15084))
(byte-code "\303\300!\204 \304\300	B\303\302!\204 \304\302	B\304\207" [nnmail-split-tracing current-load-list nnmail-split-trace boundp nil] 2)
#@17 nnmail version.
(defconst nnmail-version "nnmail 1.0" (#$ . 15328))
(defalias 'nnmail-request-post #[(&optional server) "\300\301!\207" [mail-send-and-exit nil] 2])
#@31 Coding system used in nnmail.
(defvar nnmail-file-coding-system 'raw-text (#$ . 15499))
#@37 Coding system used in reading inbox
(defvar nnmail-incoming-coding-system mm-text-coding-system (#$ . 15593))
#@30 *Coding system for pathname.
(defvar nnmail-pathname-coding-system 'binary (#$ . -15709))
#@38 Insert FILE in server buffer safely.
(defalias 'nnmail-find-file #[(file) "q\210ed|\210\303\211\303\304\305\217*\207" [nntp-server-buffer after-insert-file-functions format-alist nil (byte-code "\306 	\307!\210+\310\207" [nnmail-file-coding-system nnmail-pathname-coding-system pathname-coding-system auto-mode-alist coding-system-for-read file mm-auto-mode-alist insert-file-contents t] 3) ((file-error))] 3 (#$ . 15805)])
#@26 Make pathname for GROUP.
(defalias 'nnmail-group-pathname #[(group dir &optional file) "\305\306!!\307\310	\311\312#\313\312#\314	!\n\204  \315	P!\203' 	\316Q\2022 \317\310	\313\311#\"\316Q)\f\2068 \320P\207" [dir group nnmail-use-long-file-names nnmail-pathname-coding-system file file-name-as-directory expand-file-name nnheader-replace-duplicate-chars-in-string nnheader-replace-chars-in-string 47 95 46 nnheader-translate-file-chars file-directory-p "/" mm-encode-coding-string ""] 6 (#$ . 16243)])
#@123 Returns an assoc of group names and active ranges.
nn*-request-list should have been called before calling this function.
(defalias 'nnmail-get-active #[nil "\302\212	q\210eb\210\303\304\302\305#\203& \306\307!\310\306\311!!\310\306\312!!BDB\202	 ))\207" [group-assoc nntp-server-buffer nil re-search-forward "^\\([^ 	]+\\)[ 	]+\\([0-9]+\\)[ 	]+\\([0-9]+\\)" t match-string 1 string-to-int 3 2] 5 (#$ . 16761)])
#@33 *Coding system for active file.
(defvar nnmail-active-file-coding-system 'raw-text (#$ . -17183))
#@34 Save GROUP-ASSOC in ACTIVE-FILE.
(defalias 'nnmail-save-active #[(group-assoc file-name) "\n\205' \n\306\307\310!!\311\216rq\210\312!)rq\210~\210\313ed\f\314\315%\210,)\207" [nnmail-active-file-coding-system coding-system-for-write file-name #1=#:temp-buffer #2=#:temp-file group-assoc get-buffer-create generate-new-buffer-name " *temp file*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) nnmail-generate-active write-region nil 0] 7 (#$ . 17287)])
#@49 Generate an active file from group-alist ALIST.
(defalias 'nnmail-generate-active #[(alist) "\302 \210\303	\211A@\211\205! \304\305@A@AA@@$c\210\202 )\207" [group alist erase-buffer nil format "%s %d %d y\n"] 5 (#$ . 17784)])
#@131 Find out whether this FILE is to be split into GROUP only.
If SOURCE is a directory spec, try to return the group name component.
(defalias 'nnmail-get-split-group #[(file source) "@\305=\205& \306	!\307\211\211\310!\210\311\312!\313P	\"\205% 	\314\211\224O,\207" [source file path suffix predicate directory file-name-nondirectory nil mail-source-set-1 string-match regexp-quote "$" 0] 3 (#$ . 18024)])
(defalias 'nnmail-process-babyl-mail-format #[(func artnum-func) "\306\307\310\211\211\211\211&m\204eb\210\311\312\310\306#\210\307\225b\210\307\224\307\225|\210`\211\313\314\310\306#\204= \315\316\310\306#\204= \313\317!\210`}\210eb\210\320\321!\203M \322\323!\210\324\325!\210db\210\212\326\327\310\306#\203f \330\224\330\225{\202\202 \212\326\331\310\306#\203u \307y\210\332c\210)\333y\210\334\335 \211\336\261\210)\212\326\337\f\306#\205\234 \340\330\224\330\225{!\211\205\234 \341c\210\306)\204\245 \306\202\310 ~\210`\n\\dU\204\274 \212`\n\\b\210\320\342!)\203\306 `\n\\b\210\310\202\310 \306~\210	\203\341 \311\343\310\306#\203\335 \307\224b\210\202\341 dSb\210\344\330!\210\212\214\f`}\210eb\210\345'(#\210Td*b\210\202 .\207" [end do-search content-length message-id start count t 0 nil re-search-forward "\f\n0, *unseen,+\n\\(\\*\\*\\* EOOH \\*\\*\\*\n\\)?" search-forward "\n\n" search-forward-regexp "^[^:]*\\( .*\\|\\)$" "\f" looking-at ">From " replace-match "X-From-Line: " run-hooks nnmail-prepare-incoming-header-hook re-search-backward "^Message-ID[ 	]*:[ \n	]*\\(<[^>]*>\\)" 1 "^Message-ID[ 	]*:" "Original-" -1 "Message-ID: " nnmail-message-id "\n" "^Content-Length:[ 	]*\\([0-9]+\\)" string-to-int "X-" "" "^" delete-char nnmail-check-duplication case-fold-search func artnum-func] 7])
#@59 Put point at the beginning of the next Unix mbox message.
(defalias 'nnmail-search-unix-mail-delim #[nil "\302\211\204G \303\304\302\305#\204 \306\211\202 \212\307y\210o\204* \212\310y\210\302f)\311=\203C \212\312y\210\313\314!\203: \312y\210\202. \313\315!)\203C \316)\202 \307y\210*\316=\207" [found case-fold-search nil re-search-forward "^From " t no 0 -1 10 1 looking-at ">From \\|From " "[^ \n	:]+[ \n	]*:" yes] 5 (#$ . 19777)])
(put 'nnmail-search-unix-mail-delim 'byte-optimizer 'byte-compile-inline-expand)
#@62 Put point at the beginning of the current Unix mbox message.
(defalias 'nnmail-search-unix-mail-delim-backward #[nil "\302\211\204G \303\304\302\305#\204 \306\211\202 \212\307y\210o\204* \212\310y\210\302f)\311=\203C \212\312y\210\313\314!\203: \312y\210\202. \313\315!)\203C \316)\202 \307y\210*\316=\207" [found case-fold-search nil re-search-backward "^From " t no 0 -1 10 1 looking-at ">From \\|From " "[^ \n	:]+[ \n	]*:" yes] 5 (#$ . 20308)])
(defalias 'nnmail-process-unix-mail-format #[(func artnum-func) "\306\307\310\211\211\211\211\211'(eb\210\311\312\310\306#\203# \307\224b\204* \313\314!\210\202gm\204g`\310\315\316\310\306#\203@ `S\202Q \317\320!\203P m\204P \321y\210\202@ `}\210eb\210\311\322\310\306#\203e \323\321!\202\201 \212\311\324\310\306#\203t \307y\210\325c\210)\321y\210\326\327 \211\330\261\210eb\210\311\331\310\306#\204\221 \310\202\235 \332\323\321!!\307y\210\333c\210\334\335!\210db\210~\210`\203\341 \321y\210`\\\211b\210	dU\204\303 	TdU\203\310 d\202\341 \317\336!\203\323 	\202\341 \317\337!\203\337 \321\224\202\341 \310\n\203\353 \nb\210\202Hb\210\310\211)()\204:\311\312\310\306#\204\340\211)\202\366 \212\307y\210o\204\212\341y\210\310f)\342=\2036\212\321y\210\317\343!\203,\321y\210\202 \317\344!)\2036\345))\202\364 \307y\210)*\345=\204Hdb\210\212\214`}\210eb\210'T'\346\f*+#\210d*\nb\210\202* '.\207" [head-end skip end content-length message-id start t 0 nil re-search-forward "^From " error "Error, unknown mail format! (Possibly corrupted.)" search-forward "\n\n" looking-at "From \\|[^ 	]+:" 1 "^Message-ID[ 	]*:[ \n	]*\\(<[^>]+>\\)" match-string "^Message-ID[ 	]*:" "Original-" "Message-ID: " nnmail-message-id "\n" "^Content-Length:[ 	]*\\([0-9]+\\)" string-to-int "X-" run-hooks nnmail-prepare-incoming-header-hook "From " "[ 	]*\n\\(From \\)" no -1 10 ">From \\|From " "[^ \n	:]+[ \n	]*:" yes nnmail-check-duplication count case-fold-search found func artnum-func] 9])
(defalias 'nnmail-process-mmdf-mail-format #[(func artnum-func) "\306\307\310\311\211\211eb\210\312\311\307#\203 \313y\204# \314\315!\210\202\262 m\204\262 `\211\316\317\311\307#\2037 `S\202H \320\321!\203G m\204G \313y\210\2027 `}\210eb\210\312\322\311\307#\203\\ \323\313!\202x \212\324\325\311\307#\203k \310y\210\326c\210)\313y\210\327\330 \211\331\261\210\332\333!\210db\210~\210\312\311\307#\203\217 \310y\210\202\222 db\210\212\214\n`}\210eb\210T\334	#\210d*b\210\335y\210\202# .\207" [end message-id start count case-fold-search delim "^$" t 0 nil re-search-forward 1 error "Error, unknown mail format! (Possibly corrupted.)" search-forward "\n\n" looking-at "From \\|[^ 	]+:" "^Message-ID[ 	]*:[ \n	]*\\(<[^>]+>\\)" match-string re-search-backward "^Message-ID[ 	]*:" "Original-" "Message-ID: " nnmail-message-id "\n" run-hooks nnmail-prepare-incoming-header-hook nnmail-check-duplication 2 func artnum-func] 7])
(defalias 'nnmail-process-maildir-mail-format #[(func artnum-func) "\304\305eb\210e\306\307\305\304#\203 `S\202& \310\311!\203% m\204% \312y\210\202 `}\210eb\210\313\314\305\304#\203: \315\312!\202V \212\316\317\305\304#\203I \320y\210\321c\210)\312y\210\322\323 \211\324\261\210\325\326!\210~\210\212eb\210\327\n#\210+\312\207" [message-id case-fold-search func artnum-func t nil search-forward "\n\n" looking-at "From \\|[^ 	]+:" 1 re-search-forward "^Message-ID:[ 	]*\\(<[^>]+>\\)" match-string re-search-backward "^Message-ID[ 	]*:" 0 "Original-" "Message-ID: " nnmail-message-id "\n" run-hooks nnmail-prepare-incoming-header-hook nnmail-check-duplication] 5])
#@131 Go through the entire INCOMING file and pick out each individual mail.
FUNC will be called with the buffer narrowed to each mail.
(defalias 'nnmail-split-incoming #[(incoming func &optional exit-func group artnum-func) "\203 	\204 \306DC\202 \n\212\307\310!q\210\311 \210\312!\210)\313 \314U\203, \314\202n eb\210\212\315\316!\210)\317\320!\204A \317\321!\203J \322\"\202n \317\323!\203Y \324\"\202n \317\325!\203h \326\"\202n \327\"\203w  \210\330p!\210*\207" [group nnmail-resplit-incoming nnmail-split-methods nnmail-incoming-coding-system coding-system-for-read incoming "" get-buffer-create " *nnmail incoming*" erase-buffer mm-insert-file-contents buffer-size 0 run-hooks nnmail-prepare-incoming-hook looking-at "\f" "BABYL OPTIONS:" nnmail-process-babyl-mail-format "" nnmail-process-mmdf-mail-format "Return-Path:" nnmail-process-maildir-mail-format nnmail-process-unix-mail-format kill-buffer func artnum-func exit-func] 3 (#$ . 23917)])
#@136 Look at the headers and return an alist of groups that match.
FUNC will be called with the group name to determine the article number.
(defalias 'nnmail-article-group #[(func &optional trace) "pe\306\211\211\211)*\307*!\2031 *G\310U\2031 *@@+*@@!BC\211\202\204\212b\210\311\312\306\313#\203A `\202B d,q\210\314 \210\315)\f#\210eb\210\316\317\306\313#\203e \320\321\313\211#\210\202T eb\210m\204\203 \322-!-W\204} `\306\210`|\210\310y\210\202h eb\210\323\324!\210.\211/\203\225 \30609\203\325 \325!\203\325 \306\326\327\2171\3301!1\3062\3311>@\2112\203\305 \33221\"1\202\257 )1\203\321 \333\3341\")\202)*\203)3\204\343 \204)db\210*\211A*@\211@*\204\376 \nA@\335\232\204\336\337\340\217\203\325 \341	\"\204\325 	+	!BB\202\325 \204\325 \n@+\n@!BC\202\325 .\203c0\203c0\237p4.\342\343!\210\344 \210.\203W.@\345\261\210.A\211.\204Geb\210\346\347!\2104q\210*\350\232?\205\203\3062\331>@\2112\203\200\3322\"\202m\237)).\207" [nnmail-split-methods grp method group-art end beg nil sequencep 1 search-forward "\n\n" t erase-buffer insert-buffer-substring re-search-forward "\\(?\n[ 	]+\\)+" replace-match " " move-to-column run-hooks nnmail-split-hook fboundp (byte-code " \206 \301\207" [nnmail-split-methods ("bogus")] 1) ((error (byte-code "\300\301\302\"\210\303\304!\210\305\207" [nnheader-message 5 "Error in `nnmail-split-methods'; using `bogus' mail group" sit-for 1 ("bogus")] 3))) gnus-remove-duplicates junk delq mapcar #[(group) "	!B\207" [group func] 3] "" #1=#:G82159 (byte-code "A@;\203 \304\305	\"\306A@\307\310#\211\203 \311	!\n*\207A@	!\207" [method grp pos expand string-match "\\\\[0-9&]" re-search-backward nil t nnmail-expand-newtext] 6) ((error)) assoc nnheader-set-temp-buffer "*Split Trace*" gnus-add-buffer "\n" gnus-configure-windows split-trace (junk) obuf methods func nntp-server-buffer nnmail-split-header-length-limit trace nnmail-split-tracing nnmail-split-trace split elem nnmail-crosspost restore] 8 (#$ . 24904)])
#@103 Insert how many lines there are in the body of the mail.
Return the number of characters in the body.
(defalias 'nnmail-insert-lines #[nil "\302\211\212eb\210\303\304\302\305#\204 db\210\306c\210d`Z\307`d\"\310u\210\212\311\312\302\305#\2032 `\313y\210`|\210)\314y\210\315\316	\314]\"c\210+\207" [chars lines nil search-forward "\n\n" t "\n" count-lines -1 re-search-backward "^Lines: " 1 0 format "Lines: %d\n"] 4 (#$ . 26952)])
#@59 Insert an Xref line based on the (group . article) alist.
(defalias 'nnmail-insert-xref #[(group-alist) "\212eb\210\302\303\304\305#\204 db\210\306c\210\307u\210\310\311\304\305#\203% \312\224\313y\210`|\210\314\315\316 \"c\210\203E \314\317\320@@	\"@A#c\210A\211\2040 \306c)\207" [group-alist nnmail-pathname-coding-system search-forward "\n\n" nil t "\n" -1 re-search-backward "^Xref: " 0 1 format "Xref: %s" system-name " %s:%d" mm-encode-coding-string] 6 (#$ . 27394)])
#@47 Remove excessive whitespace from all headers.
(defalias 'nnmail-remove-leading-whitespace #[nil "eb\210\300\301\302\303#\205 \304\305\303\"\210\202 \207" [re-search-forward "^\\([^ :]+: \\) +" nil t replace-match "\\1"] 4 (#$ . 27880)])
#@47 Remove list identifiers from Subject headers.
(defalias 'nnmail-remove-list-identifiers #[nil ";\203	 \202 \302\303\304#\211\205& eb\210\305\306	\307Q\310\311#\205& \312\224\313\225|)\207" [nnmail-list-identifiers regexp mapconcat identity " *\\|" re-search-forward "^Subject: +\\(Re: +\\)?\\(" " *\\)" nil t 2 0] 5 (#$ . 28125)])
#@49 Translate TAB characters into SPACE characters.
(defalias 'nnmail-remove-tabs #[nil "\300ed\301\302\303%\207" [subst-char-in-region 9 32 t] 6 (#$ . 28467)])
#@61 Eudora has a broken References line, but an OK In-Reply-To.
(defalias 'nnmail-fix-eudora-headers #[nil "eb\210\300\301\302\303#\205 eb\210\300\304\302\303#\205 \305y\210\306c\207" [re-search-forward "^X-Mailer:.*Eudora" nil t "^References:" 0 "X-Gnus-Broken-Eudora-"] 4 (#$ . 28630)])
(custom-add-option 'nnmail-prepare-incoming-header-hook 'nnmail-fix-eudora-headers)
#@104 Fancy splitting method.
See the documentation for the variable `nnmail-split-fancy' for documentation.
(defalias 'nnmail-split-fancy #[nil "\303 \304\216\305	!\210\306\n!*\207" [syntab nnmail-split-fancy-syntax-table nnmail-split-fancy syntax-table ((set-syntax-table syntab)) set-syntax-table nnmail-split-it] 2 (#$ . 29008)])
(byte-code "\302\300!\204 \303\300	B\303\207" [nnmail-split-cache current-load-list boundp nil] 2)
(defalias 'nnmail-split-it #[(split) "\306	\204\n \306\202\310	;\203! \n\203 \307\310	\"B\311	!C\202\310	\312=\2034 \n\203/ \313B\312C\202\310	@\314=\203F \315\316\317\320	A\"\"\202\310	@\321=\203e \306	A\203` 	A\320	@!\211\203O \f)\202\310	@\322=\203w \320\212\323	A!)!\202\310	@\324=\203\213 	A@\320	AA@!!\202\310	\236\211\203c\306d	A@\"#$\"9\203\254 \"%\236A\"#b\203]\325A\306\326#\203]\n\203\304 AB	AA\327\225\330\225\331\225&'()'S#)@\332=\203(b\210\325)A@&\326#\203\327\225'V\203\306\211)\202\334 )AA\211)\202\334 )\203Y(b\210	A@\211\"9\203&\"%\236A\"\325\"'\"\210)\320)@!\306*\211+\203X+@\211*$>\204O*$B$+A\211+\204<*,\202\254 $+\202\310	@,	A@\"\306-\306.\"9\203\200\"%\236A\"\"G\331Y\203\234\"\327\331O\333\230\203\234\"\331\306O\"\334-\335,9\203\254,%\236A\202\256,\336-\206\265\337\340\"\341\260.	.BB\320	!,)\207" [cached-pair split nnmail-split-tracing nnmail-split-trace done nnmail-split-cache nil format "\"%s\"" nnmail-expand-newtext junk "junk" & apply nconc mapcar nnmail-split-it | : eval ! re-search-backward t 0 1 2 - ".*" "" "^\\(\\(" "\\):.*\\)" "\\<" "\\(" "\\)\\>" value end-point split-result nnmail-split-abbrev-alist after-header-name start-of-value end split-rest sp #1=#:--dolist-temp--82160 field partial regexp] 8])
(defalias 'nnmail-expand-newtext #[(newtext) "G\306\307\211\211\211\211W\203\231 W\2036 H\310U\2046 T\211\202 U\204E O\fBW\203\220 \311TH\211\312U\204t \313Y\203k \314X\204t \315!\fB\202\220 \312U\203 \306\202\203 \316Z\n\224\203\220 \n\224\n\225{\fBT\211\202 	\203\245 \317\320\f\237\"\202\246 .\207" [newtext did-expand N beg expanded c 0 nil 92 t 38 49 57 char-to-string 48 apply concat pos len] 8])
(defalias 'nnmail-activate #[(backend &optional force) "\305 \210\306\211\211\307\310\311\"!J\203X \f\204X \312\313\314\217\211\203q \315\316\n!8\211\203q \306\317\320\217\211\203X 	:\203X 	\321\232\204X @	@V\204X @	@U\203q A@	A@V\203q \212	\322=\204h \307\310\323\"!L\210\307\310\324\"! \210)+\325\207" [file-time timestamp file backend force nnheader-init-server-buffer nil intern format "%s-group-alist" #1=#:G82161 (byte-code "\301\302\303\"!J\207" [backend intern format "%s-active-file"] 4) ((error)) 5 file-attributes (byte-code "\301\302\303\"!J\207" [backend intern format "%s-active-timestamp"] 4) ((error 'none)) (0 0) none "%s-active-timestamp" "%s-request-list" t] 4])
(defalias 'nnmail-message-id #[nil "\300\301 \302Q\207" ["<" message-unique-id "@totally-fudged-out-message-id>"] 3])
(byte-code "\302\300!\204 \303\300	B\303\207" [nnmail-cache-buffer current-load-list boundp nil] 2)
(defalias 'nnmail-cache-open #[nil "?\206\f 	\205\f \303	!?\205( \212\304\305!\211q\210\306\n!\203\" \307\n!\210\310\311!\210p)\207" [nnmail-treat-duplicates nnmail-cache-buffer nnmail-message-id-cache-file buffer-name get-buffer-create " *nnmail message-id cache*" file-exists-p nnheader-insert-file-contents set-buffer-modified-p nil] 2])
(defalias 'nnmail-cache-close #[nil "\205L 	\205L \304!\205L \305!\205L \212q\210db\210\306\307\310\311\n$\203+ \312y\210e`|\210\313\314!!\204: \315\314!\311\"\210\316ed\310\317%\210\320\310!\210\310\321p!)\207" [nnmail-cache-buffer nnmail-treat-duplicates nnmail-message-id-cache-length nnmail-message-id-cache-file buffer-name buffer-modified-p search-backward "\n" nil t 0 file-exists-p file-name-directory make-directory nnmail-write-region silent set-buffer-modified-p kill-buffer] 6])
(defalias 'nnmail-cache-insert #[(id) "\205( 	\211\205 \304\n!\205 \305\304\n!!)\204 \306 \210\212	q\210db\210\307\261)\207" [nnmail-treat-duplicates nnmail-cache-buffer buffer id get-buffer buffer-name nnmail-cache-open "\n"] 4])
(defalias 'nnmail-cache-id-exists-p #[(id) "\205 \212	q\210db\210\303\n\304\305#)\207" [nnmail-treat-duplicates nnmail-cache-buffer id search-backward nil t] 4])
(defalias 'nnmail-fetch-field #[(header) "\212\214\301 \210\302!*\207" [header message-narrow-to-head message-fetch-field] 2])
(defalias 'nnmail-check-duplication #[(message-id func artnum-func) "\306\307!\210\310!\311	\205% \312>\203 \202% \313!\203$ !\202% \314\311eb\210\315\316\314\311#\210\317y\210\320\321\"c\210)	\204T \322!\237\211!\210\323!\210\202\223 \f\324=\203_ \314\202\223 \f\325=\203\210 \311eb\210\315\316\314\311#\210\317y\210\326\327\261\210\322!\237\211!\210)\202\223 \322!\237\211!\210\203\241 B\211\202\244 ed|,\207" [message-id duplication case-fold-search nnmail-treat-duplicates action group-art run-hooks nnmail-prepare-incoming-message-hook nnmail-cache-id-exists-p t (warn delete) nnheader-functionp nil re-search-forward "^message-id[ 	]*:" 0 format "X-Gnus-Mail-Source: %s\n" nnmail-article-group nnmail-cache-insert delete warn "Gnus-Warning: This is a duplicate of message " "\n" mail-source-string func artnum-func nnmail-split-history] 4])
(byte-code "\302\300!\204 \303\300	B\303\207" [nnmail-fetched-sources current-load-list boundp nil] 2)
(defalias 'nnmail-get-value #[(&rest args) "\302\303\304\"!\305	!\205 	J)\207" [args sym intern apply format boundp] 4])
#@25 Read new incoming mail.
(defalias 'nnmail-get-new-mail #[(method exit-func temp &optional group spool-func) "\206 	<\203 	\202 	C\306\f\3072\3073\3074\3065\3066\3067\310\3118\"\203\323 	\203\323 \n\211A@\2117\203\323 7;\203s \312\3137\"\203X \31497\307\225\306OE\202n \3157!\203h \316:7E\202n \317:7E7\202~ 7\320=\203~ \321\322!\2107@\316=\203\261 \f\203\261 \306\211\211;<=\3237!\210\3247>\325\326\312\327\f<P!\330P\331BBED\"7+?\2032 7?\235\203\304 \3067\2022 7?B?7B\2022 \205l\3328!\210\333\334!\210\335 \210\211A@\2117\203/\336\337\34087@$\210\3417\325\342\343\317\344\345\346\3478\"!D\344@D\350\344\345\346\3518\"!D\257E\"\2113\203\343 43\\42T2\202\343 4\307U\203C\336\337\35287@$\210\202f\353\310\3548\"\310\3558\"\"\210A\203YA \210\333\356!\210\336\337\35784$\210\360 \210\333\361!.	\207" [mail-sources nnmail-spool-file sources fetching-sources group group-in nil 0 nnmail-get-value "%s-get-new-mail" string-match "^po:" pop file-directory-p directory file procmail message "Invalid value for nnmail-spool-file: `procmail'" mail-source-set-1 append lambda (file) regexp-quote "$" (file) nnmail-activate run-hooks nnmail-pre-get-new-mail-hook nnmail-cache-open nnheader-message 4 "%s: Reading incoming mail from %s..." mail-source-fetch (file orig-file) nnmail-split-incoming quote intern format "%s-save-mail" (nnmail-get-split-group orig-file source) "%s-active-number" "%s: Reading incoming mail (no new mail)...done" nnmail-save-active "%s-group-alist" "%s-active-file" nnmail-read-incoming-hook "%s: Reading incoming mail (%d new)...done" nnmail-cache-close nnmail-post-get-new-mail-hook i new total incoming incomings source method :user :path path suffix predicate :predicate nnmail-fetched-sources spool-func exit-func] 14 (#$ . 34678)])
#@69 Say whether an article that is TIME old in GROUP should be expired.
(defalias 'nnmail-expired-article-p #[(group time force &optional inhibit) "\203 \306\207	\203 	\n!\206 \211\307=\204  \204$ \203$ \310\202F \f\311=\203. \306\202F \312\232\2039 \310\202F \f\247\205F \313\f!\314\315\316\217)\207" [force nnmail-expiry-wait-function group nnmail-expiry-wait days inhibit t never nil immediate (0 0) days-to-time #1=#:G82162 (byte-code "\302\303	!\"\207" [days time time-less-p time-since] 4) ((error)) time] 4 (#$ . 36514)])
#@69 Check (and modify) the syntax of the message in the current buffer.
(defalias 'nnmail-check-syntax #[nil "\214\301 \210\302\303\304\305\302#?\205 \306\307 \310\261*\207" [case-fold-search message-narrow-to-head t re-search-forward "^Message-ID[ 	]*:" nil "Message-ID: " nnmail-message-id "\n"] 4 (#$ . 37057)])
#@51 Do a `write-region', and then set the file modes.
(defalias 'nnmail-write-region #[(start end filename &optional append visit lockname) "	\306\f	\n&\210\307\f\"*\207" [nnmail-file-coding-system nnmail-pathname-coding-system pathname-coding-system coding-system-for-write start end write-region set-file-modes filename append visit lockname nnmail-default-file-modes] 7 (#$ . 37377)])
#@61 Make status NAME and VALUE part of the current status line.
(defalias 'nnmail-replace-status #[(name value) "\214\303 \210\304 \305	\235\"\n\203 	\nBB\306\307!\210db\210\310\311!\312\261*\207" [status name value message-narrow-to-head nnmail-decode-status delq message-remove-header "status" "Status: " nnmail-encode-status "\n"] 3 (#$ . 37781)])
#@42 Return a status-value alist from STATUS.
(defalias 'nnmail-decode-status #[nil "eb\210\303\304\305\306#\205n \305\211\211\214`\303\307\305\306#\203  `S\202! d}\210eb\210\303\310\305\306#\203k \311\312!\305f\313=\204> \314\202b \315u\210\305f\316=\204^ \317\320!\204S \321\202b \311\312!\312\225b\210\202b \322p!\n	BB\202& )+\207" [status value name re-search-forward "^Status: " nil t "^[^ 	]" "[^ 	=]+" match-string 0 61 "yes" 1 34 looking-at "[^ 	]" "no" read] 5 (#$ . 38143)])
#@37 Return a status string from STATUS.
(defalias 'nnmail-encode-status #[(status) "\301\302\303#\207" [status mapconcat #[(elem) "@\301\302\303A\"\203 \304A!\202 AQ\207" [elem "=" string-match "[ 	]" prin1-to-string] 5] " "] 4 (#$ . 38640)])
#@65 Generate an overview of where the last mail split put articles.
(defalias 'nnmail-split-history #[nil "\204 \303\304!\210\305\220\306\n\211A@\211\205' \307\310\311	\312#!\210\307\313!\210\202 *\221\207" [nnmail-split-history elem history error "No current split history" "*nnmail split history*" nil princ mapconcat #[(ga) "@\301\302A!Q\207" [ga ":" int-to-string] 4] ", " "\n"] 6 (#$ . 38892) nil])
#@60 Remove all instances of GROUP from `nnmail-split-history'.
(defalias 'nnmail-purge-split-history #[(group) "	\203 	\302\303	@\"\240\210	\211A\210\202 \304\305\"\211)\207" [nnmail-split-history history gnus-delete-if #[(e) "@	\230\207" [e group] 2] delq nil] 4 (#$ . 39308)])
#@33 Say whether GROUP has new mail.
(defalias 'nnmail-new-mail-p #[(group) "\304\n\203 \305\n\211A@\"\203 \306\304\211\204 	*\207" [nnmail-split-history found his group nil assoc t] 5 (#$ . 39597)])
#@91 Check to see if point is within the headers of a unix mail message.
Doesn't change point.
(defalias 'nnmail-within-headers-p #[nil "`\212\301 \205 \302\303\304#?*\207" [pos nnmail-search-unix-mail-delim-backward search-forward "\n\n" t] 4 (#$ . 39808)])
(byte-code "\300\301!\210\302\303!\207" [run-hooks nnmail-load-hook provide nnmail] 2)
