chiark / gitweb /
dot/lisp-init.lisp: Explain why the shebang support is there.
[profile] / dot / lisp-init.lisp
index 373308a9aabaa0f55c043d1690e6685317db8c88..2d8bb9e5ea8fabf5b29c2e359db57e6cebfcc3ca 100644 (file)
@@ -50,10 +50,13 @@ (let* ((homestring (or #+sbcl (sb-ext:posix-getenv "HOME")
                       "/home/mdw"))
        (home (pathname (concatenate 'string homestring "/"))))
   (setf (logical-pathname-translations "HOME")
-       `(("HOME:**;*.*.*" ,(merge-pathnames "**/*.*" home nil)))
-       (logical-pathname-translations "CL")
-       '(("CL:SOURCE;**;*.*.*" #p"/usr/share/common-lisp/source/**/*.*")
-         ("CL:SYSTEMS;**;*.*.*" #p"/usr/share/common-lisp/systems/**/*.*"))))
+         `(("HOME:**;*.*.*" ,(merge-pathnames "**/*.*" home nil)))))
+(when (#.(car '(#+clisp ext:probe-directory
+               probe-file))
+        #p"/usr/share/common-lisp/")
+  (setf (logical-pathname-translations "CL")
+         '(("CL:SOURCE;**;*.*.*" #p"/usr/share/common-lisp/source/**/*.*")
+           ("CL:SYSTEMS;**;*.*.*" #p"/usr/share/common-lisp/systems/**/*.*"))))
 
 ;; Various fixings.
 #+clisp
@@ -84,7 +87,10 @@   (defvar *history-size* 1000)
   (push (lambda () (readline:write-history *history-file*))
        custom:*fini-hooks*))
 
-;; Shebang.
+;; Don't choke on shebang lines.  This isn't here so that we can run Lisp
+;; scripts like proper Unix programs: `cl-launch' or `runlisp' do that.  It's
+;; here so that we can `load' a script into a running Lisp without it choking
+;; on the shebang.
 (set-dispatch-macro-character
  #\# #\!
  (lambda (stream char arg)