]> code.delx.au - gnu-emacs/blobdiff - lisp/find-cmd.el
* net/tramp.el (tramp-ssh-controlmaster-template): Make it a
[gnu-emacs] / lisp / find-cmd.el
index f60395a59f9df887ded221b9d93ee128d38ef6b8..a41a32762dcef61d58980e14913a1961e7712f66 100644 (file)
@@ -1,6 +1,6 @@
 ;;; find-cmd.el --- Build a valid find(1) command with sexps
 
-;; Copyright (C) 2008 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
 ;; Author: Philip Jackson <phil@shellarchive.co.uk>
 ;; Version: 0.6
@@ -23,7 +23,7 @@
 ;;; Commentary:
 
 ;; With this module you can build up a (hopefully) valid find(1)
-;; string ready for the command line. For example:
+;; string ready for the command line.  For example:
 
 ;; (find-cmd '(prune (name ".svn" ".git" ".CVS"))
 ;;           '(and (or (name "*.pl" "*.pm" "*.t")
@@ -63,6 +63,7 @@
     (cnewer     . (1))
     (ctime      . (1))
     (empty      . (0))
+    (executable . (0))
     (false      . (0))
     (fstype     . (1))
     (gid        . (1))
     (ilname     . (1))
     (iname      . (1))
     (inum       . (1))
-    (iwholename . (1))
+    (ipath      . (1))
     (iregex     . (1))
+    (iwholename . (1))
     (links      . (1))
     (lname      . (1))
     (mmin       . (1))
     (mtime      . (1))
     (name       . (1))
     (newer      . (1))
-    (nouser     . (0))
     (nogroup    . (0))
+    (nouser     . (0))
     (path       . (1))
     (perm       . (0))
+    (readable   . (0))
     (regex      . (1))
-    (wholename  . (1))
+    (samefile   . (1))
     (size       . (1))
     (true       . (0))
     (type       . (1))
     (uid        . (1))
     (used       . (1))
     (user       . (1))
+    (wholename  . (1))
+    (writable   . (0))
     (xtype      . (nil))
 
     ;; normal options (always true)
+    (daystart              . (0))
     (depth                 . (0))
     (maxdepth              . (1))
     (mindepth              . (1))
     (mount                 . (0))
     (noleaf                . (0))
-    (xdev                  . (0))
     (ignore_readdir_race   . (0))
     (noignore_readdir_race . (0))
+    (regextype             . (1))
+    (xdev                  . (0))
 
     ;; actions
     (delete  . (0))
     (ok      . (1 find-command t))
     (execdir . (1 find-command t))
     (okdir   . (1 find-command t)))
-  "Holds details of each of the find options. The car of each
-alist is the name. The cdr is minimum args, the function used
-to join many occurences of the argument together, and whether or
-not to leave quotes off the string (non-nil means the string will
-be quoted).")
+  "Holds details of each of the find options.
+The car of each alist is the name.  The cdr is minimum args, the
+function used to join many occurrences of the argument together,
+and whether or not to leave quotes off the string (non-nil means
+the string will be quoted).")
 
 ;;;###autoload
 (defun find-cmd (&rest subfinds)
-  "Initiate the building of a find command. For exmple:
+  "Initiate the building of a find command.
+For example:
 
 \(find-cmd '\(prune \(name \".svn\" \".git\" \".CVS\"\)\)
           '\(and \(or \(name \"*.pl\" \"*.pm\" \"*.t\"\)
                     \(mtime \"+1\"\)\)
                 \(fstype \"nfs\" \"ufs\"\)\)\)\)
 
-`default-directory' is used as the initial search path. The
+`default-directory' is used as the initial search path.  The
 result is a string that should be ready for the command line."
   (concat
    "find " (shell-quote-argument (expand-file-name default-directory)) " "
@@ -178,7 +186,7 @@ suffice:
   (concat "-not " (find-or (mapcar 'find-to-string form))))
 
 (defun find-prune (form)
-  "-or together FORM(s) postfix '-prune' and then -or that with a
+  "-or together FORMs postfix '-prune' and then -or that with a
 -true, so:
   \(prune \(name \".svn\" \".git\"\)\) \(name \"*.pm\"\)
 will produce (unwrapped):
@@ -190,11 +198,12 @@ will produce (unwrapped):
     (find-generic "true"))))
 
 (defun find-generic (option &optional oper argcount args dont-quote)
-  "This function allows an arbitrary string to be used as a
-form. OPTION is the name of the form, OPER is the function used
-to either OR or AND multiple results together. ARGCOUNT is the
-minimum of args that OPTION can receive and ARGS are the
-arguments for OPTION."
+  "Allow an arbitrary string to be used as a form.
+OPTION is the name of the form, OPER is the function used to either
+OR or AND multiple results together.  ARGCOUNT is the minimum of
+args that OPTION can receive and ARGS are the arguments for OPTION.
+If DONT-QUOTE is non-nil, arguments are quoted for passing them to
+the shell."
   (when (and (numberp argcount) (< (length args) argcount))
     (error "'%s' needs at least %d arguments" option argcount))
   (let ((oper (or oper 'find-or)))
@@ -211,7 +220,7 @@ arguments for OPTION."
 
 (defun find-command (form)
   "For each item in FORM add a terminating semi-colon and turn
-them into valid switches. The result is -and(ed) together."
+them into valid switches.  The result is -and(ed) together."
   (find-and (mapcar (lambda (x)
                       (concat (find-to-string x) "\\; "))
                     form)))
@@ -238,5 +247,4 @@ them into valid switches. The result is -and(ed) together."
 
 (provide 'find-cmd)
 
-;; arch-tag: 9687fd9e-4e90-4022-864a-f904526e2046
 ;;; find-cmd.el ends here