Function: eshell-pred-file-time
eshell-pred-file-time is a byte-compiled function defined in
em-pred.el.gz.
Signature
(eshell-pred-file-time MOD-CHAR MOD-TYPE ATTR-INDEX)
Documentation
Return a predicate to test whether a file matches a certain time.
Source Code
;; Defined in /usr/src/emacs/lisp/eshell/em-pred.el.gz
(defun eshell-pred-file-time (mod-char mod-type attr-index)
"Return a predicate to test whether a file matches a certain time."
(let* ((quantum 86400)
qual when)
(when (memq (char-after) '(?M ?w ?h ?m ?s))
(setq quantum (char-after))
(cond
((eq quantum ?M)
(setq quantum (* 60 60 24 30)))
((eq quantum ?w)
(setq quantum (* 60 60 24 7)))
((eq quantum ?h)
(setq quantum (* 60 60)))
((eq quantum ?m)
(setq quantum 60))
((eq quantum ?s)
(setq quantum 1)))
(forward-char))
(setq qual (eshell-get-comparison-modifier-argument
(list #'time-less-p
(lambda (a b) (time-less-p b a))
#'time-equal-p)))
(if-let ((number (eshell-get-numeric-modifier-argument)))
(setq when (time-since (* number quantum)))
(let* ((file (or (eshell-get-delimited-modifier-argument)
(error "Malformed %s time modifier `%c'"
mod-type mod-char)))
(attrs (or (file-attributes file)
(error "Cannot stat file `%s'" file))))
(setq when (nth attr-index attrs))))
(lambda (file)
(when-let ((attrs (file-attributes file)))
(funcall qual when (nth attr-index attrs))))))