;ELC   
;;; compiled by gsstark@lola-granola.MIT.EDU on Tue Jul 23 13:36:40 1996
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/gnus-5.2.37/lisp/nnsoup.el
;;; emacs version 19.30.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 "`nnsoup.el' was compiled for Emacs 19.29 or later"))


(byte-code "!!!!!\"ɉF\nB\nɇ" [require nnheader nnmail gnus-soup gnus-msg nnoo nnsoup mapcar #[(p) "C" [p] 1] nil nnoo-definition-alist] 4)
#@25 *SOUP packet directory.
(defvar nnsoup-directory "~/SOUP/" (#$ . -671))
(nnoo-define (quote nnsoup-directory) nil)
#@43 *Where nnsoup will store temporary files.
(defvar nnsoup-tmp-directory "/tmp/" (#$ . -792))
(nnoo-define (quote nnsoup-tmp-directory) nil)
#@53 *Directory where outgoing packets will be composed.
(defvar nnsoup-replies-directory (concat nnsoup-directory "replies/") (#$ . -937))
(nnoo-define (quote nnsoup-replies-directory) nil)
#@34 *Format of the replies packages.
(defvar nnsoup-replies-format-type 110 (#$ . -1129))
(nnoo-define (quote nnsoup-replies-format-type) nil)
#@38 *Index type of the replies packages.
(defvar nnsoup-replies-index-type 110 (#$ . -1274))
(nnoo-define (quote nnsoup-replies-index-type) nil)
#@14 Active file.
(defvar nnsoup-active-file (concat nnsoup-directory "active") (#$ . 1421))
(nnoo-define (quote nnsoup-active-file) nil)
#@205 Format string command for packing a SOUP packet.
The SOUP files will be inserted where the %s is in the string.
This string MUST contain both %s and %d. The file number will be
inserted where %d appears.
(defvar nnsoup-packer "tar cf - %s | gzip > $HOME/Soupin%d.tgz" (#$ . 1561))
(nnoo-define (quote nnsoup-packer) nil)
#@107 *Format string command for unpacking a SOUP packet.
The SOUP packet file name will be inserted at the %s.
(defvar nnsoup-unpacker "gunzip -c %s | tar xvf -" (#$ . -1889))
(nnoo-define (quote nnsoup-unpacker) nil)
#@47 *Where nnsoup will look for incoming packets.
(defvar nnsoup-packet-directory "~/" (#$ . -2108))
(nnoo-define (quote nnsoup-packet-directory) nil)
#@73 *Regular expression matching SOUP packets in `nnsoup-packet-directory'.
(defvar nnsoup-packet-regexp "Soupout" (#$ . -2261))
(nnoo-define (quote nnsoup-packet-regexp) nil)
#@17 nnsoup version.
(defconst nnsoup-version "nnsoup 0.0" (#$ . 2439))
(byte-code "! B\"! B\"!, B\"!> 	B\"!P \nB\"!b B\"!t \fB\"!" [boundp nnsoup-status-string "" current-load-list nnoo-define nil nnsoup-group-alist nnsoup-current-prefix 0 nnsoup-replies-list nnsoup-buffers nnsoup-current-group nnsoup-group-alist-touched nnoo-define-basics-1 nnsoup] 3)
(defalias 'nnsoup-retrieve-headers #[(sequence &optional group server fetch-old) "	!\nq \"AAɉ\n\f@;/ ЂX  S @@A@WS A> / @\fB\f@A@HHU @A@H!!  @@@AX @BA \f\f@B/ \f\f\f\fdb`\f@A@@\f@8H!!b!!ȉ#Ty +\fA\f X\fT\f@@\fA\f@\f@A#\nKdb@\"c\n!dbcA\" ." [nnsoup-possibly-change-group group nntp-server-buffer erase-buffer assoc nnsoup-current-group nnsoup-group-alist sequence t nil msg-buf this-area-seq useful-areas use-nov articles areas headers 2 1 110 file-exists-p nnsoup-file 0 nnsoup-index-buffer index-buffer number b insert-buffer-substring looking-at "[0-9]+" replace-match int-to-string nov nnsoup-narrow-to-article head format "221 %d Article retrieved.\n" ".\n" nnheader-fold-continuation-lines] 7])
(nnoo-register-function (quote nnsoup-retrieve-headers))
(defalias 'nnsoup-open-server #[(server &optional defs) "\n#! ȏ!   #!!1  # \n$ч" [nnoo-change-server nnsoup server defs file-exists-p nnsoup-directory nil (make-directory nnsoup-directory t) ((error)) nnsoup-close-server nnheader-report "Couldn't create directory: %s" file-directory-p file-truename "Not a directory: %s" nnsoup-read-active-file "Opened server %s using directory %s" t] 5])
(nnoo-register-function (quote nnsoup-open-server))
(defalias 'nnsoup-request-close #[nil "   ' A@A \f! \f! )	\n!·" [nnsoup-write-active-file nnsoup-write-replies gnus-soup-save-areas nil buffer nnsoup-buffers buffer-name kill-buffer nnsoup-group-alist nnsoup-group-alist-touched nnsoup-current-group nnsoup-replies-list nnoo-close-server nnoo t] 3])
(nnoo-register-function (quote nnsoup-request-close))
(defalias 'nnsoup-request-article #[(id &optional newsgroup server buffer) "	!\f\f q ;?& !& !*" [nnsoup-possibly-change-group newsgroup nil buf buffer nntp-server-buffer erase-buffer id nnsoup-narrow-to-article insert-buffer-substring t] 2])
(nnoo-register-function (quote nnsoup-request-article))
(defalias 'nnsoup-request-group #[(group &optional server dont-check) "	!\n\n Ç	\"A@ 	#2 A@ZT]@A	%)" [nnsoup-possibly-change-group group dont-check t assoc nnsoup-group-alist active nnheader-report nnsoup "No such group: %s" nnheader-insert "211 %d %d %d %s\n" 0] 7])
(nnoo-register-function (quote nnsoup-request-group))
(defalias 'nnsoup-request-type #[(group &optional article) "	!\n\n Ç\n\"A@HHU  ɂ, U+ ˂, )" [nnsoup-possibly-change-group group article unknown nnsoup-article-to-area nnsoup-current-group 2 kind 109 mail 110 news] 4])
(nnoo-register-function (quote nnsoup-request-type))
(defalias 'nnsoup-close-group #[(group &optional server) ". A@@\f \n\"\nA \nA! \nA! *ȇ" [nnsoup-buffers nil elem buffers group delq buffer-name kill-buffer t] 3])
(nnoo-register-function (quote nnsoup-close-group))
(defalias 'nnsoup-request-list #[(&optional server) "q \n  \npA@? @ȱA@A!cA@@!c ,ˇ" [nntp-server-buffer erase-buffer nnsoup-group-alist nnsoup-read-active-file nil entry standard-output alist " " princ " y\n" t] 3])
(nnoo-register-function (quote nnsoup-request-list))
(defalias 'nnsoup-request-scan #[(group &optional server) " " [nnsoup-unpack-packets] 1])
(nnoo-register-function (quote nnsoup-request-scan))
(defalias 'nnsoup-request-newgroups #[(date &optional server) " " [nnsoup-request-list] 1])
(nnoo-register-function (quote nnsoup-request-newgroups))
(defalias 'nnsoup-request-list-newsgroups #[(&optional server) "" [nil] 1])
(nnoo-register-function (quote nnsoup-request-list-newsgroups))
(defalias 'nnsoup-request-post #[(&optional server) "!" [nnsoup-store-reply "news" t] 2])
(nnoo-register-function (quote nnsoup-request-post))
(defalias 'nnsoup-request-mail #[(&optional server) "!" [nnsoup-store-reply "mail" t] 2])
(nnoo-register-function (quote nnsoup-request-mail))
(defalias 'nnsoup-request-expire-articles #[(articles group &optional server force) "	!	\"A@\fAA	\n A@@!	A@H!!8\nX \"!8\n 	\" 	\n# ׏ \fA\fAA\"	\"\n \fA\fAA\" \fAA \fAA@@@ AT!." [nnsoup-possibly-change-group group assoc nnsoup-group-alist total-infolist active infolist nil info range-list mod-time prefix gnus-uncompress-range 0 5 file-attributes nnsoup-file t gnus-sublist-p articles nnmail-expired-article-p force (byte-code "\f!$\f!! \f!!\f\"$\f\"!1 \f\"!ȇ" [nnheader-message 5 "Deleting %s in group %s..." nnsoup-file prefix group file-exists-p delete-file t] 6) ((error)) delq gnus-sorted-complement nnsoup-write-active-file] 6])
(nnoo-register-function (quote nnsoup-request-expire-articles))
(defalias 'nnsoup-possibly-change-group #[(group &optional force) " " [group nnsoup-current-group t] 2])
(defalias 'nnsoup-read-active-file #[nil "!l ŏ	k 	@A@@:k 		\n\nA\n@	Ag @@@AP AC @@A	B	AB) -\f	" [nil nnsoup-group-alist file-exists-p nnsoup-active-file (byte-code "	$" [load nnsoup-active-file t] 5) ((error)) max min e entry alist t nnsoup-group-alist-touched] 6])
(defalias 'nnsoup-write-active-file #[(&optional force) "] 	\f \n] \f!!	. 	!!. 	!\"ΎpDE!cE!c)	\\ qed	%," [nnsoup-group-alist force nnsoup-group-alist-touched nil nnsoup-active-file nnheader-set-temp-buffer generate-new-buffer-name " *nnheader temp*" nnheader-temp-cur-buffer nnheader-temp-file file-directory-p file-name-directory make-directory t ((byte-code "	!\n 	!" [buffer-name nnheader-temp-cur-buffer kill-buffer] 2)) standard-output prin1 setq quote "\n" nnsoup-current-prefix write-region nomesg] 8])
#@30 Return the next free prefix.
(defalias 'nnsoup-next-prefix #[nil "!!! 	\"! T T	)" [nil prefix file-exists-p nnsoup-file int-to-string nnsoup-current-prefix t] 4 (#$ . 8839)])
(defalias 'nnsoup-read-areas #[nil "q\nP!ĉ	\nA@  \"\nHQ!I !\"\nHQ! \"\"I!	H\"\n H	B	BDEB \nA@AT	\\BDC\nA@	\\ .!\nP!)" [nntp-server-buffer gnus-soup-parse-areas nnsoup-tmp-directory "AREAS" nil file cur-prefix lnum area number entry areas nnsoup-next-prefix message "Incorporating file %s..." file-exists-p 0 ".IDX" rename-file nnsoup-file ".MSG" t nnsoup-number-of-articles assoc 1 nnsoup-group-alist nnsoup-write-active-file delete-file] 7])
(defalias 'nnsoup-number-of-articles #[(area) "H HO HHU% H!qed\"O H!qebHH!\n#L \nT\n; \n*)" [area 4 2 1 110 nnsoup-index-buffer 0 count-lines nnsoup-message-buffer nnsoup-header num regexp re-search-forward nil t] 4])
(defalias 'nnsoup-index-buffer #[(prefix &optional message) "		 \n P\fQ!? \n\fP!? !qp!pBB\n\fP!p)*" [prefix message ".MSG" ".IDX" file " *nnsoup " "*" buffer-name get-buffer file-exists-p nnsoup-directory get-buffer-create buffer-disable-undo nnsoup-current-group nnsoup-buffers insert-file-contents] 3])
(defalias 'nnsoup-file #[(prefix &optional message) "	\n Ă\f Q!" [expand-file-name nnsoup-directory prefix message ".MSG" ".IDX"] 4])
(defalias 'nnsoup-message-buffer #[(prefix) "	\"" [nnsoup-index-buffer prefix msg] 3])
#@50 Unpack all packets in `nnsoup-packet-directory'.
(defalias 'nnsoup-unpack-packets #[nil "	#A@< \"!\f#. \"	 ! !	 *" [directory-files nnsoup-packet-directory t nnsoup-packet-regexp nil packet packets message format "nnsoup: unpacking %s..." gnus-soup-unpack-packet nnsoup-tmp-directory nnsoup-unpacker "Couldn't unpack %s" delete-file nnsoup-read-areas "Unpacking...done"] 4 (#$ . 10447)])
(defalias 'nnsoup-narrow-to-article #[(article &optional area head) " \n\" A@H \"\n  A@HHU !! !q~eb\n@@Zyp!\ny! p!q~A@HHbU U y`) q~\n d} q~ebA@HH!\n@@Z$Ĕ# Ĕ d})eb e# `S d})-" [area nnsoup-article-to-area article nnsoup-current-group 0 prefix nnsoup-index-buffer msg msg-buf nil beg end 2 1 99 file-exists-p nnsoup-file read looking-at "[0-9]+" format 110 109 -1 nnsoup-header header re-search-forward t head search-forward "\n\n"] 7])
(defalias 'nnsoup-header #[(format) "U U PU Ǉ\"" [format 110 "^#! *rnews +[0-9]+ *$" 109 "^" message-unix-mail-delimiter 77 "^\n" error "Unknown format: %c"] 3])
#@43 Make an outbound package of SOUP replies.
(defalias 'nnsoup-pack-replies #[nil "   \f\"" [gnus-soup-save-areas nnsoup-write-active-file nnsoup-write-replies gnus-soup-pack nnsoup-replies-directory nnsoup-packer] 3 (#$ . 11654) nil])
#@25 Write the REPLIES file.
(defalias 'nnsoup-write-replies #[nil "\f \n\"É" [nnsoup-replies-list gnus-soup-write-replies nnsoup-replies-directory nil] 3 (#$ . 11902)])
#@54 Return the area that ARTICLE in GROUP is located in.
(defalias 'nnsoup-article-to-area #[(article group) "	\n\"AA @@A\fW A ! @)" [assoc group nnsoup-group-alist areas article] 4 (#$ . 12081)])
(byte-code "!\n \nD\fB" [boundp nnsoup-old-functions message-send-mail-function message-send-news-function current-load-list] 2)
#@57 Use the SOUP methods for posting news and mailing mail.
(defalias 'nnsoup-set-variables #[nil "" [nnsoup-request-post message-send-news-function nnsoup-request-mail message-send-mail-function] 2 (#$ . 12435) nil])
#@67 Revert posting and mailing methods to the standard Emacs methods.
(defalias 'nnsoup-revert-variables #[nil "@A@" [nnsoup-old-functions message-send-mail-function message-send-news-function] 2 (#$ . 12661) nil])
(defalias 'nnsoup-store-reply #[(kind) "!! !p	\n\fĎ К1 !6 !)q ! \")dbhUZ cu Кu !r !u  \feb !Q!!! 	Tb'!  *!,-%/0 0! 0qeb# /T/ )/\"* !.	" [require mail-utils generate-new-buffer " message temp" nil message-news-p mail-fetch-field "resent-to" mailbuf delimline resend-to-addresses news case-fold-search tembuf message-narrow-to-headers kind "mail" message-generate-headers message-required-mail-headers message-required-news-headers erase-buffer insert-buffer-substring message-remove-header message-ignored-mail-headers t 10 "cc" "to" message-insert-courtesy-copy re-search-forward "^" regexp-quote mail-header-separator "\n" replace-match backward-char 1 point-marker eval message-mailer-swallows-blank-line newline gnus-soup-store nnsoup-replies-directory nnsoup-kind-to-prefix nnsoup-replies-format-type nnsoup-replies-index-type 0 num msg-buf bufferp "^#! *rnews" message "Stored %d messages" nnsoup-write-replies kill-buffer] 7])
(defalias 'nnsoup-kind-to-prefix #[(kind) "\n \nP!  \f@H  \fA \f+ \f@HJ \n!\fΘ@ ςA $#B@H)" [nnsoup-replies-list gnus-soup-parse-replies nnsoup-replies-directory "REPLIES" replies kind 1 0 vector gnus-soup-unique-prefix format "%c%c%c" nnsoup-replies-format-type nnsoup-replies-index-type "news" 110 109] 10])
#@35 (Re-)create the SOUP active file.
(defalias 'nnsoup-make-active #[nil "\n#\"Ɖ	\n\f!qp! @\" @!eb#K P !ed\"\n@\"@ݔݕO	\f\" \nB\nB	\n%DE\fB\f A@AT\n\\B	\n%DCA@\n\\A* !\f\"!." [sort directory-files nnsoup-directory t "IDX$" #[(f1 f2) "\n\"\n\"!\"\"!W" [string-match "/\\([0-9]+\\)\\." f1 string-to-int match-string 1 f2] 5] nil min elem ident lines group active files get-buffer-create " *nnsoup work*" buffer-disable-undo message "Doing %s..." erase-buffer insert-file-contents re-search-forward "^[^	]*	[^	]*	[^	]*	[^	]*	[^	]*	[^	]*	[^	]*	[^	]*	 *\\(Xref: \\)? *[^ ]* \\([^ ]+\\):[0-9]" "unknown" match-string 2 count-lines string-match "/\\([0-9]+\\)\\." 1 assoc vector "ncm" "" nnsoup-group-alist nnsoup-write-active-file] 10 (#$ . 14305) nil])
#@63 Delete any *.MSG and *.IDX files that aren't known by nnsoup.
(defalias 'nnsoup-delete-unreferenced-message-files #[nil "\f\"\"	#\fA@C \"ωO \fB\f \f\"\f\f#-" [apply nconc mapcar #[(ga) "\nAA\"" [mapcar #[(area) "A@H" [area 0] 2] ga] 3] nnsoup-group-alist known "\\.MSG$\\|\\.IDX$" regexp directory-files nnsoup-directory nil files non-files file string-match 0 sort string< map-y-or-n-p "Delete file %s? " #[(file) "	\nP!" [delete-file nnsoup-directory file] 3]] 5 (#$ . 15205) nil])
(provide (quote nnsoup))
