-;;; em-pred --- argument predicates and modifiers (ala zsh)
+;;; em-pred.el --- argument predicates and modifiers (ala zsh)
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005, 2006, 2007 Free Software Foundation, Inc.
+
+;; Author: John Wiegley <johnw@gnu.org>
;; This file is part of GNU Emacs.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
(provide 'em-pred)
;; See the zsh docs for more on the syntax ([(zsh.info)Filename
;; Generation]).
+;;; Code:
+
;;; User Variables:
(defcustom eshell-pred-load-hook '(eshell-pred-initialize)
(put 'eshell-predicate-alist 'risky-local-variable t)
(defcustom eshell-modifier-alist
- '((?e . '(lambda (lst)
+ '((?E . '(lambda (lst)
(mapcar
(function
(lambda (str)
FILE ATTRIBUTES:
l[+-]N +/-/= N links
- a[Mwhm][+-](N|'FILE') access time +/-/= N mnths/weeks/days/mins
- if FILE specified, use as comparison basis;
- so a+'file.c' shows files accessed before
- file.c was last accessed
- m[Mwhm][+-](N|'FILE') modification time...
- c[Mwhm][+-](N|'FILE') change time...
+ a[Mwhms][+-](N|'FILE') access time +/-/= N mnths/weeks/hours/mins/secs
+ (days if unspecified) if FILE specified,
+ use as comparison basis; so a+'file.c'
+ shows files accessed before file.c was
+ last accessed
+ m[Mwhms][+-](N|'FILE') modification time...
+ c[Mwhms][+-](N|'FILE') change time...
L[kmp][+-]N file size +/-/= N Kb/Mb/blocks
EXAMPLES:
"Eshell modifier quick reference:
FOR SINGLE ARGUMENTS, or each argument of a list of strings:
- e evaluate again
+ E evaluate again
L lowercase
U uppercase
C capitalize
q escape special characters
S split string at any whitespace character
- S/PAT/ split string at each occurance of PAT
+ S/PAT/ split string at each occurrence of PAT
FOR LISTS OF ARGUMENTS:
o sort alphabetically
x/PAT/ exclude all members matching PAT
s/pat/match/ substitute PAT with MATCH
- g/pat/match/ substitute PAT with MATCH for all occurances
+ g/pat/match/ substitute PAT with MATCH for all occurrences
EXAMPLES:
*.c(:o) sorted list of .c files")
(defun eshell-pred-initialize ()
"Initialize the predicate/modifier code."
- (make-local-hook 'eshell-parse-argument-hook)
(add-hook 'eshell-parse-argument-hook
'eshell-parse-arg-modifier t t)
(define-key eshell-command-map [(meta ?q)] 'eshell-display-predicate-help)
"Return a predicate to test whether a file matches a certain time."
(let* ((quantum 86400)
qual amount when open close end)
- (when (memq (char-after) '(?M ?w ?h ?m))
+ (when (memq (char-after) '(?M ?w ?h ?m ?s))
(setq quantum (char-after))
(cond
((eq quantum ?M)
(forward-char)
(setq type ?%)))
`(lambda (file)
- (let ((attrs (file-attributes (directory-file-name file))))
+ (let ((attrs (eshell-file-attributes (directory-file-name file))))
(if attrs
(memq (aref (nth 8 attrs) 0)
,(if (eq type ?%)
(setq amount (string-to-number (match-string 0)))
(goto-char (match-end 0))
`(lambda (file)
- (let ((attrs (file-attributes file)))
+ (let ((attrs (eshell-file-attributes file)))
(if attrs
(,(if (eq qual ?-)
'<
(setq amount (* (string-to-number (match-string 0)) quantum))
(goto-char (match-end 0))
`(lambda (file)
- (let ((attrs (file-attributes file)))
+ (let ((attrs (eshell-file-attributes file)))
(if attrs
(,(if (eq qual ?-)
'<
(lambda (str)
(split-string str ,sep))) lst))))
-;;; Code:
-
+;;; arch-tag: 8b5ce022-17f3-4c40-93c7-5faafaa63f31
;;; em-pred.el ends here