;ELC
;;; Compiled
;;; in Emacs version 26.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 "\300\301!\210\302\303\304\305\306\307\306\310&\210\311\312\313\314\315\316\317\320\306\303& \210\311\321\322\323\315\316\317\320\306\303& \210\311\324\325\326\315\316\317\327\306\303& \210\311\330\331\332\315\316\317\333\306\303& \210\311\334\304\335\317\336\306\303&\210\311\337\340\341\317\342\315\316\306\303& \210\311\343\344\345\317\327\315\346\306\303& \210\311\347\304\350\315\351\317\352\306\303& \210\311\353\354\355\315\351\317\356\306\303& \210\311\357\360\361\315\351\317\362\306\303& \207" [require mail-utils custom-declare-group pop3 nil "Post Office Protocol." :group mail mail-source custom-declare-variable pop3-maildrop (or (user-login-name) (getenv "LOGNAME") (getenv "USER")) "POP3 maildrop." :version "22.1" :type string pop3-mailhost (or (getenv "MAILHOST") "pop3") "POP3 mailhost." pop3-port 110 "POP3 port." number pop3-password-required t "Non-nil if a password is required when connecting to POP server." boolean pop3-password "Password to use when connecting to POP server." (choice (const nil) string) pop3-authentication-scheme 'pass "POP3 authentication scheme.\nDefaults to `pass', for the standard USER/PASS authentication. The other\nvalid value is `apop'." (choice (const :tag "Normal user/password" pass) (const :tag "APOP" apop)) pop3-stream-length 100 "How many messages should be requested at one time.\nThe lower the number, the more latency-sensitive the fetching\nwill be. If your pop3 server doesn't support streaming at all,\nset this to 1." "24.1" pop3-leave-mail-on-server "Non-nil if the mail is to be left on the POP server after fetching.\nMails once fetched will never be fetched again by the UIDL control.\n\nIf this is neither nil nor a number, all mails will be left on the\nserver. If this is a number, leave mails on the server for this many\ndays since you first checked new mails. If this is nil, mails will be\ndeleted on the server right after fetching.\n\nGnus users should use the `:leave' keyword in a mail source to direct\nthe behavior per server, rather than directly modifying this value.\n\nNote that POP servers maintain no state information between sessions,\nso what the client believes is there and what is actually there may\nnot match up. If they do not, then you may get duplicate mails or\nthe whole thing can fall apart and leave you with a corrupt mailbox." "24.4" (choice (const :tag "Don't leave mails" nil) (const :tag "Leave all mails" t) (number :tag "Leave mails for this many days" :value 14)) pop3-uidl-file "~/.pop3-uidl" "File used to save UIDL." file pop3-uidl-file-backup '(0 9) "How to backup the UIDL file `pop3-uidl-file' when updating.\nIf it is a list of numbers, the first one binds `kept-old-versions' and\nthe other binds `kept-new-versions' to keep number of oldest and newest\nversions. Otherwise, the value binds `version-control' (which see).\n\nNote: Backup will take place whenever you check new mails on a server.\nSo, you may lose the backup files having been saved before a trouble\nif you set it so as to make too few backups whereas you have access to\nmany servers." (choice (group :tag "Keep versions" :format "\n%v" :indent 3 (number :tag "oldest") (number :tag "newest")) (sexp :format "%v" :match (lambda (widget value) (condition-case nil (not (and (numberp (car value)) (numberp (car (cdr value))))) (error t)))))] 10)
#@94 Timestamp returned when initially connected to the POP server.
Used for APOP authentication.
(defvar pop3-timestamp nil (#$ . 3762))
(defvar pop3-read-point nil)
(defvar pop3-debug nil)
(byte-code "\301\302!\203 \303\304!\203 \305\306\302\"\210\202' \307\310>\203 \311\202 \312!\210\305\306\313\"\210\301\207" [system-type fboundp nnheader-accept-process-output boundp nnheader-read-timeout defalias pop3-accept-process-output (lambda (#1=#:def-tmp-var) (defvar pop3-read-timeout #1# "How long pop3 should wait between checking for the end of output.\nShorter values mean quicker response, but are more CPU intensive.")) (windows-nt cygwin) 1.0 0.01 #[(process) "\302\303 !\303 \303 !Z\304_!#\207" [process pop3-read-timeout accept-process-output truncate 1000] 7]] 3)
#@80 Transfer contents of a maildrop to the specified FILE.
Use streaming commands.
(defalias 'pop3-movemail #[(file) "\306 \"\307\211\211\211\310!\210\203' \311!\211A@
@\202U \312!\211@\313W\203K T
BT\211\2026 *
\237A@)
\203| r\314!q\210\315\316
\f$\210\317
\"\210\204{ \315\320
\307$\210)\203\223 \321!\322!\210\203\263 \323 \210\202\263 \322!\210\324 \325\325\n\"A\"\211\203\262 \307\241\210\323 \210)-\326\207" [pop3-mailhost pop3-port pop3-uidl-saved pop3-uidl total-size messages pop3-open-server nil pop3-logon pop3-uidl-stat pop3-stat 0 process-buffer pop3-send-streaming-command "RETR" pop3-write-to-file "DELE" pop3-uidl-dele pop3-quit pop3-uidl-save pop3-uidl-load assoc t process pop3-leave-mail-on-server size i --dotimes-limit-- file pop3-maildrop elt] 6 (#$ . 4543)])
(defalias 'pop3-send-streaming-command #[(process command messages total-size) "\306 \210G\307e\310\203; \311
\312\313
\211A\242#\"\210\246\310U\2035 \314
\n$ \\T\202\f \314
\f Z\n$,\207" [messages waited-for start-point i count process erase-buffer 1 0 process-send-string format "%s %d
\n" pop3-wait-for-messages command pop3-stream-length total-size] 7])
(defalias 'pop3-wait-for-messages #[(process count total-size start-point) "\305V\203{ b\210\306\307\310\311#\203 \n\203% \306\312\310\311#\204% \306\313\310\311#\203- S`\202 \314!\315>\2049 \316\317!\210\n\203t \305eb\210\306\320\310\311#\203a \321\f`[\306\312\310\322#\203[ \305\224\202\\ `#\202B \323\324\325\f\326\245!\325\f\327_\n\245\330_!#\210)\331!\210\202 \207" [count start-point total-size process size 0 re-search-forward "^\\+OK" nil t "^\\.
?\n" "^-ERR " process-status (open run) error "pop3 process died" "^\\+OK.*\n" + move message "pop3 retrieved %dKB (%d%%)" truncate 1000 1.0 100 pop3-accept-process-output] 7])
(defalias 'pop3-write-to-file #[(file messages) "pe\306\211\211\307\310!r
q\210\311\216pr\fq\210eb\210\312\313\306\314#\203p \315y\210`\312\316\306\314#\2039 `\317y\210`rq\210db\210`\320\f\n #\210\321`\"\210db\210\322`\"\210\203i \323\211A\242\"\210db\210*\202 )\324eb\210l\203 \325\315!\210\326ed\306\327%. \207" [temp-buffer end beg start pop-buffer #1=#:temp-buffer nil generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1# buffer-name kill-buffer] 2] re-search-forward "^\\+OK" t 1 "^\\.
?\n" -1 insert-buffer-substring pop3-clean-region pop3-munge-message-separator pop3-uidl-add-xheader binary delete-char write-region nomesg hstart pop3-leave-mail-on-server messages coding-system-for-write file] 6])
(defalias 'pop3-logon #[(process) " \203\f \306\307\n!!\210\203 \204 \310\311\312\f\"!
\313\267\2023 \314\n\f\"\2026 \315\n\f\"\210\316\n!\2026 \317\320!)\207" [pop3-password pop3-debug process pop3-password-required pop3-maildrop pop3-authentication-scheme switch-to-buffer process-buffer read-passwd format "Password for %s: " #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (apop 33 pass 40)) pop3-apop pop3-user pop3-pass error "Invalid POP3 authentication scheme"] 4])
#@48 Return the number of messages in the maildrop.
(defalias 'pop3-get-message-count #[nil "\306 \"\307\f
\203 \310\311\n!!\210\203$ \f\204$ \312\313\314\"!\315\267\202A \316\n\"\210\202E \317\n\"\210\320\n!\210\202E \321\322!\210\323\n!@\324\n!\210+\207" [pop3-mailhost pop3-port process message-count pop3-password pop3-debug pop3-open-server nil switch-to-buffer process-buffer read-passwd format "Password for %s: " #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (apop 43 pass 52)) pop3-apop pop3-user pop3-pass error "Invalid POP3 authentication scheme" pop3-stat pop3-quit pop3-password-required pop3-maildrop pop3-authentication-scheme] 4 (#$ . 7691)])
#@57 Return a list of unread message numbers and total size.
(defalias 'pop3-uidl-stat #[(process) "\306\307\"\210\310\211\211\3111 \312!\210\3130\202! \314\f!)\202\344 \203\344
\310\211#$%r\315!q\210\316\317\310\313#\204R \320!\321>\204G \322\323!\210\324!\210%b\210\2023 \325 \310&\326y\210`%Y\203s \327\330!\203X \331\332!&B&\202X &\205\340 \333 '\334(\334)'\"A\"A$&G\211*\335V\203\257 *S&8$\235\204\246 *\nB*S\211*\202\220 )\n\205\340 \336!#\335\n\310+\211,\203\334 ,@+ +#\236A\\,A\211,\204\305 *\n D,\202\337\340)#\210\341\332!\210\342!\211@\335*-*-W\203*T\nB*T\211*\202\374 * \n\237\240\210 +\207" [process size messages err code pop3-read-point pop3-send-command "UIDL" nil (error) pop3-read-response t error-message-string process-buffer re-search-forward "^\\.
\n" process-status (open run) error "pop3 server closed the connection" pop3-accept-process-output point-marker -1 looking-at "[0-9]+ \\([^\n
]+\\)" match-string 1 pop3-uidl-load assoc 0 pop3-list message "%s doesn't support UIDL (%s), so we try a regressive way..." sit-for pop3-stat list saved start pop3-uidl pop3-uidl-saved pop3-maildrop pop3-mailhost i msg --dolist-tail-- --dotimes-limit--] 6 (#$ . 8412)])
#@124 Delete messages according to `pop3-leave-mail-on-server'.
Return non-nil if it is necessary to update the local UIDL file.
(defalias 'pop3-uidl-dele #[(process) "\306 \307 \n\"\307\fA\"\310\211\310\211\310\211A\310\241\210\203^
\203^ GS\211\311Y\203j 8\211
A\235\204U BBS\211\2025 \203j \312\313\"\203r \314\247\205\202 @\315_A@\\\316\245
GS\211\311V\203\345 S
8\211\235\203\330
8\203\307 @\317_A@\\\316\245ZV\203\307 \314B\202\333 BB\202\333 \314\320Z\211\202\211
\203\361
\241\210\202\203\321!\fBC\241\210\202 \fBD\211\n\235\203\n\210\202\322\nC\")\203Z\310G\211\311V\203LS8\235\203CBS\211\202+\203Z\323\324\310$\210. \207" [ctime pop3-mailhost pop3-uidl-saved srvr pop3-maildrop saved current-time assoc nil 0 mapcan #[(elt) " D\207" [elt ctime] 2] t 65536.0 86400 65536.0 2 last append pop3-send-streaming-command "DELE" i uidl mod new tstamp dele pop3-uidl pop3-leave-mail-on-server #1=#:x process] 6 (#$ . 9662)])
#@18 Load saved UIDL.
(defalias 'pop3-uidl-load #[nil "\303!\2052 \304\305!r q\210\306\216\3071\" |