'(unsigned-byte 8)))
(load-as-fasl filespec verbose print)
(load-as-source filespec verbose print))
- (let (;; FIXME: MERGE-PATHNAMES doesn't work here for
- ;; FILESPEC="TEST:Load-Test" and
- ;; (LOGICAL-PATHNAME-TRANSLATIONS "TEST")
- ;; = (("**;*.*.*" "/foo/bar/**/*.*")).
- ;; Physicalizing the pathname before merging
- ;; is a workaround, but the ANSI spec talks about
- ;; MERGE-PATHNAMES accepting (and returning)
- ;; logical pathnames, so a true fix would probably
- ;; include fixing MERGE-PATHNAMES, then probably
- ;; revisiting this code.
- (ppn (physicalize-pathname (pathname filespec))))
- (if (wild-pathname-p ppn)
- (let ((files (directory ppn)))
- #!+high-security
- (when (null files)
- (error 'file-error :pathname filespec))
- (dolist (file files t)
- (internal-load ppn
- file
- internal-if-does-not-exist
- verbose
- print)))
- (let ((tn (probe-file ppn)))
- (if (or tn (pathname-type ppn))
- (internal-load ppn
- tn
- internal-if-does-not-exist
- verbose
- print)
- (internal-load-default-type
- ppn
- internal-if-does-not-exist
- verbose
- print)))))))))
+ (let* (;; FIXME: MERGE-PATHNAMES doesn't work here for
+ ;; FILESPEC="TEST:Load-Test" and
+ ;; (LOGICAL-PATHNAME-TRANSLATIONS "TEST")
+ ;; = (("**;*.*.*" "/foo/bar/**/*.*")).
+ ;; Physicalizing the pathname before merging
+ ;; is a workaround, but the ANSI spec talks about
+ ;; MERGE-PATHNAMES accepting (and returning)
+ ;; logical pathnames, so a true fix would probably
+ ;; include fixing MERGE-PATHNAMES, then probably
+ ;; revisiting this code.
+ (ppn (physicalize-pathname (pathname filespec)))
+ (unix-name (unix-namestring ppn t)))
+ (if (or unix-name (pathname-type ppn))
+ (internal-load ppn
+ unix-name
+ internal-if-does-not-exist
+ verbose
+ print)
+ (internal-load-default-type
+ ppn
+ internal-if-does-not-exist
+ verbose
+ print)))))))
\f
;;; Load a code object. BOX-NUM objects are popped off the stack for
;;; the boxed storage section, then SIZE bytes of code are read in.