[Eclipse-cvs] CVS eclipse

ihatchondo ihatchondo at common-lisp.net
Tue Apr 27 08:12:20 UTC 2010


Update of /project/eclipse/cvsroot/eclipse
In directory cl-net:/tmp/cvs-serv28215

Modified Files:
	global.lisp 
Log Message:
Fix: pathname different behaviour.

--- /project/eclipse/cvsroot/eclipse/global.lisp	2010/04/23 14:36:49	1.37
+++ /project/eclipse/cvsroot/eclipse/global.lisp	2010/04/27 08:12:20	1.38
@@ -1,5 +1,5 @@
 ;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*-
-;;; $Id: global.lisp,v 1.37 2010/04/23 14:36:49 ihatchondo Exp $
+;;; $Id: global.lisp,v 1.38 2010/04/27 08:12:20 ihatchondo Exp $
 ;;;
 ;;; This file is part of Eclipse.
 ;;; Copyright (C) 2001, 2002 Iban HATCHONDO
@@ -256,7 +256,22 @@
 (defun file-exists-p (filename)
   "Returns true if the given filename is an existing file and not a directory."
   (and #+clisp (not (probe-directory (make-pathname :directory filename)))
-       #-clisp (not (probe-file (make-pathname :directory filename)))
+       #-clisp (let ((pathname (probe-file (make-pathname :directory filename))))
+                 ;; When NIL is returned by probe-file, it indicates that NO
+                 ;; directory exists under this filename.
+                 ;; But when a valid pathname is returned, it does not 
+                 ;; necessarily indicate that it is a directory.
+                 ;; In this case, one needs to check if the returned pathname
+                 ;; has a type or a name, what a directory pathname doesn't
+                 ;; have.
+                 ;; This last case concerns systems like SBCL, while the former
+                 ;; case corresponds at least to CMUCL.
+                 (if pathname
+                     (let ((name (pathname-name pathname))
+                           (type (pathname-type pathname)))
+                       (or (and type (not (eql type :unspecific)))
+                           (and name (not (eql type :unspecific)))))
+                     t))
        (probe-file filename)))
 
 ;;;; Error handler.





More information about the Eclipse-cvs mailing list