;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 "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\306\307\310\311\312\301%\210\313\314\310\315\312\307\316\317&\210\313\320\321\322\312\307\316\323&\207" [require gnus gnus-int nnheader nntp nnmail custom-declare-group gnus-demon nil "Demonic behavior." :group custom-declare-variable gnus-demon-handlers "Alist of daemonic handlers to be run at intervals.\nEach handler is a list on the form\n\n(FUNCTION TIME IDLE)\n\nFUNCTION is the function to be called. TIME is the number of\n`gnus-demon-timestep's between each call.\nIf nil, never call. If t, call each `gnus-demon-timestep'.\n\nIf IDLE is t, only call each time Emacs has been idle for TIME.\nIf IDLE is a number, only call when Emacs has been idle more than\nthis number of `gnus-demon-timestep's.\nIf IDLE is nil, don't care about idleness.\nIf IDLE is a number and TIME is nil, then call once each time\nEmacs has been idle for IDLE `gnus-demon-timestep's." :type (repeat (list function (choice :tag "Time" (const :tag "never" nil) (const :tag "one" t) (integer :tag "steps" 1)) (choice :tag "Idle" (const :tag "don't care" nil) (const :tag "for a while" t) (integer :tag "steps" 1)))) gnus-demon-timestep 60 "Number of seconds in each demon timestep." integer] 8) #@41 Plist of idle timers which are running. (defvar gnus-demon-timers nil (#$ . 1667)) #@47 If non-nil, no daemonic function will be run. (defvar gnus-inhibit-demon nil (#$ . 1756)) #@54 Add the handler FUNCTION to be run at TIME and IDLE. (defalias 'gnus-demon-add-handler #[(function time idle) "\304!\210 \nE B\305 \207" [function time idle gnus-demon-handlers gnus-demon-remove-handler gnus-demon-init] 3 (#$ . 1852)]) #@56 Remove the handler FUNCTION from the list of handlers. (defalias 'gnus-demon-remove-handler #[(function &optional no-init) "\303 \236 \"\n?\205\304 \207" [function gnus-demon-handlers no-init delq gnus-demon-init] 3 (#$ . 2097)]) #@56 Return the number of seconds since when Emacs is idle. (defalias 'gnus-demon-idle-since #[nil "\300\301 \206\302!\207" [float-time current-idle-time 0] 2 (#$ . 2337)]) #@214 Run FUNC if Emacs has been idle for longer than IDLE seconds. If not, and a TIME is given, restart a new idle timer, so FUNC can be called at the next opportunity. Such a special idle run is marked with SPECIAL. (defalias 'gnus-demon-run-callback #[(func &optional idle time special) "?\205p\3062p \307=\203\310\n\203&\311 \f\312 \211\313\f &#\202P \203P \314 V\203P \203K\315\316 \f\"!\210\311 \f\317 \320\313\f \307&#\321\306\320\"\210\3221h\320\3231a\f 0\202c\210\320)0\202o\210\307\324\325!0\207" [gnus-inhibit-demon idle special gnus-demon-timers func time --cl-block-run-callback-- t 0.001 plist-put run-with-timer gnus-demon-run-callback gnus-demon-idle-since cancel-timer plist-get run-with-idle-timer nil throw (quit) (error) eval (ignore nil) inhibit-quit quit-flag] 11 (#$ . 2514)]) #@29 Initialize the Gnus daemon. (defalias 'gnus-demon-init #[nil "\306 \210\307\211\205\244\n@\211@ A@\310 8\f\311=\203$\202>\f\204,\307\202>\f;\203:\312\f!_\202>\f_ \247\203K _\202[ \311=\203Z\f\247\203Z\f\202[ \f\204n \247\203n\313 \311\314 $\202\213\f\250\203\315\f\211\314 \f&\202\213\f;\205\213\315\f\316\314 %\211\203\232\317 #.\nA\211\204 \307*\207" [gnus-demon-handlers handler --dolist-tail-- func time idle gnus-demon-cancel nil 2 t gnus-demon-time-to-step run-with-idle-timer gnus-demon-run-callback run-with-timer 86400 plist-put gnus-demon-timestep timer gnus-demon-timers] 8 (#$ . 3340) nil]) #@64 Find out how many steps to TIME, which is on the form "17:43". (defalias 'gnus-demon-time-to-step #[(time) "\306 \307!\310\n!\311 8 A@\312\313 \f\314 8\f\311 8W\2042\f\311 8U\2036 A@X\2036\315\2027\313\\\316 8\317 8\320 8\321 8\322 8& \323\324\"!\325\".\207" [now nowParts time thenParts thenHour thenMin current-time decode-time parse-time-string 2 encode-time 0 3 1 4 5 6 7 8 float-time time-subtract round then diff gnus-demon-timestep] 11 (#$ . 4000)]) (gnus-add-shutdown 'gnus-demon-cancel 'gnus) #@26 Cancel any Gnus daemons. (defalias 'gnus-demon-cancel #[nil "G\303\245\304 \nW\203\305 \303_T8!\210 T\211\202*\306\211\207" [gnus-demon-timers i --dotimes-limit-- 2 0 cancel-timer nil] 4 (#$ . 4531) nil]) #@44 Add daemonic server disconnection to Gnus. (defalias 'gnus-demon-add-disconnection #[nil "\300\301\302\303#\207" [gnus-demon-add-handler gnus-demon-close-connections nil 30] 4 (#$ . 4752)]) (defalias 'gnus-demon-close-connections #[nil "\301 \302\216\303 *\207" [#1=#:wconfig current-window-configuration #[nil "\301!\207" [#1# set-window-configuration] 2] gnus-close-backends] 1]) #@143 Add daemonic nntp server disconnection to Gnus. If no commands have gone out via nntp during the last five minutes, the connection is closed. (defalias 'gnus-demon-add-nntp-close-connection #[nil "\300\301\302\303#\207" [gnus-demon-add-handler gnus-demon-nntp-close-connection 5 nil] 4 (#$ . 5143)]) (defalias 'gnus-demon-nntp-close-connection #[nil "\302 \303\216\304\305\306 !\"\205\307 *\207" [#1=#:wconfig nntp-last-command-time current-window-configuration #[nil "\301!\207" [#1# set-window-configuration] 2] time-less-p (0 300) time-since nntp-close-server] 4]) #@55 Add daemonic scanning of mail from the mail backends. (defalias 'gnus-demon-add-scanmail #[nil "\300\301\302\303#\207" [gnus-demon-add-handler gnus-demon-scan-mail 120 60] 4 (#$ . 5721)]) (defalias 'gnus-demon-scan-mail #[nil "\305 \306\216 \307\310C\f\211A\242@\211\205b\311 @\3121G\211;\203*\313!@\202+\211\314!\2045\315!\210\316\317\320\321#!!\2620\266\202\202K\210\307\266\202\203\f\322 !\204Z\323 !\203\f\324\307 \"\210\202\f-\207" [#1=#:wconfig gnus-opened-servers nnmail-fetched-sources server servers current-window-configuration #[nil "\301!\207" [#1# set-window-configuration] 2] nil t request-scan (error) gnus-find-method-for-group featurep require fboundp intern format "%s-%s" gnus-server-opened gnus-open-server gnus-request-scan] 9]) #@58 Add daemonic scanning of new articles from all backends. (defalias 'gnus-demon-add-rescan #[nil "\300\301\302\303#\207" [gnus-demon-add-handler gnus-demon-scan-news 120 60] 4 (#$ . 6501)]) (defalias 'gnus-demon-scan-news #[nil "\303 \304\216\303 \305\216\306 \205r\nq\210\307 ),\207" [win #1=#:wconfig gnus-group-buffer current-window-configuration #[nil "\301!\207" [win set-window-configuration] 2] #[nil "\301!\207" [#1# set-window-configuration] 2] gnus-alive-p gnus-group-get-new-news] 1]) #@57 Add daemonic updating of timestamps in empty newgroups. (defalias 'gnus-demon-add-scan-timestamps #[nil "\300\301\302\303#\207" [gnus-demon-add-handler gnus-demon-scan-timestamps nil 30] 4 (#$ . 7008)]) #@76 Set the timestamp on all newsgroups with no unread and no ticked articles. (defalias 'gnus-demon-scan-timestamps #[nil "\306 \205J\307 A\310\211\211\211 \211A\242\211\205H\f@\311 \"@\312\313\f8\236A\n\247\203\n\314U\203 \204\315 \316#\210\202.\207" [gnus-newsrc-alist has-ticked unread group info newsrc gnus-alive-p current-time nil gethash tick 3 0 gnus-group-set-parameter timestamp cur-time gnus-newsrc-hashtb] 6 (#$ . 7217)]) (provide 'gnus-demon)