;ELC   
;;; Compiled
;;; in Emacs version 26.3
;;; 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\310\311&\207" [require cl-lib custom-declare-group midnight nil "Run something every day at midnight." :group calendar :version "20.3"] 8)
#@166 Timer running the `midnight-hook' `midnight-delay' seconds after midnight.
Use `cancel-timer' to stop it and `midnight-delay-set' to change
the time when it is run.
(defvar midnight-timer nil (#$ . 599))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315&\207" [custom-declare-variable midnight-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if Midnight mode is enabled.\nSee the `midnight-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `midnight-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :group midnight :type boolean] 12)
#@68 Non-nil means run `midnight-hook' at midnight.

(fn &optional ARG)
(defalias 'midnight-mode #[256 "\302 \303\301\304=\203 \305\301!?\202 \306!\307V\"\210\310!\203\" \311!\210	\203* \312!\210\313\314\305\301!\2036 \315\2027 \316\"\210\317\320!\203a \321\301!\210\302 \203O \211\302 \232\203a \322\323\324\305\301!\203\\ \325\202] \326#\266\210\327 \210\305\301!\207" [midnight-timer midnight-mode current-message set-default toggle default-value prefix-numeric-value 0 timerp cancel-timer timer-activate run-hooks midnight-mode-hook midnight-mode-on-hook midnight-mode-off-hook called-interactively-p any customize-mark-as-set "" message "Midnight mode %sabled%s" "en" "dis" force-mode-line-update] 7 (#$ . 1333) (byte-code "\206 \301C\207" [current-prefix-arg toggle] 1)])
(defvar midnight-mode-hook nil)
(byte-code "\301\302N\204\f \303\301\302\304#\210\305\306\307\310\300!\205 \307\211%\210\311\312\313\314\315DD\316\317\320%\210\311\321\313\314\322DD\323\317\320%\210\311\324\313\314\325DD\326\317\327%\210\311\330\313\314\331DD\332\317\333%\210\311\334\313\314\335DD\336\317\337%\210\311\340\313\314\341DD\342\317\343%\207" [midnight-mode-map midnight-mode-hook variable-documentation put "Hook run after entering or leaving `midnight-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode midnight-mode nil boundp custom-declare-variable clean-buffer-list-delay-general funcall function #[0 "\300\207" [3] 1] "The number of days before any buffer becomes eligible for autokilling.\nThe autokilling is done by `clean-buffer-list' when it is in `midnight-hook'.\nCurrently displayed and/or modified (unsaved) buffers, as well as buffers\nmatching `clean-buffer-list-kill-never-buffer-names' and\n`clean-buffer-list-kill-never-regexps' are excluded." :type integer clean-buffer-list-delay-special #[0 "\300\207" [3600] 1] "The number of seconds before some buffers become eligible for autokilling.\nBuffers matched by `clean-buffer-list-kill-regexps' and\n`clean-buffer-list-kill-buffer-names' are killed if they were last\ndisplayed more than this many seconds ago." clean-buffer-list-kill-regexps #[0 "\300\207" [("\\`\\*Man ")] 1] "List of regexps saying which buffers will be killed at midnight.\nIf buffer name matches a regexp in the list and the buffer was not displayed\nin the last `clean-buffer-list-delay-special' seconds, it is killed by\n`clean-buffer-list' when it is in `midnight-hook'.\nIf a member of the list is a cons, its `car' is the regexp and its `cdr' is\nthe number of seconds to use instead of `clean-buffer-list-delay-special'.\nSee also `clean-buffer-list-kill-buffer-names',\n`clean-buffer-list-kill-never-regexps' and\n`clean-buffer-list-kill-never-buffer-names'.\n\nEach element can also be a function instead of a regexp, in which case\nit takes a single argument (a buffer name) and should return non-nil\nif the buffer should be killed by `clean-buffer-list'." (repeat (choice (regexp :tag "Regexp matching Buffer Name") (function :tag "Predicate function"))) clean-buffer-list-kill-buffer-names #[0 "\300\207" [("*Help*" "*Apropos*" "*Buffer List*" "*Compile-Log*" "*info*" "*vc*" "*vc-diff*" "*diff*")] 1] "List of strings saying which buffers will be killed at midnight.\nBuffers with names in this list, which were not displayed in the last\n`clean-buffer-list-delay-special' seconds, are killed by `clean-buffer-list'\nwhen it is in `midnight-hook'.\nIf a member of the list is a cons, its `car' is the name and its `cdr' is\nthe number of seconds to use instead of `clean-buffer-list-delay-special'.\nSee also `clean-buffer-list-kill-regexps',\n`clean-buffer-list-kill-never-regexps' and\n`clean-buffer-list-kill-never-buffer-names'." (repeat (string :tag "Buffer Name")) clean-buffer-list-kill-never-buffer-names #[0 "\300\207" [("*scratch*" "*Messages*")] 1] "List of buffer names which will never be killed by `clean-buffer-list'.\nSee also `clean-buffer-list-kill-never-regexps'.\nNote that this does override `clean-buffer-list-kill-regexps' and\n`clean-buffer-list-kill-buffer-names' so a buffer matching any of these\ntwo lists will NOT be killed if it is also present in this list." (repeat (string :tag "Buffer Name")) clean-buffer-list-kill-never-regexps #[0 "\300\207" [("\\` \\*Minibuf-.*\\*\\'")] 1] "List of regexp saying which buffers will never be killed at midnight.\nSee also `clean-buffer-list-kill-never-buffer-names'.\nKilling is done by `clean-buffer-list'.\nNote that this does override `clean-buffer-list-kill-regexps' and\n`clean-buffer-list-kill-buffer-names' so a buffer matching any of these\ntwo lists will NOT be killed if it also matches anything in this list.\n\nEach element can also be a function instead of a regexp, in which case\nit takes a single argument (a buffer name) and should return non-nil\nif the buffer should never be killed by `clean-buffer-list'." (repeat (choice (regexp :tag "Regexp matching Buffer Name") (function :tag "Predicate function")))] 6)
#@272 Return the delay, in seconds, before killing a buffer named NAME.
Uses `clean-buffer-list-kill-buffer-names', `clean-buffer-list-kill-regexps'
`clean-buffer-list-delay-general' and `clean-buffer-list-delay-special'.
Autokilling is done by `clean-buffer-list'.

(fn NAME)
(defalias 'clean-buffer-list-delay #[257 "\304\305	$\206 \304\n\306	$\206 \307_\207" [clean-buffer-list-kill-buffer-names clean-buffer-list-delay-special clean-buffer-list-kill-regexps clean-buffer-list-delay-general assoc-default string= #[514 "\300!\203\n !\207\301\"\207" [functionp string-match] 5 "\n\n(fn RE STR)"] 86400] 6 (#$ . 6393)])
#@564 Kill old buffers that have not been displayed recently.
The relevant variables are `clean-buffer-list-delay-general',
`clean-buffer-list-delay-special', `clean-buffer-list-kill-buffer-names',
`clean-buffer-list-kill-never-buffer-names',
`clean-buffer-list-kill-regexps' and
`clean-buffer-list-kill-never-regexps'.
While processing buffers, this procedure displays messages containing
the current date/time, buffer name, how many seconds ago it was
displayed (can be nil if the buffer was never displayed) and its
lifetime, i.e., its "age" when it will be purged.
(defalias 'clean-buffer-list #[0 "\303 \304\305\306!\304\211\211\307 \211\205\214 \211@\310!\203\205 r\211q\210)\262\311!\262\2036 \312\313\314\n\n\"!!\2027 \315\262\316!\262\317\320%\210\321	\322\323$\204\205 \321\n\322\324$\204\205 \325!\204\205 \326!\203m \327!\204\205 \330\331\"\204\205 W\204\205 \317\332#\210\333!\210A\266\202\202 \262\207" [buffer-display-time clean-buffer-list-kill-never-regexps clean-buffer-list-kill-never-buffer-names current-time nil format-time-string "%Y-%m-%d %T" buffer-list buffer-live-p buffer-name round float-time time-subtract 0 clean-buffer-list-delay message "[%s] `%s' [%s %d]" cl-find :test #[514 "\300!\203\n \211!\207\301\"\207" [functionp string-match] 5 "\n\n(fn BN RE)"] string-equal get-buffer-process buffer-file-name buffer-modified-p get-buffer-window visible "[%s] killing `%s'" kill-buffer] 14 (#$ . 7026) nil])
#@65 The number of seconds in a day--the delta for `midnight-timer'.
(defvar midnight-period 86400 (#$ . 8500))
(byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable midnight-hook funcall function #[0 "\300\207" [(clean-buffer-list)] 1] "The hook run `midnight-delay' seconds after midnight every day.\nThe default value is `clean-buffer-list'." :type hook] 6)
#@54 Return the number of seconds till the next midnight.
(defalias 'midnight-next #[0 "\300 \211@A\211@A\211@A\301\302\303_\304_$\266\203\207" [decode-time - 86400 3600 60] 15 (#$ . 8886)])
#@166 Modify `midnight-timer' according to `midnight-delay'.
Sets the first argument SYMB (which must be symbol `midnight-delay')
to its second argument TM.

(fn SYMB TM)
(defalias 'midnight-delay-set #[514 "\302=\204 \303\304\305C\306$\210L\210\307!\203 \310!\210\311\247\203) \312 \\\202* 	\313\314$\211\207" [midnight-timer midnight-period midnight-delay cl--assertion-failed (eq symb 'midnight-delay) "Invalid argument to `midnight-delay-set': `%s'" nil timerp cancel-timer run-at-time midnight-next run-hooks midnight-hook] 7 (#$ . 9089)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\313!\207" [custom-declare-variable midnight-delay funcall function #[0 "\300\207" [3600] 1] "The number of seconds after the midnight when the `midnight-timer' is run.\nYou should set this variable before loading midnight.el, or\nset it by calling `midnight-delay-set', or use `custom'.\nIf you wish, you can use a string instead, it will be passed as the\nfirst argument to `run-at-time'." :type (choice integer string) :set midnight-delay-set provide midnight] 8)
