;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\302\303!\210\302\304!\210\302\305!\210\302\306!\210\302\307!\210\310\236\203'\310\236A\311\312\313\"\240\210\2022\310\311\312\313\"\313\211FB\310 \236\204>\310\314D B\313\207" [nnoo-definition-alist nnoo-state-alist require nnheader message nnmail nnoo gnus-range nnmbox mapcar list nil "*internal-non-initialized-backend*"] 4) #@133 The name of the mail box file in the user's home directory. This is a Gnus server variable. See Info node `(gnus)Select Methods'. (defvar nnmbox-mbox-file (expand-file-name "~/mbox") (#$ . 758)) (nnoo-define 'nnmbox-mbox-file nil) #@119 The name of the active file for the mail box. This is a Gnus server variable. See Info node `(gnus)Select Methods'. (defvar nnmbox-active-file (expand-file-name "~/.mbox-active") (#$ . 998)) (nnoo-define 'nnmbox-active-file nil) #@146 If non-nil, nnmbox will check the incoming mail file and split the mail. This is a Gnus server variable. See Info node `(gnus)Select Methods'. (defvar nnmbox-get-new-mail t (#$ . 1236)) (nnoo-define 'nnmbox-get-new-mail nil) #@120 Hook run narrowed to an article before saving. This is a Gnus server variable. See Info node `(gnus)Select Methods'. (defvar nnmbox-prepare-save-mail-hook nil (#$ . 1470)) (nnoo-define 'nnmbox-prepare-save-mail-hook nil) #@17 nnmbox version. (defconst nnmbox-version "nnmbox 1.0" (#$ . 1699)) #@110 Current nnmbox news group directory. This is a Gnus server variable. See Info node `(gnus)Select Methods'. (defvar nnmbox-current-group nil (#$ . 1773)) (nnoo-define 'nnmbox-current-group nil) (defvar nnmbox-mbox-buffer nil) (defvar nnmbox-status-string "") (nnoo-define 'nnmbox-status-string nil) (defvar nnmbox-group-alist nil) (nnoo-define 'nnmbox-group-alist nil) (defvar nnmbox-active-timestamp nil) (nnoo-define 'nnmbox-active-timestamp nil) (defvar nnmbox-file-coding-system mm-binary-coding-system) (nnoo-define 'nnmbox-file-coding-system nil) (defvar nnmbox-file-coding-system-for-write nil) (nnoo-define 'nnmbox-file-coding-system-for-write nil) (defvar nnmbox-active-file-coding-system mm-binary-coding-system) (nnoo-define 'nnmbox-active-file-coding-system nil) (defvar nnmbox-active-file-coding-system-for-write nil) (nnoo-define 'nnmbox-active-file-coding-system-for-write nil) (defvar nnmbox-group-building-active-articles nil) (defvar nnmbox-group-active-articles nil) (nnoo-define-basics-1 'nnmbox) (defalias 'nnmbox-retrieve-headers #[(sequence &optional newsgroup server fetch-old) "rq\210\306 \210 G\307\310\211\211\311\"\210 \203\202 @ q\210\312\f!\203W\212\313\314!P\310\315#\210`)\316\317\310\315#\210`Sq\210\320\321\f\"c\210\322 \n#\210db\210\323c\210 A T\"\247\203\"V\203 \324\246\307U\203\325\326\327\330 \331_\"#\210\202\"\247\203\225\"V\203\225\325\326\332\"\210q\210\333 \210.\334\207" [nntp-server-buffer sequence stop start article count erase-buffer 0 nil nnmbox-possibly-change-newsgroup nnmbox-find-article re-search-backward "^" t search-forward "\n\n" format "221 %d Article retrieved.\n" insert-buffer-substring ".\n" 20 nnheader-message 5 "nnmbox: Receiving headers... %d%%" floor 100.0 "nnmbox: Receiving headers...done" nnheader-fold-continuation-lines headers number newsgroup server nnmbox-mbox-buffer message-unix-mail-delimiter nnmail-large-newsgroup] 6]) (nnoo-register-function 'nnmbox-retrieve-headers) (defalias 'nnmbox-open-server #[(server &optional defs) "\303\304 #\210\305 \210\306\n!\204\307 \210\310\304\311\n#\207\312\n!\203'\307 \210\310\304\313\n#\207\310\304\314\n$\210\315\207" [server defs nnmbox-mbox-file nnoo-change-server nnmbox nnmbox-create-mbox file-exists-p nnmbox-close-server nnheader-report "No such file: %s" file-directory-p "Not a regular file: %s" "Opened server %s using mbox %s" t] 5]) (nnoo-register-function 'nnmbox-open-server) (defalias 'nnmbox-close-server #[(&optional server _defs) "\302!\203\n\303!\210\304\305 \"\210\306\207" [nnmbox-mbox-buffer server buffer-live-p kill-buffer nnoo-close-server nnmbox t] 3]) (nnoo-register-function 'nnmbox-close-server) (defalias 'nnmbox-server-opened #[(&optional server) "\305\306 !\n\203\307\310\n#\202\232*\205\"\311 !\205\"\311\f!\207" [server backend nnoo-parent-backend nnmbox-mbox-buffer nntp-server-buffer nnmbox nnoo-current-server format "%s+%s" buffer-live-p] 5]) (nnoo-register-function 'nnmbox-server-opened) (defalias 'nnmbox-request-article #[(article &optional newsgroup server buffer) "\306 \"\210r\nq\210\212\307 !\205o\310\211\311\312P\310\313#\210`\314y\210\315\312P\310\316#\2032\317\224\2023`\206;\211q\210\320 \210\321\n \f#\210eb\210\322\323!\203_\324\325!\210\326c\210\314y\210\202L \247\203k B\202n\327\310!+*\207" [newsgroup server nnmbox-mbox-buffer article stop start nnmbox-possibly-change-newsgroup nnmbox-find-article nil re-search-backward "^" t 1 re-search-forward move 0 erase-buffer insert-buffer-substring looking-at "From " delete-char 5 "X-From-Line: " nnmbox-article-group-number message-unix-mail-delimiter buffer nntp-server-buffer nnmbox-current-group] 5]) (nnoo-register-function 'nnmbox-request-article) (defalias 'nnmbox-request-group #[(group &optional server dont-check info) "\305\306\"\210\307 \n\"A@\211\203\305 \"\204\310\311\312 #\202C\f\203/\310\311\313 #\210\314\315!\202C\310\311\313 #\210\314\316 A @ZT @ A %)\207" [server group nnmbox-group-alist active dont-check nnmbox-possibly-change-newsgroup nil assoc nnheader-report nnmbox "No such group: %s" "Selected group %s" nnheader-insert "" "211 %d %d %d %s\n"] 7]) (nnoo-register-function 'nnmbox-request-group) (defalias 'nnmbox-save-buffer #[nil "\206 \303 )\207" [nnmbox-file-coding-system-for-write nnmbox-file-coding-system coding-system-for-write save-buffer] 1]) (defalias 'nnmbox-save-active #[(group-alist active-file) "\206 \305 \f\")\207" [nnmbox-active-file-coding-system-for-write nnmbox-active-file-coding-system nnmail-active-file-coding-system group-alist active-file nnmail-save-active] 3]) (defalias 'nnmbox-request-scan #[(&optional group server) "\303 \"\210\304 \210\305\306\307\310\n!\311%\207" [group server nnmbox-mbox-file nnmbox-possibly-change-newsgroup nnmbox-read-mbox nnmail-get-new-mail nnmbox #[nil "rq\210\301 )\207" [nnmbox-mbox-buffer nnmbox-save-buffer] 1] file-name-directory #[nil "\212p q\210db\210\304!\210*\305\n \"\207" [in-buf nnmbox-mbox-buffer nnmbox-group-alist nnmbox-active-file insert-buffer-substring nnmbox-save-active] 3]] 6]) (nnoo-register-function 'nnmbox-request-scan) (defalias 'nnmbox-close-group #[(group &optional server) "\300\207" [t] 1]) (nnoo-register-function 'nnmbox-close-group) (defalias 'nnmbox-request-create-group #[(group &optional server args) "\303\304!\210\305 \"\204\306\307BD B\310 \n\"\210\311\207" [group nnmbox-group-alist nnmbox-active-file nnmail-activate nnmbox assoc 1 0 nnmbox-save-active t] 3]) (nnoo-register-function 'nnmbox-request-create-group) (defalias 'nnmbox-request-list #[(&optional server) "\212\304\n!\210)\305 )\306\207" [nnmbox-active-file-coding-system nnmail-file-coding-system nnmbox-active-file nnmbox-group-alist nnmail-find-file nnmail-get-active t] 2]) (nnoo-register-function 'nnmbox-request-list) (defalias 'nnmbox-request-newgroups #[(date &optional server) "\301!\207" [server nnmbox-request-list] 2]) (nnoo-register-function 'nnmbox-request-newgroups) (defalias 'nnmbox-request-list-newsgroups #[(&optional server) "\300\301\302\"\207" [nnheader-report nnmbox "LIST NEWSGROUPS is not implemented."] 3]) (nnoo-register-function 'nnmbox-request-list-newsgroups) (defalias 'nnmbox-request-expire-articles #[(articles newsgroup &optional server force) "\306 \"\210\307\310\311\312!\210r\fq\210 \203r\n\203r\313 @!\203k\314`\315 {#\211\203f\316=\204X\317\320!rq\210\321\216\322 @ p$\210\310\323\"\210,\306 \"\210\324\325\326 @$\210\327 \210\202k @ B A\211\204\330 \210\331\"A@ \313 @!\204\232 @ AX\203\232 \211@T\240\210\202~)\332!\"\210 \244+\207" [newsgroup server is-old rest nnmbox-mbox-buffer articles nnmbox-possibly-change-newsgroup t nil nnmail-activate nnmbox nnmbox-find-article nnmail-expired-article-p line-end-position delete generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1=#:temp-buffer buffer-name kill-buffer] 2] nnmbox-request-article nnmail-expiry-target-group nnheader-message 5 "Deleting article %d in %s..." nnmbox-delete-mail nnmbox-save-buffer assoc nnmbox-save-active force nnmail-expiry-target #1# nnml-current-directory nnmbox-group-alist active nnmbox-active-file] 6]) (nnoo-register-function 'nnmbox-request-expire-articles) (defalias 'nnmbox-request-move-article #[(article group server accept-form &optional last move-is-internal) "\306\307!\310\311\n \f#\203ar q\210\312 \210\313 !\210eb\210\314\315\212\316\317\310\320#\210`)\320#\2037\321 \322y\210`|\210\202\323!\324 !\210)\203a\212\325 \f\"\210q\210\326\n!\203X\327 \210\203`\330 \210)*\207" [result buf article group server nntp-server-buffer get-buffer-create " *nnmbox move*" nil nnmbox-request-article erase-buffer insert-buffer-substring re-search-forward "^X-Gnus-Newsgroup:" search-forward "\n\n" t point-at-bol 1 eval kill-buffer nnmbox-possibly-change-newsgroup nnmbox-find-article nnmbox-delete-mail nnmbox-save-buffer accept-form nnmbox-mbox-buffer last] 6]) (nnoo-register-function 'nnmbox-request-move-article) (defalias 'nnmbox-request-accept-article #[(group &optional server last) "\306 \"\210\307 \210p\310\211\311\312!\203\330\313\314!r q\210\315\216\316\f!\210eb\210\317\320.P!\2038\321\322!\210\322y\210\202O\317\323!\203H\324\325!\210\322y\210\202O\326\327 \330\261\210`\331\332\310\333#\203]`S\202^`}\210\334\335\310\336#\203r`\322y\210`|\210\202`/\203\204\337\340\341!\340\342!\340\343!$\210~\210;\203\224\344!BC\202\227\345\344!\211\204\250\346\347!\203\250\350\211\202\256\351 !@\211\352 +\203\330r0q\210db\210\nc\2101\203\327/\203\315\353 \210\35423\"\210\355 \210) +\207" [group server cont result buf #1=#:temp-buffer nnmbox-possibly-change-newsgroup nnmail-check-syntax nil nnmail-activate nnmbox generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1# buffer-name kill-buffer] 2] insert-buffer-substring looking-at ">" delete-char 1 "X-From-Line: " replace-match "From " "From nobody " current-time-string "\n" search-forward "\n\n" move re-search-backward "^X-Gnus-Newsgroup: " t nnmail-cache-insert message-fetch-field "message-id" "subject" "from" nnmbox-active-number nnmail-article-group yes-or-no-p "Moved to `junk' group; delete article? " junk nnmbox-save-mail buffer-string nnmail-cache-close nnmbox-save-active nnmbox-save-buffer message-unix-mail-delimiter nnmail-cache-accepted-message-ids nnmbox-mbox-buffer last nnmbox-group-alist nnmbox-active-file] 7]) (nnoo-register-function 'nnmbox-request-accept-article) (defalias 'nnmbox-request-replace-article #[(article group buffer) "\306!\210r q\210\307\n!\205X\310\311\211\"\210\312\313!r q\210\314\216\315\f!\210eb\210\316\317!\2031`\320y\210`|\210\321\322 P\323\311#\203E\324\224b\210\325c\210\2021db\210n\204O\326c\210\327 +c\210\330 \210\311)\207" [group nnmbox-mbox-buffer article #1=#:temp-buffer buffer message-unix-mail-delimiter nnmbox-possibly-change-newsgroup nnmbox-find-article nnmbox-delete-mail t generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1# buffer-name kill-buffer] 2] insert-buffer-substring looking-at "X-From-Line:" 1 re-search-forward "^" nil 0 ">" "\n" buffer-string nnmbox-save-buffer] 4]) (nnoo-register-function 'nnmbox-request-replace-article) (defalias 'nnmbox-request-delete-group #[(group &optional force server) "\306 \"\210\n\2031r q\210eb\210\307\f\310Q\311\312\311\313#\203)\313\314 \210\202 \2030\315 \210+\316\317\"\"\311\320\"\210\313\207" [group server force nnmbox-mbox-buffer nnmbox-current-group found nnmbox-possibly-change-newsgroup "\nX-Gnus-Newsgroup: " ":" nil search-forward t nnmbox-delete-mail nnmbox-save-buffer delq assoc nnmbox-save-active ident nnmbox-group-alist nnmbox-active-file] 4]) (nnoo-register-function 'nnmbox-request-delete-group) (defalias 'nnmbox-request-rename-group #[(group new-name &optional server) "\306 \"\210r\nq\210eb\210\307 \310Q\307\f\310Q\311\312\311\313#\203/\314\313\211#\210\313\202 \2036\315 \210,\316\"\211\203G\f\240\210)\316\"\211\203X\f\240\210\311\317\"\210)\313\207" [group server nnmbox-mbox-buffer nnmbox-current-group new-name found nnmbox-possibly-change-newsgroup "\nX-Gnus-Newsgroup: " ":" nil search-forward t replace-match nnmbox-save-buffer assoc nnmbox-save-active new-ident ident nnmbox-group-active-articles entry nnmbox-group-alist nnmbox-active-file] 5]) (nnoo-register-function 'nnmbox-request-rename-group) (defalias 'nnmbox-delete-mail #[(&optional force leave-delim) "\204\n\303\304\305!!\210\204\306 \307y\210`|\210\212\214\310\311 P\312\305#\210\n\203+\307y\210`\202-\313\224\307y\210\314\311 P\312\305#\203?\313\224\206@d}\210eb\210\204Y\314\315\312\305#\203Y\316\317\312\305#\205\\ed|*\207" [force message-unix-mail-delimiter leave-delim nnmbox-record-deleted-article nnmbox-article-group-number t point-at-bol 1 re-search-backward "^" nil 0 re-search-forward "^X-Gnus-Newsgroup: " search-backward "\n\n"] 5]) (defalias 'nnmbox-possibly-change-newsgroup #[(newsgroup &optional server) "\203\305!\204\306!\210\307 !\204\310 \210\n\204\311\312!\210 \203.\313 \n\"\205/ \211\207\314\207" [server nnmbox-mbox-buffer nnmbox-group-alist newsgroup nnmbox-current-group nnmbox-server-opened nnmbox-open-server buffer-live-p nnmbox-read-mbox nnmail-activate nnmbox assoc t] 3]) (defalias 'nnmbox-article-string #[(article) "\247\203\302 \303\304!\305\260\207\306P\207" [article nnmbox-current-group "\nX-Gnus-Newsgroup: " ":" int-to-string " " "\nMessage-ID: "] 5]) (defalias 'nnmbox-article-group-number #[(this-line) "\212\203 \301 \210\202eb\210\302\303\304\305#\205#\306\224\306\225{\307\310\224\310\225{!B)\207" [this-line beginning-of-line re-search-forward "^X-Gnus-Newsgroup: +\\([^:]+\\):\\([0-9]+\\) " nil t 1 string-to-number 2] 4]) #@55 Return non-nil if POS is in the header of an article. (defalias 'nnmbox-in-header-p #[(pos) "\212b\210\302\303 P\304\305#\210\306\307\304\305#\210`W)\207" [pos message-unix-mail-delimiter re-search-backward "^" nil t search-forward "\n\n"] 4 (#$ . 14618)]) #@62 Leaves point on the relevant X-Gnus-Newsgroup line if found. (defalias 'nnmbox-find-article #[(article) "\247\205 \303!??\205:\304!\305\306\n\305\307#\203!\310`!\2069eb\210 \2048\306\n\305\307#\2038\310`!\211\203( *\207" [article found art-string nnmbox-is-article-active-p nnmbox-article-string nil search-forward t nnmbox-in-header-p] 5 (#$ . 14883)]) (defalias 'nnmbox-record-active-article #[(group-art) "@A\306 \"\206 C B\211@ \204$\f\307\fA\nC\"\241\202U\n\fA>\2036\310\f!\210\311\312 \n#\210\fA@\203O\n\fA@W\203O\310\f!\210\311\313 \n#\210\f\n\fAB\241+\207" [group-art group article nnmbox-group-active-articles entry nnmbox-group-building-active-articles assoc gnus-add-to-range switch-to-buffer error "Article %s:%d already exists!" "Article %s:%d out of order" nnmbox-mbox-buffer] 5]) (defalias 'nnmbox-record-deleted-article #[(group-art) "@A\305 \"\206 C B\211@\211\306\fA\nC\"\241+\207" [group-art group article nnmbox-group-active-articles entry assoc gnus-remove-from-range] 5]) (defalias 'nnmbox-is-article-active-p #[(article) "\303\304 \n\"A\"\207" [article nnmbox-current-group nnmbox-group-active-articles gnus-member-of-range assoc] 5]) #@32 Called narrowed to an article. (defalias 'nnmbox-save-mail #[(group-art) "\304Peb\210\305 !\203\306y\210\202\307\310 \311\261\210\312 \313\314#\203,\315\224b\210\316c\210\202)db\210n\2047\311c\210\317 \210\320\n!\210\321\n!\210\n\211\203T\322 @!\210 A\211\204H)\323\324!\210\323\325!\210\n\207" [message-unix-mail-delimiter delim group-art alist "^" looking-at 1 "From nobody " current-time-string "\n" re-search-forward nil t 0 ">" nnmail-insert-lines nnmail-insert-xref nnmbox-insert-newsgroup-line nnmbox-record-active-article run-hooks nnmail-prepare-save-mail-hook nnmbox-prepare-save-mail-hook] 5 (#$ . 16086)]) (defalias 'nnmbox-insert-newsgroup-line #[(group-art) "\212eb\210\301\302\303\304#\203'\305u\210\203'\306\307@@@A\310 $c\210A\211\204)\304\207" [group-art search-forward "\n\n" nil t -1 format "X-Gnus-Newsgroup: %s:%d %s\n" current-time-string] 6]) (defalias 'nnmbox-active-number #[(group) "\303 \"A@\211\203\n\211AT\241\210\202\304\211B\211D B\nA)\207" [group nnmbox-group-alist active assoc 1] 4]) (defalias 'nnmbox-create-mbox #[nil "\305!?\205! \206\f\n\306! \203\307 !\210\310ee\311\312%*\207" [nnmbox-mbox-file nnmbox-file-coding-system-for-write nnmbox-file-coding-system dir nnmail-file-coding-system file-exists-p file-name-directory gnus-make-directory nnmail-write-region t nomesg] 6]) (defalias 'nnmbox-read-mbox #[nil "\306\307!\210\310 \210\311!\205rq\210\312 \313 !U)?\2053\212\314\nP \315\316\211\211\211()*+,-.\317 \315\211#)\211q\210\320 \210\321 \210\322 \210+\203\203db\210\323\324\325+@@\"\316\315#\203z\326\327\224\327\225{!\211+@A@AV\203z+@A@\f\241\210+A\211+\204Neb\210\316/\330,\316\315#\203\331\224)\212\332\333\316\315#\210`\330,\316\315#\203\255\331\224\206\256d()\332\334 \315#\203\320\335\336\315!!\210\332\334 \315#\203\f\335\336\315!!\210\202\277\212\214)(}\210\330\337 \315#\203\316+\330\340 \315#\203\374\341\327!\326\341\342!!B+B+\202\343\343+!\210)\202 \344\345\346!!\210*(b\210\202\211/\211+\2051+@\347+@A\237!\241\210+A\211+\204\316.\207" [nnmbox-mbox-buffer nnmbox-mbox-file message-unix-mail-delimiter nnmbox-group-alist number end-header nnmail-activate nnmbox nnmbox-create-mbox buffer-live-p buffer-size nnheader-file-size "^" t nil nnheader-find-file-noselect mm-enable-multibyte buffer-disable-undo gnus-add-buffer re-search-backward format "^X-Gnus-Newsgroup: %s:\\([0-9]+\\) " string-to-number 1 re-search-forward 0 search-forward "\n\n" "\nX-Gnus-Newsgroup: " nnmbox-record-active-article nnmbox-article-group-number "\nXref: [^ ]+" " \\([^:]+\\):\\([0-9]+\\)" match-string 2 nnmbox-insert-newsgroup-line nnmbox-save-mail nnmail-article-group nnmbox-active-number gnus-compress-sequence end start nnmbox-group-building-active-articles alist delim nnmbox-file-coding-system nnheader-file-coding-system nnmbox-group-active-articles] 8]) (provide 'nnmbox)