;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:44:24 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/gnus/gnus-util.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; 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-util.el' was compiled for Emacs 19.29 or later"))

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


(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\"\210\304\307\310\"\210\304\311\310\"\210\304\312\310\"\207" [require custom nnheader time-date autoload message-fetch-field "message" rmail-insert-rmail-file-header "rmail" rmail-count-new-messages rmail-show-message] 3)
#@50 Return non-nil if VARIABLE is bound and non-nil.
(defalias 'gnus-boundp #[(variable) "\301!\205 J\207" [variable boundp] 2 (#$ . 911)])
#@72 Pop to BUFFER, evaluate FORMS, and then return to the original window.
(defalias 'gnus-eval-in-buffer-window '(macro . #[(buffer &rest forms) "\305\306!\305\307!\305\310!\311\n\312BD	\313\314BBDE\315\316\317	\316\320	D\321\322	DDE\323DF\fBB\320\nDEE+\207" [buf w tempvar buffer forms make-symbol "GnusStartBufferWindow" "w" "buf" let* ((selected-window)) get-buffer-window ('visible) unwind-protect progn if select-window set-buffer window-buffer pop-to-buffer] 11 (#$ . 1056)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put gnus-eval-in-buffer-window lisp-indent-function 1 edebug-form-spec (form body)] 4)
#@62 Set hash value.  Arguments are STRING, VALUE, and HASHTABLE.
(defalias 'gnus-intern-safe '(macro . #[(string hashtable) "\302\303\304	EDC\305BB\207" [string hashtable let symbol intern ((or (boundp symbol) (set symbol nil)) symbol)] 5 (#$ . 1693)]))
(defalias 'gnus-limit-string #[(str width) "G	V\203\f \302	O\207\207" [str width 0] 3])
(put 'gnus-limit-string 'byte-optimizer 'byte-compile-inline-expand)
#@40 Return non-nil if FORM is funcallable.
(defalias 'gnus-functionp #[(form) "9\203 \301!\206 <\203 @\302=\206 \303!\207" [form fboundp lambda byte-code-function-p] 2 (#$ . 2110)])
(put 'gnus-functionp 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'gnus-goto-char #[(point) "\205 b\207" [point] 1])
(put 'gnus-goto-char 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'gnus-buffer-exists-p '(macro . #[(buffer) "\301\300DC\302BB\207" [buffer let ((when buffer (funcall (if (stringp buffer) 'get-buffer 'buffer-name) buffer)))] 3]))
(defalias 'gnus-kill-buffer '(macro . #[(buffer) "\301\302DC\303BB\207" [buffer let buf ((when (gnus-buffer-exists-p buf) (kill-buffer buf)))] 3]))
(byte-code "\300\301\302\303!\203\f \303\202 \304\"\210\300\305\302\306!\203 \306\202 \307\"\207" [defalias gnus-point-at-bol fboundp point-at-bol line-beginning-position gnus-point-at-eol point-at-eol line-end-position] 4)
#@72 Delete by side effect the first occurrence of ELT as a member of LIST.
(defalias 'gnus-delete-first #[(elt list) "@	\232\203\n A\207A\203# \211A@)	\232\204# A\211\202 A\2031 \211\211AA)\241\210\n)\207" [list elt total x] 3 (#$ . 3050)])
(defalias 'gnus-delete-line '(macro . #[(&optional n) "\301\302\303\304\206	 \305D\306BBE\207" [n delete-region (progn (beginning-of-line) (point)) progn forward-line 1 ((point))] 5]))
#@51 Return a form that can be `eval'ed based on FUNC.
(defalias 'gnus-byte-code #[(func) "\304!\305	!\203 \306	\307\"\211\310\240\210\n)\202  \311	\211AA)B)\207" [func fval flist x indirect-function byte-code-function-p append nil byte-code progn] 4 (#$ . 3492)])
(defalias 'gnus-extract-address-components #[(from) "\303\211\304\305\n\"\203 \n\306\224\306\225O\203: \304\307\310!\311Q\n\"\203: \n\306\211\224O\211\203: \304\312	\"\203: 	\313\306\225SO	\204n \304\314\n\"\203R \n\306\224T\306\225SO\211\204n \304\315\n\"\203_ \211\204n \304\316\n\"\203n \n\306\224T\306\225O	\317\230?\205v 	\206{ \n*D\207" [address name from nil string-match "\\b[^@ 	<>]+[!@][^@ 	<>]+\\b" 0 "[ 	]*<" regexp-quote ">" "\".*\"" 1 "(.+)" "()" "(.*" ""] 4])
#@58 Return the value of the header FIELD of current article.
(defalias 'gnus-fetch-field #[(field) "\212\214\303\211\304 \210\305\n!,\207" [inhibit-point-motion-hooks case-fold-search field t nnheader-narrow-to-headers message-fetch-field] 2 (#$ . 4251)])
(defalias 'gnus-goto-colon #[nil "\300 \210\301\302\303 \304#\207" [beginning-of-line search-forward ":" gnus-point-at-eol t] 4])
#@64 Delete all text in the current buffer with text property PROP.
(defalias 'gnus-remove-text-with-property #[(prop) "\212eb\210m?\205\" \301`\"\203 \302\303!\210\202	 \304`\305d$b\210\202 )\207" [prop get-text-property delete-char 1 next-single-property-change nil] 5 (#$ . 4641)])
#@55 Make hierarchical directory name from NEWSGROUP name.
(defalias 'gnus-newsgroup-directory-form #[(newsgroup) "\303!G\304\305\306\"\211\203 	\307I\210\202 \310	\nW\2036 	H\311U\203/ 	\307I\210	T\211\202 +\207" [newsgroup idx len gnus-newsgroup-savable-name nil string-match ":" 47 0 46] 4 (#$ . 4931)])
(defalias 'gnus-newsgroup-savable-name #[(group) "\304\305\306\n	#+\207" [group to from string 47 46 subst-char-in-string] 4])
(defalias 'gnus-string> #[(s1 s2) "	\231\206	 	\230?\207" [s1 s2] 2])
(defalias 'gnus-file-newer-than #[(file date) "\303\304!8\211@\n@V\206 	@\n@U\205 	A@\nA@V)\207" [file fdate date 5 file-attributes] 4])
#@46 Set the keys in PLIST in the current keymap.
(defalias 'gnus-local-set-keys '(macro . #[(&rest plist) "\301\302\303DE\207" [plist gnus-define-keys-1 (current-local-map) quote] 4 (#$ . 5600)]))
#@37 Define all keys in PLIST in KEYMAP.
(defalias 'gnus-define-keys '(macro . #[(keymap &rest plist) "\302\303D\303	DE\207" [keymap plist gnus-define-keys-1 quote] 4 (#$ . 5800)]))
#@78 Define all keys in PLIST in KEYMAP without overwriting previous definitions.
(defalias 'gnus-define-keys-safe '(macro . #[(keymap &rest plist) "\302\303D\303	D\304BBB\207" [keymap plist gnus-define-keys-1 quote (t)] 4 (#$ . 5984)]))
(byte-code "\300\301\302\303#\210\300\304\302\303#\210\300\305\302\303#\207" [put gnus-define-keys lisp-indent-function 1 gnus-define-keys-safe gnus-local-set-keys] 4)
#@37 Define all keys in PLIST in KEYMAP.
(defalias 'gnus-define-keymap '(macro . #[(keymap &rest plist) "\302\303	DE\207" [keymap plist gnus-define-keys-1 quote] 4 (#$ . 6392)]))
(put 'gnus-define-keymap 'lisp-indent-function 1)
(defalias 'gnus-define-keys-1 #[(keymap plist &optional safe) "\204 \305\306!\2109\203 J\202? \307!\204? <\203? @\310L\210\311@!\210\312\211AA)@J\211A@)@#\210@J\310\205v \211A@\2119\203S \nJ\f\203` \313\n\"\314=\203m \312\n\211A@#\210\202A \211A@\210\202A )\207" [keymap x key plist safe error "Can't set keys in a null keymap" keymapp nil define-prefix-command define-key lookup-key undefined] 6])
(defalias 'gnus-completing-read #[(default prompt &rest args) "\203\f 	\304\305R\202 	\306P\307\310	\n#\211\203! \311G!\203% \202& *\207" [default prompt args answer " (default " ") " " " apply completing-read zerop] 5])
(defalias 'gnus-y-or-n-p #[(prompt) "\301!\302\303!\210\207" [prompt y-or-n-p message ""] 3])
(defalias 'gnus-yes-or-no-p #[(prompt) "\301!\302\303!\210\207" [prompt yes-or-no-p message ""] 3])
#@54 Return a string like DD-MMM from a big messy string.
(defalias 'gnus-dd-mmm #[(messy-date) "\300\301\302\217\207" [nil (byte-code "\301\302\303!\"\207" [messy-date format-time-string "%d-%b" safe-date-to-time] 4) ((error "  -   "))] 3 (#$ . 7476)])
#@88 Convert DATE string to Emacs time.
Cache the result as a text property stored in DATE.
(defalias 'gnus-date-get-time '(macro . #[(date) "\301\302DC\303BB\207" [date let d ((if (equal "" d) '(0 0) (or (get-text-property 0 'gnus-time d) (let ((time (safe-date-to-time d))) (put-text-property 0 1 'gnus-time time d) time))))] 3 (#$ . 7732)]))
#@52 Return a string of TIME in YYYYMMDDTHHMMSS format.
(defalias 'gnus-time-iso8601 #[(time) "\301\302\"\207" [time format-time-string "%Y%m%dT%H%M%S"] 3 (#$ . 8079)])
(put 'gnus-time-iso8601 'byte-optimizer 'byte-compile-inline-expand)
#@38 Convert the DATE to YYYYMMDDTHHMMSS.
(defalias 'gnus-date-iso8601 #[(date) "\300\301\302\217\207" [nil (byte-code "\211\303\232\203\f \304\202\" \305\306\307	#\206\" \310	!\311\306\312\307\n	%\210\n))\313\314\n\")\207" [date d time "" (0 0) get-text-property 0 gnus-time safe-date-to-time put-text-property 1 format-time-string "%Y%m%dT%H%M%S"] 7) ((error ""))] 3 (#$ . 8319)])
#@28 Quote all "%"'s in STRING.
(defalias 'gnus-mode-string-quote #[(string) "\212\301 \210c\210eb\210\302\303\304\305#\203 \303c\210\202\n \306 )\207" [string gnus-set-work-buffer search-forward "%" nil t buffer-string] 4 (#$ . 8707)])
(defalias 'gnus-make-hashtable #[(&optional hashsize) "\301\203 \302!\303]\202 \303\304\"\207" [hashsize make-vector gnus-create-hash-size 256 0] 3])
(defalias 'gnus-create-hash-size #[(min) "\302\302	W\203 \211\\\303\\\211\202 )\207" [i min 1 0] 3])
#@272 *Integer that says how verbose Gnus should be.
The higher the number, the more messages Gnus will flash to say what
it's doing.  At zero, Gnus will be totally mute; at five, Gnus will
display most important messages; and at ten, Gnus will keep on
jabbering all the time.
(custom-declare-variable 'gnus-verbose '7 '(#$ . -9209) :group 'gnus-start :type 'integer)
(defalias 'gnus-message #[(level &rest args) "	X\203 \303\304\n\"\207\303\305\n\"\207" [level gnus-verbose args apply message format] 3])
#@65 Beep an error if LEVEL is equal to or less than `gnus-verbose'.
(defalias 'gnus-error #[(level &rest args) "\304!	X\203+ \305\306\n\"\210\307 \210\310\311!\203* \312\304!Z\313_\211!\204* \314!\210)\310\207" [level gnus-verbose args duration floor apply message ding nil floatp zerop 10 sit-for] 4 (#$ . 9717)])
#@45 Return a list of Message-IDs in REFERENCES.
(defalias 'gnus-split-references #[(references) "\303\304\305\306\n	#\203 \n\303\224\303\225\211OB\202 \237*\207" [ids beg references 0 nil string-match "<[^>]+>"] 4 (#$ . 10041)])
#@82 Return the last Message-ID in REFERENCES.
If N, return the Nth ancestor instead.
(defalias 'gnus-parent-id #[(references &optional n) "\2057 \304\305\306\307\n#\203  \304\224\304\225\211O	B\202\n 	\237+\206) \310	\233\2034 	A\202$ 	@)\207" [references ids beg n 0 nil string-match "<[^>]+>" 1] 4 (#$ . 10280)])
(put 'gnus-parent-id 'byte-optimizer 'byte-compile-inline-expand)
#@37 Say whether BUFFER is alive or not.
(defalias 'gnus-buffer-live-p #[(buffer) "\205 \301!\205 \302\301!!\207" [buffer get-buffer buffer-name] 3 (#$ . 10675)])
(put 'gnus-buffer-live-p 'byte-optimizer 'byte-compile-inline-expand)
#@43 Recenter the current buffer horizontally.
(defalias 'gnus-horizontal-recenter #[nil "i\303 \304\245W\203 \305\306p\307\"\310\"\207`\311\306p\307\"!\310	\205e \312 b\210m\204; `	W\203; \313\210\ni]\314y\210\202$ b\210\n\303 V\203\\ \305\306p\307\"i\303 \315\245Z\n\303 Z\304\\^\"\210\202d \305\306p\307\"\310\"\210\n+\207" [orig end max window-width 2 set-window-hscroll get-buffer-window t 0 window-end window-start nil 1 3] 5 (#$ . 10914)])
#@21 Get the next event.
(defalias 'gnus-read-event-char #[nil "\301 \211\247\205	 )B\207" [event read-event] 3 (#$ . 11369)])
#@45 Make string suitable for sorting from DATE.
(defalias 'gnus-sortable-date #[(date) "\302!\303\304	\")\207" [date time date-to-time format-time-string "%Y%m%dT%H%M%S"] 3 (#$ . 11500)])
#@18 Copy FILE to TO.
(defalias 'gnus-copy-file #[(file &optional to) "\204	 \303\304	\"\305!\203 \306!\307\n!P\310\n\"\207" [to default-directory file read-file-name "Copy file to: " file-directory-p file-name-as-directory file-name-nondirectory copy-file] 3 (#$ . 11692) (list (read-file-name "Copy file: " default-directory) (read-file-name "Copy file to: " default-directory))])
(byte-code "\301B\302\301!\204\f \303\301\207" [current-load-list gnus-work-buffer boundp " *gnus work*"] 2)
#@42 Put point in the empty Gnus work buffer.
(defalias 'gnus-set-work-buffer #[nil "\301!\203\f q\210\302 \207\303!q\210\304 \210\305 \207" [gnus-work-buffer get-buffer erase-buffer gnus-get-buffer-create kill-all-local-variables mm-enable-multibyte] 2 (#$ . 12195)])
#@44 Find the real name of a foreign newsgroup.
(defalias 'gnus-group-real-name '(macro . #[(group) "\301\302DC\303BB\207" [group let gname ((if (string-match "^[^:]+:" gname) (substring gname (match-end 0)) gname))] 3 (#$ . 12468)]))
#@67 Return a composite sort condition based on the functions in FUNC.
(defalias 'gnus-make-sort-function #[(funs) "\2119\203 \302	!\206 	<\203 	@\303=\206 \304	!)\203\" \207\204( \207A\2043 @<\203< \303\305\306\307!!E\207@\207" [funs form fboundp lambda byte-code-function-p (t1 t2) gnus-make-sort-function-1 reverse] 6 (#$ . 12705)])
#@67 Return a composite sort condition based on the functions in FUNC.
(defalias 'gnus-make-sort-function-1 #[(funs) "@\306\307\211:\203F @\310=\203! \211A@)\307\306\202F \2119\203. \311!\206= <\203: @\312=\206= \313!)\204F \314\315\"\210A\203` \316\n	E\317\310	\nED\320A!EE\202d \n	E+\207" [funs last first function x form t1 t2 not fboundp lambda byte-code-function-p error "Invalid sort spec: %s" or and gnus-make-sort-function-1] 8 (#$ . 13055)])
#@45 Turn off edit menu in `gnus-TYPE-mode-map'.
(defalias 'gnus-turn-off-edit-menu #[(type) "\301\302\303\304\"!J\305\306#\207" [type define-key intern format "gnus-%s-mode-map" [menu-bar edit] undefined] 5 (#$ . 13529)])
#@106 Use `prin1' on FORM in the current buffer.
Bind `print-quoted' and `print-readably' to t while printing.
(defalias 'gnus-prin1 #[(form) "\306\211\307\211\211\310p\"-\207" [print-length print-level print-escape-multibyte print-readably print-quoted form t nil prin1] 5 (#$ . 13755)])
#@73 The same as `prin1', but bind `print-quoted' and `print-readably' to t.
(defalias 'gnus-prin1-to-string #[(form) "\303\211\304\n!*\207" [print-readably print-quoted form t prin1-to-string] 2 (#$ . 14050)])
#@59 Make DIRECTORY (and all its parents) if it doesn't exist.
(defalias 'gnus-make-directory #[(directory) "\303\304!\210\n\203 \305\n!\204 \306\n\307\"\210)\307\207" [nnmail-pathname-coding-system file-name-coding-system directory require nnmail file-exists-p make-directory t] 3 (#$ . 14264)])
#@46 Write the current buffer's contents to FILE.
(defalias 'gnus-write-buffer #[(file) "\303\304!!\210	\305ed\306\307%)\207" [file nnmail-pathname-coding-system file-name-coding-system gnus-make-directory file-name-directory write-region nil quietly] 6 (#$ . 14566)])
#@27 Delete FILE if it exists.
(defalias 'gnus-delete-file #[(file) "\301!\205	 \302!\207" [file file-exists-p delete-file] 2 (#$ . 14839)])
#@43 Return STRING stripped of all whitespace.
(defalias 'gnus-strip-whitespace #[(string) "\301\302\"\203 \303\304\305\211$\202  \207" [string string-match "[\n	 ]+" replace-match "" t] 5 (#$ . 14983)])
#@89 The same as `put-text-property', but don't put this prop on any newlines in the region.
(defalias 'gnus-put-text-property-excluding-newlines #[(beg end prop val) "\306 \307\216\212\214	b\210\310\n\311#\203 \312	\313\224\f$\210`\202\n \312	`\f$,\207" [save-match-data-internal beg gnus-emphasize-whitespace-regexp end prop val match-data ((set-match-data save-match-data-internal)) re-search-forward move gnus-put-text-property 0] 5 (#$ . 15194)])
(put 'gnus-put-text-property-excluding-newlines 'byte-optimizer 'byte-compile-inline-expand)
#@99 The same as `put-text-property', but don't put props on characters with the `gnus-face' property.
(defalias 'gnus-put-text-property-excluding-characters-with-faces #[(beg end prop val) "	\nU?\205. \305	\306\"\203 \307	\306\310\n$	\nU\204 \311	\307	\306\310\n$\211\f$\210\202 )\207" [beg b end prop val get-text-property gnus-face next-single-property-change nil gnus-put-text-property] 7 (#$ . 15746)])
#@70 If t, certain operations will be protected from interruption by C-g.
(defvar gnus-atomic-be-safe t (#$ . 16163))
#@457 Evaluate FORMS atomically, which means to protect the evaluation
from being interrupted by the user.  An error from the forms themselves
will return without finishing the operation.  Since interrupts from
the user are disabled, it is recommended that only the most minimal
operations are performed by FORMS.  If you wish to assign many
complicated values atomically, compute the results into temporary
variables and then do only the assignment atomically.
(defalias 'gnus-atomic-progn '(macro . #[(&rest forms) "\301\302BB\207" [forms let ((inhibit-quit gnus-atomic-be-safe))] 3 (#$ . 16283)]))
(put 'gnus-atomic-progn 'lisp-indent-function 0)
#@456 Evaluate FORMS, but insure that the variables listed in PROTECT
are not changed if anything in FORMS signals an error or otherwise
non-locally exits.  The variables listed in PROTECT are updated atomically.
It is safe to use gnus-atomic-progn-assign with long computations.

Note that if any of the symbols in PROTECT were unbound, they will be
set to nil on a sucessful assignment.  In case of an error or other
non-local exit, it will still be unbound.
(defalias 'gnus-atomic-progn-assign '(macro . #[(protect &rest forms) "\306\307\"\306\310	\"\306\311	\"\n\312\313	\"\312\313\n\"\314\315!\316\313C\"\316\f\317\320BE\317BF\316\321\317BE\257.\207" [protect temp-sym-map sym-temp-map temp-sym-let sym-temp-let temp-sym-assign mapcar #[(x) "\301\302!\303P!D\207" [x make-symbol symbol-name "-tmp"] 3] #[(x) "\211A@)@D\207" [x] 3] #[(x) "@\301\302\303\211A@)DD\211A@)ED\207" [x and boundp quote] 6] apply append make-symbol "result-tmp" let setq progn ((inhibit-quit gnus-atomic-be-safe)) sym-temp-assign result forms] 8 (#$ . 16935)]))
(put 'gnus-atomic-progn-assign 'lisp-indent-function 1)
#@317 Similar to setq, except that the real symbols are only assigned when
there are no errors.  And when the real symbols are assigned, they are
done so atomically.  If other variables might be changed via side-effect,
see gnus-atomic-progn-assign.  It is safe to use gnus-atomic-setq
with potentially long computations.
(defalias 'gnus-atomic-setq '(macro . #[(&rest pairs) "\304\211\203 \n@	B\n\211AA)\211\204 \305	\306BE*\207" [pairs syms tpairs x nil gnus-atomic-progn-assign setq] 5 (#$ . 18068)]))
(byte-code "\301B\301\207" [current-load-list rmail-default-rmail-file] 2)
#@61 Append the current article to an Rmail file named FILENAME.
(defalias 'gnus-output-to-rmail #[(filename &optional ask) "\306\307!\210\310!\211p\311\312!\212\313!\204M \314!\204M \f\203* \315\316\317Q!\203I \320!\212q\210\321 \210\322&'(\323!\210+\324!\210)\202M \325\326!\210\nq\210\327 \210\330!\210\331 \210\313!\211)\204q *+\332ed#\210)\202\276 )q\210\322\333\334!\205~ \334J,-,\203\215 ~\210dd}\210\330\n!\210,\203\272 eb\210~\210\335\336!\210`d}\210\337\340!\210\341 \203\261 \342\343 !\210\337\340!\210\344,!\210\345 \210**\324\n!*\207" [filename rmail-default-rmail-file tmpbuf artbuf ask file-buffer require rmail expand-file-name get-buffer-create " *Gnus-output*" get-file-buffer file-exists-p gnus-yes-or-no-p "\"" "\" does not exist, create it? " create-file-buffer rmail-insert-rmail-file-header nil gnus-write-buffer kill-buffer error "Output file does not exist" erase-buffer insert-buffer-substring gnus-convert-article-to-rmail mm-append-to-file boundp rmail-current-message search-backward "\n" rmail-count-new-messages t rmail-summary-exists rmail-select-summary rmail-update-summary rmail-show-message save-buffer mm-text-coding-system coding-system-for-write require-final-newline outbuf nnmail-pathname-coding-system file-name-coding-system msg buffer-read-only] 5 (#$ . 18659)])
#@59 Append the current article to a mail file named FILENAME.
(defalias 'gnus-output-to-mail #[(filename &optional ask) "\306!p\307\310!\212\311!\204C \312!\204C \203$ \313\314\315Q!\203? \316!\212\fq\210\317$%\320!\210+\321\f!\210)\202C \322\323!\210	q\210\324 \210\325\n!\210eb\210\326\327!\203\\ \330y\210\202c \331\332 \333\261\210\317&\334\335\317\336#\203w \337 \210\340c\210\202f )\311!\211'\204\257 \317(\212db\210\341u\210\326\342!\204\236 db\210n\204\233 \333c\210\333c\210db\210)*\343ed#\210+\202\310 'q\210\317(db\210m\204\300 \333c\210\333c\210\325	!\210)*\321	!*\207" [filename tmpbuf artbuf ask file-buffer mm-text-coding-system expand-file-name get-buffer-create " *Gnus-output*" get-file-buffer file-exists-p gnus-y-or-n-p "\"" "\" does not exist, create it? " create-file-buffer nil gnus-write-buffer kill-buffer error "Output file does not exist" erase-buffer insert-buffer-substring looking-at "From " 1 "From nobody " current-time-string "\n" re-search-forward "^From " t beginning-of-line ">" -2 "\n\n" mm-append-to-file coding-system-for-write require-final-newline case-fold-search outbuf buffer-read-only nnmail-pathname-coding-system file-name-coding-system] 5 (#$ . 19996)])
#@60 Convert article in current buffer to Rmail message format.
(defalias 'gnus-convert-article-to-rmail #[nil "\301eb\210\302c\210\303\304\301\305#\203 \306\307\305\211#\210\202 db\210\310c)\207" [buffer-read-only nil "\f\n0, unseen,,\n*** EOOH ***\n" search-forward "\n" t replace-match "\n^_" ""] 4 (#$ . 21224)])
#@113 Applies the result of the first function in FUNS to the second, and so on.
ARG is passed to the first function.
(defalias 'gnus-map-function #[(funs arg) "	\203 	\211A@\n!\202 \n)\207" [funs myfuns arg] 2 (#$ . 21548)])
#@52 Does the same as `run-hooks', but saves excursion.
(defalias 'gnus-run-hooks #[(&rest funcs) "p\302\216\303\304	\"*\207" [buf funcs ((set-buffer buf)) apply run-hooks] 3 (#$ . 21780)])
#@58 Parse FILE and return a list of all entries in the file.
(defalias 'gnus-parse-netrc #[(file) "\306!\205\301 \307\310\311!!\312\216r	q\210\313\314\211\211\211\315!\210eb\210m\204\275 `\316 }\210m\204\250 \317\314w\210\314f\320=\203B db\210\202- m\204- g\321U\203R \322p!\202Y `\323\314w\210`{\211\324\232\203v ~\210\325\326y!\203o \327\330!\204b ``}\210\202- \f\235\203\227 \n\203\221 \nA\204\215 \n@\331\232\203\221 \nB\fC\202- \n\203- \n\f\241\210\nB\314\202- \203\261 \237B\314\314~\210\326y\210\202$ \237.\207" [file #1=#:temp-buffer pair result elem alist file-exists-p get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) ("machine" "default" "login" "password" "account" "macdef" "force" "port") nil insert-file-contents gnus-point-at-eol "	 " 35 34 read "^	 " "macdef" zerop 1 looking-at "$" "default" tokens] 6 (#$ . 21972)])
#@191 Return the netrc values from LIST for MACHINE or for the default entry.
If PORT specified, only return entries with matching port tokens.
Entries without port tokens default to DEFAULTPORT.
(defalias 'gnus-netrc-machine #[(list machine &optional port defaultport) "\306\203! \307\310@\"A\232\203 @	B\211A@\210\202 	\204? \n\203? \307\311\n@\"\2036 \n@	B\n\211A@\210\202% 	\205o 	\237	\203m \f\206S \206S \312\313	@\314\"\206` \206` \312\232\204m 	\211A@\210\202F 	@*\207" [list result rest machine port defaultport nil assoc "machine" "default" "nntp" gnus-netrc-get "port"] 4 (#$ . 22920)])
#@44 Return the value of token TYPE from ALIST.
(defalias 'gnus-netrc-get #[(alist type) "\302	\"A\207" [type alist assoc] 3 (#$ . 23536)])
(byte-code "\301B\301\207" [current-load-list gnus-group-buffer] 2)
#@37 Say whether Gnus is running or not.
(defalias 'gnus-alive-p #[nil "\302\300!\205 \303!\205 \212q\210	)\304=\207" [gnus-group-buffer major-mode boundp get-buffer gnus-group-mode] 2 (#$ . 23748)])
(defalias 'gnus-remove-duplicates #[(list) "\303	\203 	@\n\235\204 	@\nB	A\211\204 \n\237*\207" [list tail new nil] 3])
#@51 Delete elements from LIST that satisfy PREDICATE.
(defalias 'gnus-delete-if #[(predicate list) "\303	\203 \n	@!\204 	@B	\211A@\210\202 \237)\207" [out list predicate nil] 2 (#$ . 24081)])
#@56 Delete all entries in ALIST that have a key eq to KEY.
(defalias 'gnus-delete-alist #[(key alist) "\303	\n\236\211\203 \304\n\"\202 \n)\207" [entry key alist nil delq] 3 (#$ . 24283)])
#@33 Modify ALIST to be without KEY.
(defalias 'gnus-pull '(macro . #[(key alist &optional assoc-p) "9\204\n \304\305\"\210	\203 \306\202 \307\310\311\nEEE)\207" [alist assoc-p fun key error "Not a symbol: %s" assoc assq setq delq] 6 (#$ . 24480)]))
#@74 Returns a regexp that matches a whole line, iff RE matches a part of it.
(defalias 'gnus-globalify-regexp #[(re) "\301\302\"?\205	 \303\301\304\"?\205 \305Q\207" [re string-match "^\\^" "^.*" "\\$$" ".*$"] 5 (#$ . 24740)])
#@51 Set the window start to POINT, or (point) if nil.
(defalias 'gnus-set-window-start #[(&optional point) "\302p\303\"\211\205 \304	\206 `\")\207" [win point get-buffer-window t set-window-start] 4 (#$ . 24973)])
(defalias 'gnus-annotation-in-region-p #[(b e) "	U\203 \303\304!>\211A@)\305=\207\306	\303\305$\207" [b e x gnus-undeletable text-properties-at t text-property-any] 6])
#@52 Return non-nil if any of the elements are non-nil.
(defalias 'gnus-or #[(&rest elems) "\300\301\215\207" [found (byte-code "\205 \211A@\203  \301\302\303\"\210\202  \207" [elems throw found t] 3)] 2 (#$ . 25367)])
#@52 Return non-nil if all of the elements are non-nil.
(defalias 'gnus-and #[(&rest elems) "\300\301\215\207" [found (byte-code "\203 \211A@\204  \301\302\303\"\210\202  \304\207" [elems throw found nil t] 3)] 2 (#$ . 25591)])
(defalias 'gnus-write-active-file #[(file hashtb &optional full-names) "\n\306\307\310!!\311\216rq\210\312\313\"\210db\210\314\315\316\317#\205' \320\321!\210\202 )rq\210~\210\322ed\f\316\323%\210-\207" [nnmail-active-file-coding-system coding-system-for-write file #1=#:temp-buffer #2=#:temp-file hashtb get-buffer-create generate-new-buffer-name " *temp file*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mapatoms #[(sym) "\205> \303!\205> J\205> \304\305	\203 \2020 \306\307!\310\311\n\"\203- \n\312\225\313O\202. \n)!JA\2069 J@J@$c\207" [sym full-names gname boundp format "%S %d %d y\n" intern symbol-name string-match "^[^:]+:" 0 nil] 6] search-backward "\\." nil t delete-char 1 write-region 0] 7])
#@75 Like `gnus-add-text-properties', only applied on where PROPERTY is VALUE.
(defalias 'gnus-add-text-properties-when #[(property value start end properties &optional object) "\306	\203$ \307	\n\f$\211\203$ \310	\n$\210\311\n\f$\211\204 	\205/ \310	\n\n$)\207" [point start end property value properties nil text-property-not-all gnus-add-text-properties text-property-any object] 6 (#$ . 26584)])
#@73 Like `remove-text-properties', only applied on where PROPERTY is VALUE.
(defalias 'gnus-remove-text-properties-when #[(property value start end properties &optional object) "\306	\203$ \307	\n\f$\211\203$ \310	$\210\311\n\f$\211\204 	\2030 \310	\n$\210)\312\207" [point start end property value properties nil text-property-not-all remove-text-properties text-property-any t object] 6 (#$ . 26997)])
#@141 The regexp of directory separator character.
If you find some problem with the directory separator character, try
"[/\\]" for some systems.
(defvar gnus-directory-sep-char-regexp "/" (#$ . 27418))
(provide 'gnus-util)
