symbol plist accessor
[bpt/emacs.git] / lisp / midnight.el
index ef4d0dd..73300e5 100644 (file)
@@ -1,10 +1,9 @@
 ;;; midnight.el --- run something every midnight, e.g., kill old buffers
 
-;; Copyright (C) 1998, 2001, 2002, 2003, 2004, 2005,
-;;   2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2014 Free Software Foundation, Inc.
 
-;; Author: Sam Steingold <sds@usa.net>
-;; Maintainer: Sam Steingold <sds@usa.net>
+;; Author: Sam Steingold <sds@gnu.org>
+;; Maintainer: Sam Steingold <sds@gnu.org>
 ;; Created: 1998-05-18
 ;; Keywords: utilities
 
 
 ;;; Code:
 
-(eval-when-compile
- (require 'cl))
-
-(require 'timer)
+(eval-when-compile (require 'cl-lib))
 
 (defgroup midnight nil
   "Run something every day at midnight."
@@ -67,12 +63,6 @@ call `cancel-timer' or `timer-activate' on `midnight-timer' instead."
 
 ;;; time conversion
 
-(defun midnight-time-float (num)
-  "Convert the float number of seconds since epoch to the list of 3 integers."
-  (let* ((div (ash 1 16)) (1st (floor num div)))
-    (list 1st (floor (- num (* (float div) 1st)))
-          (round (* 10000000 (mod num 1))))))
-
 (defun midnight-buffer-display-time (&optional buffer)
   "Return the time-stamp of BUFFER, or current buffer, as float."
   (with-current-buffer (or buffer (current-buffer))
@@ -97,7 +87,7 @@ displayed more than this many seconds ago."
   :type 'integer
   :group 'midnight)
 
-(defcustom clean-buffer-list-kill-regexps nil
+(defcustom clean-buffer-list-kill-regexps '("^\\*Man ")
   "List of regexps saying which buffers will be killed at midnight.
 If buffer name matches a regexp in the list and the buffer was not displayed
 in the last `clean-buffer-list-delay-special' seconds, it is killed by
@@ -111,7 +101,7 @@ See also `clean-buffer-list-kill-buffer-names',
   :group 'midnight)
 
 (defcustom clean-buffer-list-kill-buffer-names
-    '("*Help*" "*Apropos*" "*Man " "*Buffer List*" "*Compile-Log*" "*info*"
+    '("*Help*" "*Apropos*" "*Buffer List*" "*Compile-Log*" "*info*"
       "*vc*" "*vc-diff*" "*diff*")
   "List of strings saying which buffers will be killed at midnight.
 Buffers with names in this list, which were not displayed in the last
@@ -126,7 +116,7 @@ See also `clean-buffer-list-kill-regexps',
   :group 'midnight)
 
 (defcustom clean-buffer-list-kill-never-buffer-names
-    '("*scratch*" "*Messages*" "*server*")
+    '("*scratch*" "*Messages*")
   "List of buffer names which will never be killed by `clean-buffer-list'.
 See also `clean-buffer-list-kill-never-regexps'.
 Note that this does override `clean-buffer-list-kill-regexps' and
@@ -147,9 +137,9 @@ two lists will NOT be killed if it also matches anything in this list."
 
 (defun midnight-find (el ls test &optional key)
   "A stopgap solution to the absence of `find' in ELisp."
-  (dolist (rr ls)
+  (cl-dolist (rr ls)
     (when (funcall test (if key (funcall key rr) rr) el)
-      (return rr))))
+      (cl-return rr))))
 
 (defun clean-buffer-list-delay (name)
   "Return the delay, in seconds, before killing a buffer named NAME.
@@ -205,8 +195,7 @@ The default value is `clean-buffer-list'."
 
 (defun midnight-next ()
   "Return the number of seconds till the next midnight."
-  (multiple-value-bind (sec min hrs) 
-      (values-list (decode-time))
+  (pcase-let ((`(,sec ,min ,hrs) (decode-time)))
     (- (* 24 60 60) (* 60 60 hrs) (* 60 min) sec)))
 
 ;;;###autoload
@@ -214,8 +203,8 @@ The default value is `clean-buffer-list'."
   "Modify `midnight-timer' according to `midnight-delay'.
 Sets the first argument SYMB (which must be symbol `midnight-delay')
 to its second argument TM."
-  (assert (eq symb 'midnight-delay) t
-          "Invalid argument to `midnight-delay-set': `%s'")
+  (cl-assert (eq symb 'midnight-delay) t
+             "Invalid argument to `midnight-delay-set': `%s'")
   (set symb tm)
   (when (timerp midnight-timer) (cancel-timer midnight-timer))
   (setq midnight-timer
@@ -234,5 +223,4 @@ first argument to `run-at-time'."
 
 (provide 'midnight)
 
-;; arch-tag: a5979be9-2890-46a3-ba84-791f0a4a6e80
 ;;; midnight.el ends here