r1996: logical pathname fixes
[clsql.git] / set-cl-library.cl
index 51aa42ef5624e2647b9b0750a4bd405e584e1a54..fc9e6fc82785be2c0db306321a8a861e8573ba06 100644 (file)
 (handler-case
     (logical-pathname-translations "CL-LIBRARY")
   (error ()
-    (let* ((dir (pathname-directory *load-truename*))
-          (parent-dir (subseq dir 0 (1- (length dir)))))
-      (load (make-pathname :name "set-logical" :type "cl"
-                          :defaults *load-truename*))
-      (set-logical-host-for-pathname 
-       "CL-LIBRARY" 
-       (make-pathname :host (pathname-host *load-truename*)
-                     :device (pathname-device *load-truename*)
-                     :directory parent-dir)))))
+        (let* ((dir (pathname-directory *load-truename*))
+               (parent-dir (subseq dir 0 (1- (length dir)))))
+          (load (make-pathname :name "set-logical" :type "cl"
+                               :defaults *load-truename*))
+          (set-logical-host-for-pathname 
+           "CL-LIBRARY" 
+           (make-pathname :host (pathname-host *load-truename*)
+                          :device (pathname-device *load-truename*)
+                          :directory parent-dir))))
+  (:no-error (translation)
+            ;; Make sure that CL-LIBRARY points to this installation
+            (let* ((dir (pathname-directory *load-truename*))
+                   (base-dir (car (last dir)))
+                   (logical-dir (translate-logical-pathname 
+                                 (concatenate 'string
+                                              "CL-LIBRARY:" base-dir ";"))))
+              (unless (equalp dir (pathname-directory logical-dir))
+                (error 
+                 (format nil "~S does not equal ~S"
+                         dir (pathname-directory logical-dir)))))))
+                       
+
+            ))