From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: jari.aalto@poboxes.com (Jari Aalto+mail.linux) Newsgroups: gmane.emacs.bugs Subject: Re: [patch] 21.3 executable.el - New func executable-command-find-unix-p Date: Wed, 28 Jan 2004 23:00:30 +0200 Organization: Private Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Message-ID: References: NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1075323152 11234 80.91.224.253 (28 Jan 2004 20:52:32 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 28 Jan 2004 20:52:32 +0000 (UTC) Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Jan 28 21:52:19 2004 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1Alwfb-0004w3-00 for ; Wed, 28 Jan 2004 21:52:19 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.24) id 1Alwdy-0006pp-Qh for geb-bug-gnu-emacs@m.gmane.org; Wed, 28 Jan 2004 15:50:38 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.24) id 1Alwdw-0006pW-DW for bug-gnu-emacs@prep.ai.mit.edu; Wed, 28 Jan 2004 15:50:36 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.24) id 1AlwdP-0006jw-2I for bug-gnu-emacs@prep.ai.mit.edu; Wed, 28 Jan 2004 15:50:35 -0500 Original-Received: from [216.168.1.22] (helo=trinity.supernews.net) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.24) id 1AlwdO-0006jA-GY for bug-gnu-emacs@prep.ai.mit.edu; Wed, 28 Jan 2004 15:50:02 -0500 Original-Received: from smtp34.kolumbus.fi ([193.229.0.38]:25098) by trinity.supernews.net with esmtp (Exim 4.24; FreeBSD) id 1AlwdJ-000ErU-4e for gnu-emacs-bug@moderators.isc.org; Wed, 28 Jan 2004 20:49:57 +0000 Original-Received: from news.kolumbus.fi (news.kolumbus.fi [193.229.0.31]) by smtp34.kolumbus.fi (8.12.10/8.12.4) with ESMTP id i0SKnlWA028537 for ; Wed, 28 Jan 2004 22:49:48 +0200 (EET) Original-Received: (from news@localhost) by news.kolumbus.fi (8.11.6+Sun/8.11.6) id i0SKnl506409 for gnu-emacs-bug@moderators.isc.org; Wed, 28 Jan 2004 22:49:47 +0200 (EET) Original-To: gnu-emacs-bug@moderators.isc.org Original-Path: not-for-mail Original-Newsgroups: gnu.emacs.bug Original-Lines: 100 Original-NNTP-Posting-Host: a110t7.elisa.omakaista.fi Original-X-Trace: phys-news1.kolumbus.fi 1075322986 3915 81.197.3.110 (28 Jan 2004 20:49:46 GMT) Original-X-Complaints-To: abuse@kolumbus.fi Original-NNTP-Posting-Date: Wed, 28 Jan 2004 20:49:46 +0000 (UTC) User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/20.7 (windows-nt) (i386-*-nt5.0.2195) Cancel-Lock: sha1:oKm7c9ZJUHz+lmABKmAb6aWxMnQ= X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Bug reports for GNU Emacs, the Swiss army knife of text editors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.bugs:6800 X-Report-Spam: http://spam.gmane.org/gmane.emacs.bugs:6800 * Tue 2004-01-27 Kevin Rodgers yahoo.com> gnu.emacs.bug * | Jari Aalto+mail.linux wrote: | | > I intend to fix grep-find, so we need common function to test | > find(1) in compile.el and filecache.el. This would also benefit | > igrep.el and other packages that depend on find(1). | | | -maxdepth is a non-POSIX, GNU extension. On Solaris 8 (SunOS 5.8), both | /usr/bin/find and /usr/xpg4/bin/find report | | find: bad option -maxdepth Right. The message is a good indication of Unix find(1) as well. Here fix for the previous code. Also added couple of options more like -print. 2004-01-28 Jari Aalto * progmodes/executable.el (executable-command-find-unix-p): Check basic find which does not support -maxdepth. Return find(1) type: 'gnu, t or nil. Index: executable.el =================================================================== RCS file: /cygdrive/h/data/version-control/cvsroot/emacs/gnu-emacs/lisp213/progmodes/executable.el,v retrieving revision 1.2 retrieving revision 1.3 diff -u -IId: -b -w -u -r1.2 -r1.3 --- executable.el 27 Jan 2004 12:58:49 -0000 1.2 +++ executable.el 28 Jan 2004 20:56:16 -0000 1.3 @@ -52,6 +52,8 @@ ;;; Code: +(autoload 'find-if "cl-seq") + (defgroup executable nil "Base functionality for executable interpreter scripts" :group 'processes) @@ -146,27 +148,43 @@ ;;;###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." +The path to command can be assing in PROGRAM. + +Return: + 'gnu for GNU find(1) + t for other unix compatible find(1)" ;; 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))) + (and (not (string-match "^\\.\\.?$" x)) + ;; load-path may contain stale directories. + (file-directory-p x))) (directory-files dir)))) (with-temp-buffer - (call-process (or program "find") + (call-process + (or program "find") nil (current-buffer) nil dir "-name" file + "-mount" + "-print" + ;; GNU find(1) understands this + ;; Solaris 8 (SunOS 5.8), both + ;; /usr/bin/find and /usr/xpg4/bin/find report + ;; reports "find: bad option -maxdepth" "-maxdepth" "1") (goto-char (point-min)) - (if (search-forward file nil t) - t)))) + (cond + ((search-forward file nil t) + 'gnu) + ((search-forward "find: bad option -maxdepth") + t))))) ;;;###autoload (defun executable-find (command) -- http://tiny-tools.sourceforge.net/ Swatch @time http://www.mir.com.my/iTime/itime.htm http://www.ryanthiessen.com/swatch/resources.htm Use Licenses! http://www.linuxjournal.com/article.php?sid=6225 Which Licence? http://www.linuxjournal.com/article.php?sid=4825 OSI Licences http://www.opensource.org/licenses/