2004-01-27 Tue Jari Aalto <jari.aalto <AT> poboxes.com>
* progmodes/executable.el (executable-command-find-unix-p):
New. Check if find(1) is Unix type command.
Index: executable.el
===================================================================
RCS file:
/cygdrive/h/data/version-control/cvsroot/emacs/gnu-emacs/lisp213/progmodes/executable.el,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -IId: -b -w -u -r1.1 -r1.2
--- executable.el 26 Jun 2003 18:06:37 -0000 1.1
+++ executable.el 27 Jan 2004 12:58:49 -0000 1.2
@@ -144,6 +144,31 @@
'("")))
;;;###autoload
+(defun executable-command-find-unix-p (&optional program)
+ "Check if command 'find' is Unix type program.
+The patch to command can be assing in PROGRAM."
+ ;; Pick file to search from location we know
+ (let* ((dir (car load-path))
+ (file (find-if
+ (lambda (x)
+ ;; Filter directories . and ..
+ (not (string-match "^\\.\\.?$" x)))
+ (directory-files dir))))
+ (with-temp-buffer
+ (call-process (or program "find")
+ nil
+ (current-buffer)
+ nil
+ dir
+ "-name"
+ file
+ "-maxdepth"
+ "1")
+ (goto-char (point-min))
+ (if (search-forward file nil t)
+ t))))
+
+;;;###autoload
(defun executable-find (command)
"Search for COMMAND in exec-path and return the absolute file name.
Return nil if COMMAND is not found anywhere in `exec-path'."