[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: feature or lack thereof



> I have the impression that kcl is supposed to understand "~/" in filenames
> (under UNIX). This seems not to be the case in my implementation:

Nor in mine.  Here's my fix.

;;; -*- Mode: LISP; Base: 10.; Syntax: Common-lisp -*- 
;;;
;;;  COMPAT.LSP
;;;  Programmer: Scott Turner
;;;  Created:  8-Jun-90 by srt
;;;  Description: Compatibility routines for AKCL.  Mostly
;;;    convience functions.
;;;
;;;  End-of-Edit-History

;;;
;;;  Loading Functions
;;;
;;;  AKCL's load function on Unix doesn't understand the tilde 
;;;  syntax for HOME.  To remedy this, build our own load function
;;;  that performs magic on the path before handing it off to the
;;;  system load function.
;;;
;;;  Our solution is pretty hacky:  if the first character of the
;;;  filename string is a tilde, then strip it off and concatenate
;;;  on the home path.
;;;
(setf (symbol-function 'system-load-func) #'load)

(defun load (fname &key (verbose *load-verbose*)
		        (print nil)
			(if-does-not-exist :error))
  (if (and (stringp fname)
	   (eq (schar fname 0) #\~))
      (setq fname (concatenate 'string
		      (si:getenv "HOME")
		      (string-left-trim '(#\~) fname))))
  (system-load-func fname :verbose verbose
		          :print print
			  :if-does-not-exist if-does-not-exist))