;ELC   
;;; compiled by amu@tux.mit.edu on Sun Nov 15 14:43:07 1998
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/gnus-5.6.44/lisp/gnus-util.el
;;; emacs version 19.34.1.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (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 "!!!!\"\"\"\"" [require custom nnheader timezone message autoload nnmail-date-to-time "nnmail" 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) "	! 	J" [boundp variable] 2 (#$ . 721)])
#@72 Pop to BUFFER, evaluate FORMS, and then return to the original window.
(defalias 'gnus-eval-in-buffer-window '(macro . #[(buffer &rest forms) "!!!B\f	D\fBBDEDDDE\fDFBBDEE+" [make-symbol "GnusStartBufferWindow" "w" "buf" buf w tempvar let* ((selected-window)) buffer get-buffer-window ((quote visible)) unwind-protect progn if select-window set-buffer window-buffer pop-to-buffer forms] 11 (#$ . 857)]))
(byte-code "##" [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) "\fEDCBB" [let symbol intern string hashtable ((or (boundp symbol) (set symbol nil)) symbol)] 5 (#$ . 1415)]))
(defalias 'gnus-truncate-string #[(str width) "\nO" [str 0 width] 3])
(defalias 'gnus-limit-string #[(str width) "G	V\f 	O" [str width 0] 3])
(put (quote gnus-limit-string) (quote byte-optimizer) (quote byte-compile-inline-expand))
#@40 Return non-nil if FORM is funcallable.
(defalias 'gnus-functionp #[(form) "9 ! < @= !" [form fboundp lambda byte-code-function-p] 2 (#$ . 1900)])
(put (quote gnus-functionp) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'gnus-goto-char #[(point) " b" [point] 1])
(put (quote gnus-goto-char) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'gnus-buffer-exists-p '(macro . #[(buffer) "	DCBB" [let buffer ((when buffer (funcall (if (stringp buffer) (quote get-buffer) (quote buffer-name)) buffer)))] 3]))
(defalias 'gnus-kill-buffer '(macro . #[(buffer) "\nDCBB" [let buf buffer ((when (gnus-buffer-exists-p buf) (kill-buffer buf)))] 3]))
(byte-code "! M M! M\" M" [fboundp point-at-bol gnus-point-at-bol #[nil "`y`b)" [p 0] 2 "Return point at the beginning of the line."] point-at-eol gnus-point-at-eol #[nil "``b)" [p nil] 2 "Return point at the end of the line."]] 2)
#@72 Delete by side effect the first occurrence of ELT as a member of LIST.
(defalias 'gnus-delete-first #[(elt list) "@	\n AA  A@	  A A+ AA\n)" [list elt total] 3 (#$ . 2886)])
(defalias 'gnus-delete-line '(macro . #[(&optional n) "\f	 DBBE" [delete-region (progn (beginning-of-line) (point)) progn forward-line n 1 ((point))] 5]))
#@51 Return a form that can be `eval'ed based on FUNC.
(defalias 'gnus-byte-code #[(func) "	!\n! \n\"Ǡ) \nAAB)" [indirect-function func fval byte-code-function-p append nil flist byte-code progn] 4 (#$ . 3252)])
(defalias 'gnus-extract-address-components #[(from) "\" ƔƕO	: 	!Q\": ƉO: \n\": \nƕSO\nn \"R ƔTƕSOn \"_ 	n \"n ƔTƕO\ns 	x *D" [nil address name string-match "\\b[^@ 	<>]+[!@][^@ 	<>]+\\b" from 0 "[ 	]*<" regexp-quote ">" "\".*\"" 1 "(.+)" "()" "(.*"] 4])
#@58 Return the value of the header FIELD of current article.
(defalias 'gnus-fetch-field #[(field) " !," [t inhibit-point-motion-hooks case-fold-search nnheader-narrow-to-headers message-fetch-field field] 2 (#$ . 3800)])
(defalias 'gnus-goto-colon #[nil "y #" [0 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) "ebm?\" `	\" !	 `	d$b )" [get-text-property prop delete-char 1 next-single-property-change nil] 5 (#$ . 4128)])
#@55 Make hierarchical directory name from NEWSGROUP name.
(defalias 'gnus-newsgroup-directory-form #[(newsgroup) "	!	G	\" 	I \fW6 	HU/ 	IT 	+" [gnus-newsgroup-savable-name newsgroup nil idx len string-match ":" 47 0 46] 4 (#$ . 4376)])
(defalias 'gnus-newsgroup-savable-name #[(group) "	#" [nnheader-replace-chars-in-string group 47 46] 4])
(defalias 'gnus-string> #[(s1 s2) "		 	?" [s1 s2] 2])
(defalias 'gnus-days-between #[(date1 date2) "	!\n!Z" [gnus-day-number date1 date2] 3])
(defalias 'gnus-day-number #[(date) "!\"\fA@\f8\f@#)" [mapcar #[(s) " !" [s string-to-int] 2] timezone-parse-date date dat timezone-absolute-from-gregorian 2] 4])
#@29 Convert TIME to day number.
(defalias 'gnus-time-to-day #[(time) "	!\n8\n8\n8#)" [decode-time time tim timezone-absolute-from-gregorian 4 3 5] 5 (#$ . 5083)])
#@32 Convert DATE to internal time.
(defalias 'gnus-encode-date #[(date) "	!\n\"\nH!\"AA@A@@	AA@	A@	@	8!_&+" [timezone-parse-date date parse mapcar #[(d) " !" [d string-to-int] 2] string-to-int timezone-parse-time 3 time encode-time timezone-zone-to-minute 4 60] 10 (#$ . 5255)])
#@30 Subtract two internal times.
(defalias 'gnus-time-minus #[(t1 t2) "A@	A@W@	@Z\n Â Z\n ł  A@\\	A@Z)D" [t1 t2 borrow 1 0 65536] 3 (#$ . 5565)])
#@43 Say whether time T1 is less than time T2.
(defalias 'gnus-time-less #[(t1 t2) "@	@W @	@U A@	A@W" [t1 t2] 2 (#$ . 5727)])
(defalias 'gnus-file-newer-than #[(file date) "\n!8@\f@V @\f@U A@\fA@V)" [5 file-attributes file fdate date] 4])
#@46 Set the keys in PLIST in the current keymap.
(defalias 'gnus-local-set-keys '(macro . #[(&rest plist) "DE" [gnus-define-keys-1 (current-local-map) quote plist] 4 (#$ . 5986)]))
#@37 Define all keys in PLIST in KEYMAP.
(defalias 'gnus-define-keys '(macro . #[(keymap &rest plist) "\nDDE" [gnus-define-keys-1 quote keymap plist] 4 (#$ . 6174)]))
#@78 Define all keys in PLIST in KEYMAP without overwriting previous definitions.
(defalias 'gnus-define-keys-safe '(macro . #[(keymap &rest plist) "\nDDBBB" [gnus-define-keys-1 quote keymap plist (t)] 4 (#$ . 6347)]))
(byte-code "###" [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) "	DE" [gnus-define-keys-1 keymap quote plist] 4 (#$ . 6696)]))
(put (quote gnus-define-keymap) (quote lisp-indent-function) 1)
(defalias 'gnus-define-keys-1 #[(keymap plist &optional safe) " !9 J9 !9 <9 @L@!AA@JA@@#@J} A@9T J	c \"=s A@#< A< )" [keymap error "Can't set keys in a null keymap" keymapp nil define-prefix-command define-key key plist safe lookup-key undefined] 5])
(defalias 'gnus-completing-read #[(default prompt &rest args) "\f 	R 	P	#$ GU( * *" [default prompt " (default " ") " " " apply completing-read args answer 0] 5])
(defalias 'gnus-y-or-n-p #[(prompt) "	!!" [y-or-n-p prompt message ""] 3])
(defalias 'gnus-yes-or-no-p #[(prompt) "	!!" [yes-or-no-p prompt message ""] 3])
#@54 Return a string like DD-MMM from a big messy string.
(defalias 'gnus-dd-mmm #[(messy-date) " HŘ Ƃ, ˏH!S8@* !#)" [G99212 (timezone-parse-date messy-date) ((error)) datevec 1 "0" "??-???" format "%2s-%s" nil (byte-code "\nH!!" [number-to-string string-to-number datevec 2] 4) ((error "??")) capitalize string-to-number timezone-months-assoc "???"] 8 (#$ . 7614)])
#@88 Convert DATE string to Emacs time.
Cache the result as a text property stored in DATE.
(defalias 'gnus-date-get-time '(macro . #[(date) "\nDCBB" [let d date ((if (equal "" d) (quote (0 0)) (or (get-text-property 0 (quote gnus-time) d) (let ((time (nnmail-date-to-time d))) (put-text-property 0 1 (quote gnus-time) time d) time))))] 3 (#$ . 8014)]))
#@50 Return a string of TIME in YYMMDDTHHMMSS format.
(defalias 'gnus-time-iso8601 #[(time) "\n\"" [format-time-string "%Y%m%dT%H%M%S" time] 3 (#$ . 8373)])
(put (quote gnus-time-iso8601) (quote byte-optimizer) (quote byte-compile-inline-expand))
#@36 Convert the DATE to YYMMDDTHHMMSS.
(defalias 'gnus-date-iso8601 #[(date) "" [nil (byte-code "\f Â% 	#% 	!	%))\")" [date d "" (0 0) get-text-property 0 gnus-time nnmail-date-to-time time put-text-property 1 format-time-string "%Y%m%dT%H%M%S"] 7) ((error ""))] 3 (#$ . 8624)])
#@28 Quote all "%"'s in STRING.
(defalias 'gnus-mode-string-quote #[(string) " 	ceb# c\n  )" [gnus-set-work-buffer string search-forward "%" nil t buffer-string] 4 (#$ . 8940)])
(defalias 'gnus-make-hashtable #[(&optional hashsize) "	 	!] \"" [make-vector hashsize gnus-create-hash-size 256 0] 3])
(defalias 'gnus-create-hash-size #[(min) "\nW 	\\ 	)" [1 i min] 3])
(custom-declare-variable (quote gnus-verbose) 7 "*Integer that says how verbose Gnus should be.\nThe higher the number, the more messages Gnus will flash to say what\nit's doing.  At zero, Gnus will be totally mute; at five, Gnus will\ndisplay most important messages; and at ten, Gnus will keep on\njabbering all the time." :group (quote gnus-start) :type (quote integer))
(defalias 'gnus-message #[(level &rest args) "	X \f\"\f\"" [level gnus-verbose apply message args format] 3])
#@65 Beep an error if LEVEL is equal to or less than `gnus-verbose'.
(defalias 'gnus-error #[(level &rest args) "	!\nX. \" 	!- 		!Z_U- !)Ǉ" [floor level gnus-verbose apply message args ding nil duration floatp 10 0 sit-for] 3 (#$ . 9837)])
#@45 Return a list of Message-IDs in REFERENCES.
(defalias 'gnus-split-references #[(references) "# O\nB \n*" [0 nil ids beg string-match "<[^>]+>" references] 4 (#$ . 10103)])
#@82 Return the last Message-ID in REFERENCES.
If N, return the Nth ancestor instead.
(defalias 'gnus-parent-id #[(references &optional n) "8 \f#  OB\n +* 5 A$ @)" [references 0 nil ids beg string-match "<[^>]+>" n 1] 4 (#$ . 10305)])
#@37 Say whether BUFFER is alive or not.
(defalias 'gnus-buffer-live-p #[(buffer) " ! !!" [buffer get-buffer buffer-name] 3 (#$ . 10578)])
(put (quote gnus-buffer-live-p) (quote byte-optimizer) (quote byte-compile-inline-expand))
#@43 Recenter the current buffer horizontally.
(defalias 'gnus-horizontal-recenter #[nil "i W p\"\"`p\"!	p  bmB `WB 	i]	y( b	 Vf p\"i ͥZ	 Z\\^\"n p\"\"	+" [window-width 2 set-window-hscroll get-buffer-window t 0 orig window-end end max window-start nil 1 3] 5 (#$ . 10820)])
#@21 Get the next event.
(defalias 'gnus-read-event-char #[nil " 	 		)B" [read-event event] 3 (#$ . 11155)])
#@75 Make sortable string by string-lessp from DATE.
Timezone package is used.
(defalias 'gnus-sortable-date #[(date) "" [nil (byte-code ";' \" \"' !' G$, 	\n\f\"U \f\n	3\"n \f\n	3\" \f\n	3\" \f\n	3\" \f\n	3\" \f\n	3\" \f\n	3\"\f\n	3\"\f\n	3\"3\f\n	\f\f\fO\fGWR\fOP\f\\HUk\\O\\O\"\"%\"A!)\n\nO\n		O	O\f\f\n	%牉%.H()!H!\fW\f\\\fW\f\\\f\fH!H!\nH!		H!1	H!2	H!3H*))(G\n\f#321_\\_\\\"((!)!Z828\\22\":1:\\12:_Z21X1Z1\nT\n\f\"\nWT\nW\fT\f1V1\\1\nS\n\nVSV\fS\f\f\"\n\f\n123(&.HHHHHH321123$+	\n\f@ \f\n	%," [date nil text-properties-at 0 next-property-change copy-sequence set-text-properties "" zone time day month year string-match "\\([^ 	,]+\\),[ 	]+\\([0-9]+\\)[ 	]+\\([^ 	,]+\\)[ 	]+\\([0-9]+:[0-9:]+\\)[ 	]+\\(T[ 	]+\\|\\)\\([0-9]+\\)[ 	]*\\'" 6 3 2 4 "\\([^ 	,]+\\),[ 	]+\\([0-9]+\\)[ 	]+\\([^ 	,]+\\)[ 	]+\\([0-9]+:[0-9:]+\\)[ 	]+\\(T[ 	]+\\|\\)\\([0-9]+\\)[ 	]*\\([-+a-zA-Z0-9]+\\)" 7 "\\([0-9]+\\)[ 	]+\\([^ 	,]+\\)[ 	]+\\([0-9]+\\)[ 	]+\\([0-9]+:[0-9:]+\\)[ 	]*\\'" 1 "\\([0-9]+\\)[ 	]+\\([^ 	,]+\\)[ 	]+\\([0-9]+\\)[ 	]+\\([0-9]+:[0-9:]+\\)[ 	]*\\([-+a-zA-Z0-9]+\\)" 5 "\\([^ 	,]+\\)[ 	]+\\([0-9]+\\)[ 	]+\\([0-9]+:[0-9:]+\\)[ 	]+\\([0-9]+\\)" "\\([^ 	,]+\\)[ 	]+\\([0-9]+\\)[ 	]+\\([0-9]+:[0-9:]+\\)[ 	]+\\([-+a-zA-Z0-9]+\\)[ 	]+\\([0-9]+\\)" "\\([0-9]+\\)[ 	]+\\([^ 	,]+\\)[ 	]+\\([0-9]+\\)[ 	]+\\([0-9]+\\)[ 	]*\\([-+a-zA-Z0-9]+\\)" "\\([0-9]+\\)-\\([A-Za-z]+\\)-\\([0-9]+\\)[ 	]+\\([0-9]+:[0-9]+:[0-9]+\\)\\.[0-9]+" "\\([0-9]+\\)-\\([0-9]+\\)-\\([0-9]+\\)[ 	]+\\([0-9]+:[0-9]+:[0-9]+\\)[ 	]*\\([-+a-zA-Z0-9]+\\)" "\\([0-9]+\\)-\\([0-9]+\\)-\\([0-9]+\\)[ 	]+\\([0-9]+:[0-9]+:[0-9]+\\)" "19" -2 45 string int-to-string assoc timezone-months-assoc vector "0" timezone local timezone-parse-date string-to-int 50 2000 100 1900 timezone-parse-time hour minute second timezone-time-zone-from-absolute timezone-absolute-from-gregorian 60 timezone-zone-to-minute diff floor hour-fix 24 timezone-last-day-of-month 12 format "%02d:%02d:%02d" "%4d%02d%02d%s"] 10) ((error ""))] 3 (#$ . 11271)])
#@18 Copy FILE to TO.
(defalias 'gnus-copy-file #[(file &optional to) "	 \"! !!P\"" [to read-file-name "Copy file to: " default-directory file-directory-p file-name-as-directory file-name-nondirectory file copy-file] 3 (#$ . 13814) (list (read-file-name "Copy file: " default-directory) (read-file-name "Copy file to: " default-directory))])
#@44 Delete all overlays in the current buffer.
(defalias 'gnus-kill-all-overlays #[nil " 	@	A\" A@! +" [overlay-lists overlayss nil buffer-read-only delq overlays delete-overlay] 4 (#$ . 14178)])
(byte-code "! B" [boundp gnus-work-buffer " *gnus work*" current-load-list] 2)
#@42 Put point in the empty Gnus work buffer.
(defalias 'gnus-set-work-buffer #[nil "	!\f 	q 	!q p!" [get-buffer gnus-work-buffer erase-buffer gnus-get-buffer-create kill-all-local-variables buffer-disable-undo] 2 (#$ . 14485)])
#@44 Find the real name of a foreign newsgroup.
(defalias 'gnus-group-real-name '(macro . #[(group) "\nDCBB" [let gname group ((if (string-match "^[^:]+:" gname) (substring gname (match-end 0)) gname))] 3 (#$ . 14726)]))
#@67 Return a composite sort condition based on the functions in FUNC.
(defalias 'gnus-make-sort-function #[(funs) "<  A !!E@" [funs lambda (t1 t2) gnus-make-sort-function-1 reverse] 5 (#$ . 14952)])
#@67 Return a composite sort condition based on the functions in FUNC.
(defalias 'gnus-make-sort-function-1 #[(funs) "A @B@BDA!EE@B" [funs or (t1 t2) and not (t2 t1) gnus-make-sort-function-1 (t1 t2)] 6 (#$ . 15174)])
#@45 Turn off edit menu in `gnus-TYPE-mode-map'.
(defalias 'gnus-turn-off-edit-menu #[(type) "\f\"!J#" [define-key intern format "gnus-%s-mode-map" type [menu-bar edit] undefined] 5 (#$ . 15409)])
#@106 Use `prin1' on FORM in the current buffer.
Bind `print-quoted' and `print-readably' to t while printing.
(defalias 'gnus-prin1 #[(form) "p\"-" [t nil print-length print-level print-escape-multibyte print-readably print-quoted prin1 form] 5 (#$ . 15615)])
#@73 The same as `prin1', but bind `print-quoted' and `print-readably' to t.
(defalias 'gnus-prin1-to-string #[(form) "\f!*" [t print-readably print-quoted prin1-to-string form] 2 (#$ . 15891)])
#@59 Make DIRECTORY (and all its parents) if it doesn't exist.
(defalias 'gnus-make-directory #[(directory) " ! \"Ç" [directory file-exists-p make-directory t] 3 (#$ . 16093)])
#@46 Write the current buffer's contents to FILE.
(defalias 'gnus-write-buffer #[(file) "\n!!ed\n%" [gnus-make-directory file-name-directory file write-region nil quietly] 6 (#$ . 16283)])
#@27 Delete FILE if it exists.
(defalias 'gnus-delete-file #[(file) "	!	 	!" [file-exists-p file delete-file] 2 (#$ . 16480)])
#@43 Return STRING stripped of all whitespace.
(defalias 'gnus-strip-whitespace #[(string) "\n\" ŉ\n$  \n" [string-match "[\n	 ]+" string replace-match "" t] 5 (#$ . 16612)])
#@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) " b#\" ɔ\n$`\n `\n$," [match-data match-data ((store-match-data match-data)) beg re-search-forward "[ 	]*\n" end move gnus-put-text-property 0 prop val] 5 (#$ . 16799)])
#@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?0 	\" 	\n$	\nU 		\n$	$ )" [beg b end get-text-property gnus-face next-single-property-change nil gnus-put-text-property prop val] 7 (#$ . 17166)])
#@70 If t, certain operations will be protected from interruption by C-g.
(defvar gnus-atomic-be-safe t (#$ . 17536))
#@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) "\nBB" [let ((inhibit-quit gnus-atomic-be-safe)) forms] 3 (#$ . 17656)]))
(put (quote gnus-atomic-progn) (quote 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) "\n\"\"\"\"\"\f!C\"BEBF\fBE." [mapcar #[(x) "\n!P!\nD" [make-symbol symbol-name x "-tmp"] 3] protect temp-sym-map #[(x) "A@@D" [x] 2] sym-temp-map #[(x) "@A@DDA@ED" [x and boundp quote] 5] temp-sym-let sym-temp-let apply append temp-sym-assign sym-temp-assign make-symbol "result-tmp" result let setq progn forms ((inhibit-quit gnus-atomic-be-safe))] 8 (#$ . 18314)]))
(put (quote gnus-atomic-progn-assign) (quote 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) " @\nBAA \nBE*" [pairs nil syms tpairs gnus-atomic-progn-assign setq] 5 (#$ . 19355)]))
(byte-code "	B" [rmail-default-rmail-file current-load-list] 2)
#@61 Append the current article to an Rmail file named FILENAME.
(defalias 'gnus-output-to-rmail #[(filename &optional ask) "!!p!!O !O - Q!K !q !*!)O !q ! !p ed# q!} J  ~dd}! eb~!`d}!   !!! **!*" [require rmail expand-file-name filename rmail-default-rmail-file gnus-get-buffer-create " *Gnus-output*" tmpbuf artbuf get-file-buffer file-exists-p ask gnus-yes-or-no-p "\"" "\" does not exist, create it? " create-file-buffer file-buffer rmail-insert-rmail-file-header nil require-final-newline gnus-write-buffer kill-buffer error "Output file does not exist" erase-buffer insert-buffer-substring gnus-convert-article-to-rmail outbuf append-to-file boundp rmail-current-message msg buffer-read-only search-backward "\n" rmail-count-new-messages t rmail-summary-exists rmail-select-summary rmail-update-summary rmail-show-message save-buffer] 5 (#$ . 19905)])
#@59 Append the current article to a mail file named FILENAME.
(defalias 'gnus-output-to-mail #[(filename &optional ask) "	!p!	!D 	!D % 	Q!@ 	!q	!*!)D !\fq !eb!] yd  ۱#x ycg )	!\" #dbu! dbn ccdbed	#* \"q#dbm cc\f!)*\f!*" [expand-file-name filename gnus-get-buffer-create " *Gnus-output*" tmpbuf artbuf get-file-buffer file-exists-p ask gnus-y-or-n-p "\"" "\" does not exist, create it? " create-file-buffer file-buffer nil require-final-newline 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" case-fold-search re-search-forward "^From " t 0 ">" outbuf buffer-read-only -2 "\n\n" append-to-file] 5 (#$ . 20892)])
#@60 Convert article in current buffer to Rmail message format.
(defalias 'gnus-convert-article-to-rmail #[nil "ebc# ŉ# dbc)" [nil buffer-read-only "\f\n0, unseen,,\n*** EOOH ***\n" search-forward "\n" t replace-match "\n^_" ""] 4 (#$ . 21731)])
#@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) "	 	A@\n! \n)" [funs myfuns arg] 2 (#$ . 22001)])
#@52 Does the same as `run-hooks', but saves excursion.
(defalias 'gnus-run-hooks #[(&rest funcs) "p\f\"*" [buf ((set-buffer buf)) apply run-hooks funcs] 3 (#$ . 22221)])
#@41 Syntax table when parsing .netrc files.
(defvar gnus-netrc-syntax-table (byte-code "	!\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n)" [copy-syntax-table text-mode-syntax-table table modify-syntax-entry 64 "w" 45 95 33 46 44 58 59 37 41 40] 4) (#$ . 22399))
#@59 Parse FILE and return an list of all entries in the file.
(defalias 'gnus-parse-netrc #[(file) "	! É!ˎ!	!ebm ` }m wm/ `!`{Ӛ` ~yUY !L ``}/  \f~ \fAx \f@ך~ \fBC/ \f/ \f\fB/  B~y& ." [file-exists-p file ("machine" "default" "login" "password" "account" "macdef" "force") nil pair result elem alist tokens nnheader-set-temp-buffer " *netrc*" ((kill-buffer " *netrc*")) set-syntax-table gnus-netrc-syntax-table insert-file-contents gnus-point-at-eol "	 " forward-sexp 1 "macdef" 0 looking-at "$" "default"] 6 (#$ . 22699)])
#@73 Return the netrc values from LIST for MACHINE or for the default entry.
(defalias 'gnus-netrc-machine #[(list machine) " @\"A\f A 2 	1 	@\"1 	A 	@)" [list rest assoc "machine" machine "default"] 3 (#$ . 23331)])
#@44 Return the value of token TYPE from ALIST.
(defalias 'gnus-netrc-get #[(alist type) "	\n\"A" [assoc type alist] 3 (#$ . 23578)])
(byte-code "	B" [gnus-group-buffer current-load-list] 2)
#@37 Say whether Gnus is running or not.
(defalias 'gnus-alive-p #[nil "! 	! 	q)=" [boundp gnus-group-buffer get-buffer major-mode gnus-group-mode] 2 (#$ . 23776)])
(defalias 'gnus-remove-duplicates #[(list) "	\n \n@ \n@B\nA *" [nil list tail new] 3])
#@51 Delete elements from LIST that satisfy PREDICATE.
(defalias 'gnus-delete-if #[(predicate list) "\n \n@! \n@	B\nA 	)" [nil out list predicate] 2 (#$ . 24059)])
#@56 Delete all entries in ALIST that have a key eq to KEY.
(defalias 'gnus-delete-alist #[(key alist) "\n 	\" )" [nil entry key alist delq] 3 (#$ . 24239)])
#@33 Modify ALIST to be without KEY.
(defalias 'gnus-pull '(macro . #[(key alist) "9\n \"EEE" [alist error "Not a symbol: %s" setq delq assq key] 6 (#$ . 24413)]))
#@74 Returns a regexp that matches a whole line, iff RE matches a part of it.
(defalias 'gnus-globalify-regexp #[(re) "\n\"?	 \n\n\"? Q" [string-match "^\\^" re "^.*" "\\$$" ".*$"] 5 (#$ . 24593)])
(provide (quote gnus-util))
