;ELC ;;; compiled by larsi@ifi.uio.no on Fri Jun 28 20:34:31 1996 ;;; from file /gd/gnu/emacs/19.0/lisp/nnml.el ;;; emacs version 19.31.4. ;;; 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 "`nnml.el' was compiled for Emacs 19.29 or later")) (byte-code "!!!!\"ȉF B ȇ" [require nnheader nnmail nnoo cl nnml mapcar #[(p) "C" [p] 1] nil nnoo-definition-alist] 4) #@23 Mail spool directory. (defvar nnml-directory message-directory (#$ . 597)) (nnoo-define (quote nnml-directory) nil) #@19 Mail active file. (defvar nnml-active-file (byte-code " !P" [file-name-as-directory nnml-directory "active"] 2) (#$ . 719)) (nnoo-define (quote nnml-active-file) nil) #@35 Mail newsgroups description file. (defvar nnml-newsgroups-file (byte-code " !P" [file-name-as-directory nnml-directory "newsgroups"] 2) (#$ . 895)) (nnoo-define (quote nnml-newsgroups-file) nil) #@72 If non-nil, nnml will check the incoming mail file and split the mail. (defvar nnml-get-new-mail t (#$ . 1099)) (nnoo-define (quote nnml-get-new-mail) nil) #@451 If non-nil, Gnus will never generate and use nov databases for mail groups. Using nov databases will speed up header fetching considerably. This variable shouldn't be flipped much. If you have, for some reason, set this to t, and want to set it to nil again, you should always run the `nnml-generate-nov-databases' command. The function will go through all nnml directories and generate nov databases for them all. This may very well take some time. (defvar nnml-nov-is-evil nil (#$ . 1262)) (nnoo-define (quote nnml-nov-is-evil) nil) #@48 Hook run narrowed to an article before saving. (defvar nnml-prepare-save-mail-hook nil (#$ . 1803)) (nnoo-define (quote nnml-prepare-save-mail-hook) nil) #@29 If non-nil, inhibit expiry. (defvar nnml-inhibit-expiry nil (#$ . 1963)) (nnoo-define (quote nnml-inhibit-expiry) nil) #@15 nnml version. (defconst nnml-version "nnml 1.0" (#$ . 2088)) (byte-code "! B\"! B\"!, B\"!> B\"!P\n B\"!b B\"!t\f B\"! B\"! B\"!" [boundp nnml-nov-file-name ".overview" current-load-list nnoo-define nil nnml-current-directory nnml-current-group nnml-status-string "" nnml-nov-buffer-alist nnml-group-alist nnml-active-timestamp nnml-article-file-alist nnml-generate-active-function nnml-generate-active-info nnoo-define-basics-1 nnml] 3) (defalias 'nnml-retrieve-headers #[(sequence &optional newsgroup server fetch-old) "q G‰ @; ʂ\f \"2! \">ӂ @ APP  ! ! \"c` !b#udbcc`d| AT>V>U>_#>V\" ." [nntp-server-buffer erase-buffer nil sequence 0 article beg count number file headers nnml-possibly-change-directory newsgroup server nnml-article-file-alist nnheader-article-to-file-alist nnml-current-directory nnml-retrieve-headers-with-nov fetch-old nov "" file-exists-p file-directory-p format "221 %d Article retrieved.\n" nnheader-insert-head search-forward "\n\n" t -1 ".\n" nnmail-large-newsgroup 20 nnheader-message 6 "nnml: Receiving headers... %d%%" 100 "nnml: Receiving headers...done" nnheader-fold-continuation-lines] 5]) (nnoo-register-function (quote nnml-retrieve-headers)) (defalias 'nnml-open-server #[(server &optional defs) "\n # !ȏ ! # !!1 #\n $Ї" [nnoo-change-server nnml server defs file-exists-p nnml-directory nil (make-directory nnml-directory t) ((error)) nnml-close-server nnheader-report "Couldn't create directory: %s" file-directory-p file-truename "Not a directory: %s" "Opened server %s using directory %s" t] 5]) (nnoo-register-function (quote nnml-open-server)) (defalias 'nnml-request-article #[(id &optional newsgroup server buffer) " \n\" \n\f \n;K\n! i A @\"!Ai A!PiV!\nAiPw\n#!#!#!)#\n# !!B-" [nnml-possibly-change-directory newsgroup server buffer nntp-server-buffer nil file path gpath group-num id nnml-find-group-number nnheader-article-to-file-alist nnmail-group-pathname nnml-directory int-to-string nnml-article-file-alist nnml-current-directory nnheader-report nnml "No such article: %s" file-exists-p "No such file: %s" file-directory-p "File is a directory: %s" nnmail-find-file "Couldn't read file: %s" "Article %s retrieved" string-to-int file-name-nondirectory] 5]) (nnoo-register-function (quote nnml-request-article)) (defalias 'nnml-request-group #[(group &optional server dont-check) " \n\"\f\"!# ' #ˇ! \"A@@ #Z #A@ZT]@A %)" [nnml-possibly-change-directory group server nnheader-report nnml "Invalid group (no such directory)" file-directory-p nnml-current-directory "%s is not a directory" dont-check "Group %s selected" t nnmail-activate assoc nnml-group-alist active "No such group: %s" "Selected group %s" nnheader-insert "211 %d %d %d %s\n" 0] 7]) (nnoo-register-function (quote nnml-request-group)) (defalias 'nnml-request-scan #[(&optional group server) " $" [nil nnml-article-file-alist nnmail-get-new-mail nnml nnml-save-nov nnml-directory group] 5]) (nnoo-register-function (quote nnml-request-scan)) (defalias 'nnml-close-group #[(group &optional server) "‡" [nil nnml-article-file-alist t] 1]) (nnoo-register-function (quote nnml-close-group)) (defalias 'nnml-request-create-group #[(group &optional server) "! \f\"G BD\fB !  \" !?\"\")\f\")ԇ" [nnmail-activate nnml assoc group nnml-group-alist nil active 1 0 nnml-possibly-create-directory nnml-possibly-change-directory server nnheader-directory-articles nnml-current-directory articles apply min max nnmail-save-active nnml-active-file t] 5]) (nnoo-register-function (quote nnml-request-create-group)) (defalias 'nnml-request-list #[(&optional server) " ! )" [nnmail-find-file nnml-active-file nnmail-get-active nnml-group-alist] 2]) (nnoo-register-function (quote nnml-request-list)) (defalias 'nnml-request-newgroups #[(date &optional server) " !" [nnml-request-list server] 2]) (nnoo-register-function (quote nnml-request-newgroups)) (defalias 'nnml-request-list-newsgroups #[(&optional server) " !)" [nnmail-find-file nnml-newsgroups-file] 2]) (nnoo-register-function (quote nnml-request-list-newsgroups)) (defalias 'nnml-request-expire-articles #[(articles newsgroup &optional server force) " \n\"\f! \n \f!&\f!\fA@\f!P  !8 & \f\"  $ $܏\f \" \f\"&\f\nB\n&  \"A@!! \"!AT %\") !\n." [nnml-possibly-change-directory newsgroup server nnheader-directory-articles nnml-current-directory active-articles t is-old nil article rest mod-time number nnmail-activate nnml nnml-article-file-alist nnheader-article-to-file-alist articles int-to-string 5 file-attributes nnml-deletable-article-p nnmail-expired-article-p force nnml-inhibit-expiry nnheader-message "Deleting article %s in %s..." (funcall nnmail-delete-file-function article) ((file-error (byte-code " B‡" [number rest nil] 2))) delq nnml-nov-delete-article assoc nnml-group-alist active apply min nnmail-save-active nnml-active-file nnml-save-nov message ""] 6]) (nnoo-register-function (quote nnml-request-expire-articles)) (defalias 'nnml-request-move-article #[(article group server accept-form &optional last) "!\"\n!\f\"^\f#^\fq!!p! )^\"ԏ\f\"^ *" [get-buffer-create " *nnml move*" nil result buf nnml-possibly-change-directory group server nnml-article-file-alist nnheader-article-to-file-alist nnml-current-directory nnml-deletable-article-p article nnml-request-article insert-buffer-substring nntp-server-buffer eval accept-form kill-buffer (byte-code " !P!" [nnmail-delete-file-function nnml-current-directory int-to-string article] 4) ((file-error)) nnml-nov-delete-article last nnml-save-nov] 4]) (nnoo-register-function (quote nnml-request-move-article)) (defalias 'nnml-request-accept-article #[(group &optional server last) " \n\"  ;6!S DC @)S\f \"S S!S @S\f \"S )" [nnml-possibly-change-directory group server nnmail-check-syntax nil result nnmail-activate nnml "" nnmail-split-methods nnml-save-mail nnmail-save-active nnml-group-alist nnml-active-file last nnml-save-nov] 3]) (nnoo-register-function (quote nnml-request-accept-article)) (defalias 'nnml-request-replace-article #[(article group buffer) " !\nq ! !P \n ͏y \" !qeb\n!E\nP#Ry`y`|l!lԔԕ{!WlyURy ! )," [nnml-possibly-change-directory group buffer nnml-possibly-create-directory nnmail-insert-lines int-to-string article " " nil headers art chars (byte-code "ed !P!?%ȇ" [write-region nnml-current-directory int-to-string article nil nnheader-be-verbose 5 nomesg t] 7) ((error)) nnml-parse-head nnml-open-nov looking-at search-forward "\n" t 0 1 "[0-9]+ " string-to-int nnheader-insert-nov nnml-save-nov] 4]) (nnoo-register-function (quote nnml-request-replace-article)) (defalias 'nnml-request-delete-group #[(group &optional force server) " \n\" G \n!R# AA@  ! $ !*Տ \"\"\"Ƈ" [nnml-possibly-change-directory group server force directory-files nnml-current-directory t nnheader-numerical-short-files "\\|" regexp-quote nnml-nov-file-name "$" nil article articles file-writable-p nnheader-message 5 "Deleting article %s in %s..." nnmail-delete-file-function (delete-directory nnml-current-directory) ((error)) delq assoc nnml-group-alist nnml-current-group nnmail-save-active nnml-active-file] 7]) (nnoo-register-function (quote nnml-request-delete-group)) (defalias 'nnml-request-rename-group #[(group new-name &optional server) " \n\"\f!1Ǐ1  \"\n#\n \f \")χ" [nnml-possibly-change-directory group server file-writable-p nnml-current-directory nil (byte-code " \f\"!! ! \"\n! \f\"!\")ȇ" [file-name-directory directory-file-name nnmail-group-pathname new-name nnml-directory parent file-exists-p make-directory t rename-file nnml-current-directory] 6) ((error)) assoc nnml-group-alist entry new-name nnml-current-group nnmail-save-active nnml-active-file t] 4]) (nnoo-register-function (quote nnml-request-rename-group)) #@46 Say whether ARTICLE in GROUP can be deleted. (defalias 'nnml-deletable-article-p #[(group article) " \fA) \nP !)?) \n\"A@A =?*" [nil path file article nnml-article-file-alist nnml-current-directory file-writable-p nnmail-keep-last-article assoc group nnml-group-alist] 3 (#$ . 10793)]) (defalias 'nnml-find-group-number #[(id) "!qp!  \"! BS II@@=@@ \" !A! S@@ B+" [get-buffer-create " *nnml id*" buffer-disable-undo nnml-group-alist nil number alist nnml-find-id nnml-current-group id] 3]) (defalias 'nnml-find-id #[(group id) " \n \"\fPʼn!J!H\f#Hϊy`)$yӏ+" [erase-buffer nnmail-group-pathname group nnml-directory nnml-nov-file-name nil found number nov file-exists-p insert-file-contents search-forward id t search-backward " " 0 4 (byte-code "p!" [read] 2) ((error))] 5]) (defalias 'nnml-retrieve-headers-with-nov #[(articles &optional fetch-old) " ?\n@\nA\nA\f\n@ \fP ! q !\fB\fB͂\fP\fZ]ebmfp!VfySymq`|mp!Yyqym`d|)+" [gnus-nov-is-evil nnml-nov-is-evil articles nnml-current-directory nnml-nov-file-name nov last first file-exists-p nntp-server-buffer erase-buffer insert-file-contents fetch-old t 1 read 0] 5]) (defalias 'nnml-possibly-change-directory #[(group &optional server) "!! * \") \n)ˇ" [server nnml-server-opened nnml-open-server group nnmail-group-pathname nnml-directory pathname nnml-current-directory nnml-current-group nil nnml-article-file-alist t] 4]) (defalias 'nnml-possibly-create-directory #[(group) "\f \"\n!\n B\n!! 6 @!! @# A *" [nil dirs dir nnmail-group-pathname group nnml-directory file-directory-p file-name-directory directory-file-name make-directory nnheader-message 5 "Creating mail directory %s"] 5]) #@32 Called narrowed to an article. (defalias 'nnml-save-mail #[nil "!‰  !!!eb!+!y |@@!@@\"@A!P^#red!?l%)A5*\f! @@@A #A) +" [nnmail-article-group nnml-active-number nil headers chars group-art nnmail-insert-lines nnmail-insert-xref run-hooks nnmail-prepare-save-mail-hook nnml-prepare-save-mail-hook looking-at "From " replace-match "X-From-Line: " 1 first ga nnml-possibly-create-directory nnmail-group-pathname nnml-directory int-to-string file nnmail-crosspost-link-function t write-region nnheader-be-verbose 5 nomesg nnml-parse-head nnml-add-nov] 8 (#$ . 12720)]) #@43 Compute the next article number in GROUP. (defalias 'nnml-active-number #[(group) " \n\"A@> ! !! !\"4@@!@@B7B D\nB AT \" A!P!\\ ATD A)" [assoc group nnml-group-alist active nnml-possibly-create-directory nnml-possibly-change-directory nnml-article-file-alist sort nnheader-article-to-file-alist nnml-current-directory #[(a1 a2) "@ @W" [a1 a2] 2] last 1 0 file-exists-p nnmail-group-pathname nnml-directory int-to-string] 5 (#$ . 13400)]) #@36 Add a nov line for the GROUP base. (defalias 'nnml-add-nov #[(group article headers) " !qdb\n\fI\n!)" [nnml-open-nov group headers 0 article nnheader-insert-nov] 3 (#$ . 13897)]) (defalias 'nnml-header-value #[nil "`{" [0 nil] 2]) (put (quote nnml-header-value) (quote byte-optimizer) (quote byte-compile-inline-expand)) #@39 Parse the head of the current buffer. (defalias 'nnml-parse-head #[(chars &optional number) "eb`#dS}eb#&É#ed$!\fI\fI\f+" [search-forward "\n\n" nil t re-search-forward "\\( ?\n[ ]+\\)+" replace-match " " subst-char-in-region 9 32 nnheader-parse-head headers 6 chars 0 number] 6 (#$ . 14238)]) (defalias 'nnml-open-nov #[(group) " \n\"A' \"P!qp!) B\nB)" [assoc group nnml-nov-buffer-alist find-file-noselect nnmail-group-pathname nnml-directory nnml-nov-file-name buffer buffer-disable-undo] 4]) (defalias 'nnml-save-nov #[nil "0@A!(@Aq d %!p!A)" [nnml-nov-buffer-alist buffer-name buffer-modified-p write-region 1 buffer-file-name nil nomesg set-buffer-modified-p kill-buffer] 7]) #@49 Generate nov databases in all nnml directories. (defalias 'nnml-generate-nov-databases #[nil "!!\f!!! \n\"" [nnmail-activate nnml nnml-open-server nnoo-current-server "" expand-file-name nnml-directory nnml-generate-nov-databases-1 nnmail-save-active nnml-group-alist nnml-active-file] 3 (#$ . 15025) nil]) (defalias 'nnml-generate-nov-databases-1 #[(dir) " ! $ , A@ !ǝ ! ! * $\"\"I ! \")" [file-name-as-directory dir directory-files t nil dirs file-name-nondirectory ("." "..") file-directory-p nnml-generate-nov-databases-1 sort mapcar #[(name) " !" [string-to-int name] 2] "^[0-9]+$" < files nnml-generate-active-function nnml-generate-nov-file] 9]) (byte-code " B" [files current-load-list] 2) (defalias 'nnml-generate-active-info #[(dir) "\n! \"\f\"\"\f@ A( A  @)BDB)" [nnheader-file-to-group directory-file-name dir nnml-directory group delq assoc nnml-group-alist files f] 5]) (defalias 'nnml-generate-nov-file #[(dir files) " !\nP! \n qp! q !4 ! @!P\n! \n!eb#d`Z `S]} UedUeb @\" qdb !)~A9qd !%p!. " [file-name-as-directory dir nnml-nov-file-name nov get-buffer-create " *nov*" nov-buffer nil nov-line chars file headers buffer-disable-undo erase-buffer nntp-server-buffer file-exists-p nnmail-delete-file-function files file-directory-p int-to-string insert-file-contents search-forward "\n\n" t 1 0 nnml-parse-head nnheader-insert-nov write-region expand-file-name nomesg kill-buffer] 7]) (defalias 'nnml-nov-delete-article #[(group article) " !qeb !Q#ɔy`|)ȇ" [nnml-open-nov group re-search-forward "^" int-to-string article " " nil t 0 1] 4]) (provide (quote nnml))