X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Frun-program.lisp;h=0119d6ca79db464e0dbf01bd850a20674f5bf482;hb=e801083c864fa8f11d79be53a5d95584c960f2b3;hp=5ad4e128463801cbe5b7888ea425c33cf571ff52;hpb=5a2b6553fbbbb62fa789350facd0d56bb136045f;p=sbcl.git diff --git a/src/code/run-program.lisp b/src/code/run-program.lisp index 5ad4e12..0119d6c 100644 --- a/src/code/run-program.lisp +++ b/src/code/run-program.lisp @@ -394,11 +394,11 @@ while start ;; the truename of a file naming a directory is the ;; directory, at least until pfdietz comes along and says why - ;; that's noncompliant - for fullpath = (merge-pathnames - pathname (truename - (subseq search-path start end))) - when (unix-filename-is-executable-p (namestring fullpath)) + ;; that's noncompliant -- CSR, c. 2003-08-10 + for truename = (probe-file (subseq search-path start end)) + for fullpath = (when truename (merge-pathnames pathname truename)) + when (and fullpath + (unix-filename-is-executable-p (namestring fullpath))) return fullpath)) ;;; FIXME: There shouldn't be two semiredundant versions of the