;ELC   
;;; Compiled by amu@daemon on Thu Jan 11 15:03:55 2001
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/gnus-5.8.8/lisp/nnheader.el
;;; in Emacs version 20.7.2
;;; 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 "`nnheader.el' was compiled for Emacs 19.29 or later"))

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


(byte-code "\300\301!\210\300\302!\210\303\304\305\"\210\303\306\305\"\210\303\307\305\"\207" [require mail-utils mm-util autoload gnus-sorted-intersection "gnus-range" gnus-intersection gnus-sorted-complement] 3)
#@38 *Max length of the head of articles.
(defvar nnheader-max-head-length 4096 (#$ . -840))
#@67 *Length of each read operation when trying to fetch HEAD headers.
(defvar nnheader-head-chop-length 2048 (#$ . -934))
#@231 *Alist that says how to translate characters in file names.
For instance, if ":" is invalid as a file character in file names
on your system, you could say something like:

(setq nnheader-file-name-translation-alist '((?: . ?_)))
(defvar nnheader-file-name-translation-alist nil (#$ . -1059))
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\310\"\210\300\312\310\"\207" [autoload nnmail-message-id "nnmail" mail-position-on-field "sendmail" message-remove-header "message" gnus-point-at-eol "gnus-util" gnus-delete-line gnus-buffer-live-p] 3)
#@34 Return article number in HEADER.
(defalias 'mail-header-number '(macro . #[(header) "\301\302BB\207" [header aref (0)] 3 (#$ . 1653)]))
#@41 Set article number of HEADER to NUMBER.
(defalias 'mail-header-set-number '(macro . #[(header number) "\302\303	F\207" [header number aset 0] 4 (#$ . 1796)]))
#@34 Return subject string in HEADER.
(defalias 'mail-header-subject '(macro . #[(header) "\301\302BB\207" [header aref (1)] 3 (#$ . 1962)]))
#@43 Set article subject of HEADER to SUBJECT.
(defalias 'mail-header-set-subject '(macro . #[(header subject) "\302\303	F\207" [header subject aset 1] 4 (#$ . 2106)]))
#@33 Return author string in HEADER.
(defalias 'mail-header-from '(macro . #[(header) "\301\302BB\207" [header aref (2)] 3 (#$ . 2277)]))
#@39 Set article author of HEADER to FROM.
(defalias 'mail-header-set-from '(macro . #[(header from) "\302\303	F\207" [header from aset 2] 4 (#$ . 2417)]))
#@24 Return date in HEADER.
(defalias 'mail-header-date '(macro . #[(header) "\301\302BB\207" [header aref (3)] 3 (#$ . 2575)]))
#@37 Set article date of HEADER to DATE.
(defalias 'mail-header-set-date '(macro . #[(header date) "\302\303	F\207" [header date aset 3] 4 (#$ . 2706)]))
(defalias 'mail-header-message-id 'mail-header-id)
#@22 Return Id in HEADER.
(defalias 'mail-header-id '(macro . #[(header) "\301\302BB\207" [header aref (4)] 3 (#$ . 2913)]))
(defalias 'mail-header-set-message-id 'mail-header-set-id)
#@33 Set article Id of HEADER to ID.
(defalias 'mail-header-set-id '(macro . #[(header id) "\302\303	F\207" [header id aset 4] 4 (#$ . 3099)]))
#@30 Return references in HEADER.
(defalias 'mail-header-references '(macro . #[(header) "\301\302BB\207" [header aref (5)] 3 (#$ . 3245)]))
#@42 Set article references of HEADER to REF.
(defalias 'mail-header-set-references '(macro . #[(header ref) "\302\303	F\207" [header ref aset 5] 4 (#$ . 3388)]))
#@46 Return number of chars of article in HEADER.
(defalias 'mail-header-chars '(macro . #[(header) "\301\302BB\207" [header aref (6)] 3 (#$ . 3553)]))
#@52 Set number of chars in article of HEADER to CHARS.
(defalias 'mail-header-set-chars '(macro . #[(header chars) "\302\303	F\207" [header chars aset 6] 4 (#$ . 3707)]))
#@25 Return lines in HEADER.
(defalias 'mail-header-lines '(macro . #[(header) "\301\302BB\207" [header aref (7)] 3 (#$ . 3881)]))
#@39 Set article lines of HEADER to LINES.
(defalias 'mail-header-set-lines '(macro . #[(header lines) "\302\303	F\207" [header lines aset 7] 4 (#$ . 4014)]))
#@31 Return xref string in HEADER.
(defalias 'mail-header-xref '(macro . #[(header) "\301\302BB\207" [header aref (8)] 3 (#$ . 4175)]))
#@37 Set article XREF of HEADER to xref.
(defalias 'mail-header-set-xref '(macro . #[(header xref) "\302\303	F\207" [header xref aset 8] 4 (#$ . 4313)]))
#@37 Return the extra headers in HEADER.
(defalias 'mail-header-extra '(macro . #[(header) "\301\302BB\207" [header aref (9)] 3 (#$ . 4469)]))
#@43 Set the extra headers in HEADER to EXTRA.
(defalias 'mail-header-set-extra '(macro . #[(header extra) "\302\303\304	DF\207" [header extra aset 9 quote] 5 (#$ . 4614)]))
#@59 Create a new mail header structure initialized with INIT.
(defalias 'make-mail-header #[(&optional init) "\301\302\"\207" [init make-vector 10] 3 (#$ . 4790)])
(put 'make-mail-header 'byte-optimizer 'byte-compile-inline-expand)
#@75 Create a new mail header structure initialized with the parameters given.
(defalias 'make-full-mail-header #[(&optional number subject from date id references chars lines xref extra) "\306	\n\f	\n&\n\207" [number subject from date id references vector chars lines xref extra] 11 (#$ . 5025)])
(byte-code "\302\303\304\305#\210\306\300!\204 \307\300	B\302\207" [nnheader-fake-message-id current-load-list put make-full-mail-header byte-optimizer byte-compile-inline-expand boundp 1] 4)
(defalias 'nnheader-generate-fake-message-id #[nil "\301\302T\211!P\207" [nnheader-fake-message-id "fake+none+" int-to-string] 4])
(put 'nnheader-generate-fake-message-id 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'nnheader-fake-message-id-p #[(id) "\302 \303\216\304\305	\"*\207" [save-match-data-internal id match-data ((set-match-data save-match-data-internal)) string-match "\\`fake\\+none\\+[0-9]+\\'"] 3])
(put 'nnheader-fake-message-id-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'nnheader-header-value #[nil "\300\225\301 {\207" [0 gnus-point-at-eol] 2])
(put 'nnheader-header-value 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'nnheader-parse-head #[(&optional naked) "\306p\307\211\211\211\211(eb\210)\203 \310c\210)\204' \311\312\307\306#\205\204\313)\2033 e\314\202M \315!\307\210``\316\317\307\306#\203J `\320Z\206K `}\210	b\210\316\321\307\306#\203` \314\225\322 {\202a \323	b\210\316\324\307\306#\204t \316\325\307\306#\203| \314\225\322 {\202} \326	b\210\316\327\307\306#\203\220 \314\225\322 {\202\221 \330	b\210\316\331\307\306#\203\265 \316\332\322 \306#\206\246 `S\316\333\322 \306#\206\261 `{\202\277 \334\335*T\211*!P	b\210\316\336\307\306#\203\322 \314\225\322 {\202\316\337\307\306#\205\314\225\322 {\211\205\340\341\"\205\307+\314\224\314\225O\340\341\314\225#\203\314\224\314\225O\211+GGV\203\365 +\202\365 )\314	b\210\316\342\307\306#\2033\315!\211\247\203/\n\2024\314\2024\314	b\210\316\343\307\306#\205D\314\225\322 {,\205\202,\307-..\203	b\210\316\310\344.@!\345Q\307\306#\203u.@\314\225\322 {B-B-.\211A.\210\202P-*&\n)\203\220eb\210\346\347!\210.\207" [ref p lines in-reply-to buffer-read-only cur t nil "\n" re-search-forward "^[23][0-9]+ " vector 0 read search-forward "\n.\n" 2 "\nsubject: " gnus-point-at-eol "(none)" "\nfrom: " "\nfrom:" "(nobody)" "\ndate: " "" "\nmessage-id:" "<" ">" "fake+none+" int-to-string "\nreferences: " "\nin-reply-to: " string-match "<[^\n>]+>" "\nlines: " "\nxref: " symbol-name ": " delete-char 1 case-fold-search naked nnheader-fake-message-id ref2 nnmail-extra-headers out extra] 15])
(defalias 'nnheader-nov-skip-field '(macro . #[nil "\300\207" [(search-forward "	" eol 'move)] 1]))
(defalias 'nnheader-nov-field '(macro . #[nil "\300\207" [(buffer-substring (point) (if (nnheader-nov-skip-field) (1- (point)) eol))] 1]))
(defalias 'nnheader-nov-read-integer '(macro . #[nil "\300\207" [(prog1 (if (eq (char-after) 9) 0 (let ((num (condition-case nil (read (current-buffer)) (error nil)))) (if (numberp num) num 0))) (or (eobp) (forward-char 1)))] 1]))
(defalias 'nnheader-nov-parse-extra '(macro . #[nil "\300\207" [(let (out string) (while (not (memq (char-after) '(10 nil))) (setq string (nnheader-nov-field)) (when (string-match "^\\([^ :]+\\): " string) (push (cons (intern (match-string 1 string)) (substring string (match-end 0))) out))) out)] 1]))
(defalias 'nnheader-nov-read-message-id '(macro . #[nil "\300\207" [(let ((id (nnheader-nov-field))) (if (string-match "^<[^>]+>$" id) id (nnheader-generate-fake-message-id)))] 1]))
(defalias 'nnheader-parse-nov #[nil "\306 \307\310f\311=\203 \312\202 \310\313\314\217\211\247\203 	\202 \312)m\204& \315u\210`\316\317\320#\2034 `S\2025 {`\316\317\320#\203D `S\202E {`\316\317\320#\203T `S\202U {`\316\317\320#\203d `S\202e {\321\322\n\"\203r \n\202z \323\324T\211!P)`\316\317\320#\203\211 `S\202\212 {\310f\311=\203\226 \312\202\246 \310\325\326\217\211\247\203\244 	\202\245 \312)m\204\255 \315u\210\310f\311=\203\270 \312\202\310 \310\327\330\217\211\247\203\306 	\202\307 \312)m\204\317 \315u\210\310f\331=?\205\361 \332\333!\203\341 \312\225b\210`\316\317\320#\203\357 `S\202\360 {\310\211\310f\334>\204&`\316\317\320#\203\n`S\202{\321\335\f\"\203\365 \336\337\315\f\"!\f\312\225\310OBB\202\365 *&\n)\207" [eol num id nnheader-fake-message-id string out gnus-point-at-eol vector nil 9 0 (byte-code "\300p!\207" [read] 2) ((error)) 1 search-forward "	" move string-match "^<[^>]+>$" "fake+none+" int-to-string (byte-code "\300p!\207" [read] 2) ((error)) (byte-code "\300p!\207" [read] 2) ((error)) 10 looking-at "Xref: " (10 nil) "^\\([^ :]+\\): " intern match-string] 16])
(defalias 'nnheader-insert-nov #[(header) "\303\304Hp\"\210`\305\306H\206 \307\305\310H\206 \311\305\312H\206! \313\305\314H\206* \315 \305\316H\2062 \313\305\261\210\303\317H\206> \304p\"\210\305c\210\303\320H\206L \304p\"\210\305c\210\321H\203_ \322\321H\261\210\321H\204k \323H\203n \305c\210\323H\203\222 \323H\n\203\221 \324\n@@!\325\n@A\305\261\210\n\211A\210\202x )\326c\210\327\306!\210\330\326	\331#\203\250 \332\306!\210\202\231 \306y)\207" [header p extra princ 0 "	" 1 "(none)" 2 "(nobody)" 3 "" 4 nnmail-message-id 5 6 7 8 "Xref: " 9 symbol-name ": " "\n" backward-char search-backward t delete-char] 11])
(defalias 'nnheader-insert-header #[(header) "\301\302H\206 \303\304\305\306H\206 \307\304\310\311H\206 \312\304\313\314H\206$ \315 \304\316\317H\206- \312\304\320\261\210\321\322H\206: \323p\"\210\324c\207" [header "Subject: " 1 "(none)" "\n" "From: " 2 "(nobody)" "Date: " 3 "" "Message-ID: " 4 nnmail-message-id "References: " 5 "Lines: " princ 7 0 "\n\n"] 16])
(defalias 'nnheader-insert-article-line #[(article) "eb\210\301c\210\302p\"\210\303c\210\304\305\306\307#\210`d|\210\310u\210\311c\207" [article "220 " princ " Article retrieved.\n" search-forward "\n\n" nil move -1 "."] 4])
#@61 Delete all NOV lines that lie outside the BEG to END range.
(defalias 'nnheader-nov-delete-outside-range #[(beg end) "\302!\210e`|\210\302	!\203 \303y\210`d|\207" [beg end nnheader-find-nov-line 1] 2 (#$ . 11014)])
#@183 Put point at the NOV line that start with ARTICLE.
If ARTICLE doesn't exist, put point where that line
would have been.  The function will return non-nil if
the line could be found.
(defalias 'nnheader-find-nov-line #[(article) "debpe\306\211\204e \f\\\307\245b\210\310y\210`\nU\204% m\203+ \311\211\202 `\312!\211\247\204G m\204G \310y\210`\313y\210`|\210\202- 	V\203S `\202 	W\203_ `\202 \314\211\203 	\204q m\204q \312!\314=\204\254 	=\204\254 ``W\203\242 	\247\203\222 	W\203\242 \313y\210`m\204\200 \312!\202\200 	=\204\254 b\210\310y\210	.=\207" [found num prev cur min max nil 2 0 t read 1 yes article] 7 (#$ . 11238)])
(byte-code "\302\300!\204 \303\300	B\303\207" [nntp-server-buffer current-load-list boundp nil] 2)
#@64 *A number that says how talkative the Gnus backends should be.
(defvar gnus-verbose-backends 7 (#$ . -12014))
#@72 If non-nil, Gnus backends will never output headers in the NOV format.
(defvar gnus-nov-is-evil nil (#$ . 12130))
(byte-code "\304\300!\204 \305\300	B\304\302!\204 \305\302	B\304\303!\204  \305\303	B\305\207" [news-reply-yank-from current-load-list news-reply-yank-message-id nnheader-callback-function boundp nil] 2)
#@51 Initialize the Gnus-backend communication buffer.
(defalias 'nnheader-init-server-buffer #[nil "\212\211\205 \304	!\205 \305\304	!!)\204 \306\307!\310\311!\2044 \312\302!\2034 \n\2034 \313\314!\2034 \314\315!\210q\210\316 \210\317 \210\315)\315\207" [nntp-server-buffer buffer default-enable-multibyte-characters case-fold-search get-buffer buffer-name get-buffer-create " *nntpd*" featurep xemacs boundp fboundp set-buffer-multibyte t erase-buffer kill-all-local-variables] 4 (#$ . 12462)])
#@52 Return a string that says what is wrong with FILE.
(defalias 'nnheader-file-error #[(file) "\301\302!\204 \303\202 \304!\203 \305\202 \306!?\205 \307\"\207" [file format file-exists-p "%s does not exist" file-directory-p "%s is a directory" file-readable-p "%s is not readable"] 3 (#$ . 12968)])
#@33 Insert the head of the article.
(defalias 'nnheader-insert-head #[(file) "\305!\205@ 	\306=\203 \307!\210\202? \310\311\f\307\311\211\f\\\211$A@=\203> \312\313\311\306#?db\210\203> 	\203 	W\204 *\306\207" [file nnheader-max-head-length format-alist beg nnheader-head-chop-length file-exists-p t nnheader-insert-file-contents 0 nil search-forward "\n\n"] 7 (#$ . 13279)])
#@55 Say whether the current buffer looks like an article.
(defalias 'nnheader-article-p #[nil "eb\210\300\301\302\303#\205# e`S}\210eb\210\304\305!\203  \306\225b\210\202 m~\210\207" [search-forward "\n\n" nil t looking-at "[a-zA-Z][^ 	]+:.*\n\\([ 	].*\n\\)*\\|From .*\n" 0] 4 (#$ . 13667)])
#@64 Insert a References header based on REFERENCES and MESSAGE-ID.
(defalias 'nnheader-insert-references #[(references message-id) "?\205 	??\2059 \305\306!\210\212\307y\210`)\310\311\203! c\210\203, 	\203, \312c\210	\2033 	c\210\313\f`T\"+\207" [references message-id fill-prefix fill-column begin mail-position-on-field "References" 0 78 "	" " " fill-region-as-paragraph] 3 (#$ . 13962)])
#@41 Remove HEADER and insert the NEW-VALUE.
(defalias 'nnheader-replace-header #[(header new-value) "\212\214\302 \210\303!db\210\304	\305\261\210*\207" [header new-value nnheader-narrow-to-headers message-remove-header ": " "\n"] 5 (#$ . 14363)])
#@35 Narrow to the head of an article.
(defalias 'nnheader-narrow-to-headers #[nil "~\210eb\300\301\302\303#\203 `S\202 d}\210eb\207" [search-forward "\n\n" nil t] 5 (#$ . 14616)])
#@78 Set-buffer to an empty (possibly new) buffer called NAME with undo disabled.
(defalias 'nnheader-set-temp-buffer #[(name &optional noerase) "\302!q\210\303 \210	\204 \304 \210p\207" [name noerase get-buffer-create buffer-disable-undo erase-buffer] 2 (#$ . 14800)])
#@36 Regexp that match numerical files.
(defvar nnheader-numerical-files (byte-code "\301\300!\203 \302\303\304\305#\306Q\207\307\207" [jka-compr-compression-info-list boundp "\\([0-9]+\\)\\(" mapconcat #[(i) "\301H\207" [i 0] 2] "\\|" "\\)?" "[0-9]+$"] 5) (#$ . 15073))
#@43 Regexp that matches numerical file names.
(defvar nnheader-numerical-short-files (concat "^" nnheader-numerical-files) (#$ . 15348))
#@48 Regexp that matches numerical full file paths.
(defvar nnheader-numerical-full-files (concat "/" nnheader-numerical-files) (#$ . 15487))
#@49 Take a FILE name and return the article number.
(defalias 'nnheader-file-to-number #[(file) "\302\230\203\n \303	!\207\304	\"\210\303\305\306	\"!\207" [nnheader-numerical-short-files file "^[0-9]+$" string-to-int string-match match-string 0] 4 (#$ . 15630)])
(put 'nnheader-file-to-number 'byte-optimizer 'byte-compile-inline-expand)
#@230 If non-nil, Gnus believes `directory-files' is safe.
It has been reported numerous times that `directory-files' fails with
an alarming frequency on NFS mounted file systems. If it is nil,
`nnheader-directory-files-safe' is used.
(defvar nnheader-directory-files-is-safe nil (#$ . 15973))
#@64 Execute `directory-files' twice and returns the longer result.
(defalias 'nnheader-directory-files-safe #[(&rest args) "\303\304\"\303\304\"\211G	GV\203 \n\202 	*\207" [args second first apply directory-files] 5 (#$ . 16267)])
#@54 Return a list of all article files in directory DIR.
(defalias 'nnheader-directory-articles #[(dir) "\303\304\203 \305	\306\n\307$\202 \310	\306\n\307$\"\207" [nnheader-directory-files-is-safe dir nnheader-numerical-short-files mapcar nnheader-file-to-number directory-files nil t nnheader-directory-files-safe] 7 (#$ . 16506)])
#@47 Return an alist of article/file pairs in DIR.
(defalias 'nnheader-article-to-file-alist #[(dir) "\303\304\203 \305	\306\n\307$\202 \310	\306\n\307$\"\207" [nnheader-directory-files-is-safe dir nnheader-numerical-short-files mapcar #[(file) "	\302\230\203 \303!\202 \304	\"\210\303\305\306\"!)B\207" [file nnheader-numerical-short-files "^[0-9]+$" string-to-int string-match match-string 0] 4] directory-files nil t nnheader-directory-files-safe] 7 (#$ . 16844)])
#@48 Fold continuation lines in the current buffer.
(defalias 'nnheader-fold-continuation-lines #[nil "\300\301\302\"\207" [nnheader-replace-regexp "\\(?\n[ 	]+\\)+" " "] 3 (#$ . 17324)])
#@87 Translate FILE into something that can be a file name.
If FULL, translate everything.
(defalias 'nnheader-translate-file-chars #[(file &optional full) "\204 	\207\306\307\307\307\307\2034 \310	!\311\312\fGW\203/ \f\312H\313=\203/ \314\2020 \306\202c \315\316!\203[ \317>\203[ 	\311\320\321	\"\203c 	\314\224\307O	\306\314\224O\202c \322	!\323	!\fG\nW\203\205 \f\nH\236A\211\203~ \f\nI\210\nT\211\202h \fP-\207" [nnheader-file-name-translation-alist file i trans leaf path 0 nil copy-sequence "" 1 58 2 featurep xemacs (win32 w32 mswindows windows-nt) string-match "\\(^\\w:\\|[/\\]\\)\\([^/\\]+\\)$" file-name-nondirectory file-name-directory len full system-type] 4 (#$ . 17514)])
#@84 Report an error from the BACKEND.
The first string in ARGS can be a format string.
(defalias 'nnheader-report #[(backend &rest args) "\302\303\304\"!	G\305W\203 	@\202 \306\303	\"L\210\307\207" [backend args intern format "%s-status-string" 2 apply nil] 4 (#$ . 18232)])
#@42 Get the most recent report from BACKEND.
(defalias 'nnheader-get-report #[(backend) "\300\301\302\217\207" [nil (byte-code "\301\302\303\304\305\306\"!J#\207" [backend nnheader-message 5 "%s" intern format "%s-status-string"] 7) ((error (nnheader-message 5 "")))] 3 (#$ . 18512)])
#@162 Clear the communication buffer and insert FORMAT and ARGS into the buffer.
If FORMAT isn't a format string, it and all ARGS will be inserted
without formatting.
(defalias 'nnheader-insert #[(format &rest args) "\212q\210\303 \210\304\305	\"\203 \306\301	\n#c\210\202 \306\307	\n#\210)\310\207" [nntp-server-buffer format args erase-buffer string-match "%" apply insert t] 4 (#$ . 18801)])
(defalias 'nnheader-replace-chars-in-string #[(string from to) "\303	\n#\207" [from to string mm-subst-char-in-string] 4])
(put 'nnheader-replace-chars-in-string 'byte-optimizer 'byte-compile-inline-expand)
#@47 Replace characters in STRING from FROM to TO.
(defalias 'nnheader-replace-duplicate-chars-in-string #[(string from to) "\306\307OG\306\307\211\fW\203: H\n=\2031 	U\2031 SI\210I\210	T\211\202 -\207" [string i prev idx len from 0 nil to] 6 (#$ . 19407)])
#@44 Return a group name based on FILE and TOP.
(defalias 'nnheader-file-to-group #[(file &optional top) "\204 	\202\f \305\306\307\217\310\311\312\n\f#+\207" [top file to from string nil (byte-code "\302!\302\303	!!G\304O\207" [file top expand-file-name file-name-as-directory nil] 4) ((error "")) 47 46 mm-subst-char-in-string] 4 (#$ . 19692)])
#@45 Message if the Gnus backends are talkative.
(defalias 'nnheader-message #[(level &rest args) "\247\203 	X\203 \303\304\n\"\207\303\305\n\"\207" [gnus-verbose-backends level args apply message format] 3 (#$ . 20047)])
#@57 Return whether the backends should be verbose on LEVEL.
(defalias 'nnheader-be-verbose #[(level) "\247?\206	 	X\207" [gnus-verbose-backends level] 2 (#$ . 20274)])
#@30 *Coding system for pathname.
(defvar nnheader-pathname-coding-system 'iso-8859-1 (#$ . -20446))
#@26 Make pathname for GROUP.
(defalias 'nnheader-group-pathname #[(group dir &optional file) "\306\307!!\306\310	P!\203 \307	\"\202( \307\311	\312\313\314\n\f#+\"\"!)\2043 \315\202B \247\203@ \316!\202B P\207" [dir group to from string nnheader-pathname-coding-system file-name-as-directory expand-file-name file-directory-p mm-encode-coding-string 46 47 mm-subst-char-in-string "" int-to-string file] 7 (#$ . 20548)])
#@40 Return non-nil if FORM is funcallable.
(defalias 'nnheader-functionp #[(form) "9\203 \301!\206 <\205 @\302=\207" [form fboundp lambda] 2 (#$ . 20988)])
#@35 Concat DIR as directory to FILES.
(defalias 'nnheader-concat #[(dir &rest files) "\302\303\304!	#\207" [dir files apply concat file-name-as-directory] 4 (#$ . 21153)])
#@37 Strip ^M from the end of all lines.
(defalias 'nnheader-ms-strip-cr #[nil "\212eb\210\300\301\302\303#\205 \304\305!\210\202 )\207" [re-search-forward "$" nil t delete-backward-char 1] 4 (#$ . 21328)])
#@36 Return the file size of FILE or 0.
(defalias 'nnheader-file-size #[(file) "\301\302!8\206	 \303\207" [file 7 file-attributes 0] 3 (#$ . 21539)])
#@113 Go through the path and find the ".../etc/PACKAGE" directory.
If FILE, find the ".../etc/PACKAGE" file instead.
(defalias 'nnheader-find-etc-directory #[(package &optional file) "\306\211\211\203A @\203: \307\310\311@!!\312\f\203  \313\202! \314R\211!\203: \2042 \315\n!\203: \n\306\211\202 A\211\204\n 	+\207" [load-path result dir path package file nil file-exists-p file-name-directory directory-file-name "etc/" "" "/" file-directory-p] 6 (#$ . 21692)])
#@55 Re-read directory PATH if PATH is on a remote system.
(defalias 'nnheader-re-read-dir #[(path) "\303\304!\203 \305\300!\203 \306	\"\205. \304	!\207\303\307!\205. \305\302!\205. \306\n@	\"\205. \307	!\207" [efs-path-regexp path ange-ftp-path-format fboundp efs-re-read-dir boundp string-match ange-ftp-re-read-dir] 3 (#$ . 22170)])
#@46 Coding system used in file backends of Gnus.
(defvar nnheader-file-coding-system 'raw-text (#$ . 22510))
#@308 Like `insert-file-contents', q.v., but only reads in the file.
A buffer may be modified in several ways after reading into the buffer due
to advanced Emacs features, such as file-name-handlers, format decoding,
find-file-hooks, etc.
  This function ensures that none of these modifications will take place.
(defalias 'nnheader-insert-file-contents #[(filename &optional visit beg end replace) "\306\n\f%)\207" [nnheader-file-coding-system coding-system-for-read filename visit beg end mm-insert-file-contents replace] 6 (#$ . 22622)])
(defalias 'nnheader-find-file-noselect #[(&rest args) "\306\307 \310\306\211\211\211\f\311\312\".\207" [nnheader-file-coding-system coding-system-for-read find-file-hooks enable-local-eval after-insert-file-functions enable-local-variables nil mm-auto-mode-alist fundamental-mode apply find-file-noselect default-major-mode auto-mode-alist format-alist args] 8])
#@44 Return a list of all regular files in DIR.
(defalias 'nnheader-directory-regular-files #[(dir) "\303\304\"\305\n\203 \306\n@!\203 \n@	B\n\211A\210\202 	\237*\207" [dir out files directory-files t nil file-regular-p] 3 (#$ . 23546)])
#@52 Same as `directory-files', but prune "." and "..".
(defalias 'nnheader-directory-files #[(&rest args) "\303\304\"\305\n\203! \306\n@!\307\235\204 \n@	B\n\211A\210\202 	\237*\207" [args out files apply directory-files nil file-name-nondirectory ("." "..")] 3 (#$ . 23793)])
(defalias 'nnheader-skeleton-replace '(macro . #[(from &optional to regexp) "\303\304\305\306\307\203 \310\202 \311	\312BB\313\314\n\205 \315\nD\316BBBBB\317BBBBB\207" [regexp from to let ((new (generate-new-buffer " *nnheader replace*")) (cur (current-buffer)) (start (point-min))) (set-buffer cur) (goto-char (point-min)) while re-search-forward search-forward (nil t) (insert-buffer-substring cur start (prog1 (match-beginning 0) (set-buffer new))) (goto-char (point-max)) insert ((set-buffer cur) (setq start (point))) ((insert-buffer-substring cur start (prog1 (point-max) (set-buffer new))) (copy-to-buffer cur (point-min) (point-max)) (kill-buffer (current-buffer)) (set-buffer cur))] 10]))
#@64 Do a fast replacement of FROM to TO from point to `point-max'.
(defalias 'nnheader-replace-string #[(from to) "\305\306!pe	q\210eb\210\307\310\311#\203. \312	\313\224\nq\210#\210db\210\fc\210	q\210`\202 \312	d\nq\210#\210\314	ed#\210\315p!\210	q+\207" [start cur new from to generate-new-buffer " *nnheader replace*" search-forward nil t insert-buffer-substring 0 copy-to-buffer kill-buffer] 5 (#$ . 24781)])
#@71 Do a fast regexp replacement of FROM to TO from point to `point-max'.
(defalias 'nnheader-replace-regexp #[(from to) "\305\306!pe	q\210eb\210\307\310\311#\203. \312	\313\224\nq\210#\210db\210\fc\210	q\210`\202 \312	d\nq\210#\210\314	ed#\210\315p!\210	q+\207" [start cur new from to generate-new-buffer " *nnheader replace*" re-search-forward nil t insert-buffer-substring 0 copy-to-buffer kill-buffer] 5 (#$ . 25204)])
#@40 Strip all 's from the current buffer.
(defalias 'nnheader-strip-cr #[nil "\303\304!pe	q\210eb\210\305\306\307\310#\203+ \311	\312\224\nq\210#\210db\210	q\210`\202 \311	d\nq\210#\210\313	ed#\210\314p!\210	q+\207" [start cur new generate-new-buffer " *nnheader replace*" search-forward "" nil t insert-buffer-substring 0 copy-to-buffer kill-buffer] 5 (#$ . 25637)])
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\311\312!\203 \313\314!\210\315\316!\210\317\320!\207" [defalias nnheader-run-at-time run-at-time nnheader-cancel-timer cancel-timer nnheader-cancel-function-timers cancel-function-timers nnheader-string-as-multibyte string-as-multibyte featurep xemacs require nnheaderxm run-hooks nnheader-load-hook provide nnheader] 3)
