X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/profile/blobdiff_plain/4e7092a3248d55e4af0b45c38a67e3a7998b59a7..c36efcdc0b2d92b02fd7224d4fc53cf5a7cb74e3:/dot/lisp-init.lisp diff --git a/dot/lisp-init.lisp b/dot/lisp-init.lisp index 8b0e3f9..54df25f 100644 --- a/dot/lisp-init.lisp +++ b/dot/lisp-init.lisp @@ -42,18 +42,21 @@ (setf ext:*batch-mode* t) #+sbcl (sb-ext:set-sbcl-source-location #p"/usr/share/sbcl-source/") -;; Tell some Lisps about my home directory. -#+(and unix (or sbcl clisp)) +;; Tell some Lisps about my home directory. CMU CL already has a search list +;; which does the same job. +#+(and unix (or sbcl clisp ecl)) (let* ((homestring (or #+sbcl (sb-ext:posix-getenv "HOME") - #+clisp (ext:getenv "HOME") - #+cmu (unix:unix-getenv "HOME") + #+(or clisp ecl) (ext: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)