diff --git a/code/filesys.lisp b/code/filesys.lisp index 2aefb6ee2752b6abdd5ec01b8f27b861c6a294c1..b70465e3a88d99d506bf022704cbfbb138093fcb 100644 --- a/code/filesys.lisp +++ b/code/filesys.lisp @@ -6,7 +6,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/filesys.lisp,v 1.38 1993/08/11 16:33:17 ram Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/filesys.lisp,v 1.39 1994/02/04 15:05:08 wlott Exp $") ;;; ;;; ********************************************************************** ;;; @@ -629,14 +629,17 @@ ;;;; UNIX-NAMESTRING -- public ;;; -(defun unix-namestring (pathname &optional (for-input t)) +(defun unix-namestring (pathname &optional (for-input t) executable-only) "Convert PATHNAME into a string that can be used with UNIX system calls. Search-lists and wild-cards are expanded." (enumerate-search-list (pathname pathname) (collect ((names)) (enumerate-matches (name pathname nil :verify-existance for-input) - (names name)) + (when (or (not executable-only) + (and (eq (unix:unix-file-kind name) :file) + (unix:unix-access name unix:x_ok))) + (names name))) (let ((names (names))) (when names (when (cdr names)