src/module-impl.lisp (find-file): Take a home path rather than a scanner.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 4 Aug 2019 12:59:50 +0000 (13:59 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 4 Aug 2019 12:59:50 +0000 (13:59 +0100)
Honestly, picking the home path out of the scanner input was always a
bit of a stretch.

Obviously, we also need to fix up the callers, but there's only one of
them.

doc/module.tex
src/module-impl.lisp
src/module-parse.lisp

index 2568481..67bf377 100644 (file)
 \begin{describe}{var}{*module-dirs*}
 \end{describe}
 
-\begin{describe}{fun}{find-file @<scanner> @<name> @<what> @<thunk>}
+\begin{describe}{fun}{find-file @<home> @<name> @<what> @<thunk>}
 \end{describe}
 
 \begin{describe}{fun}
index 268f4bc..44aa0b8 100644 (file)
    See `find-file' for the grubby details.")
 
 (export 'find-file)
-(defun find-file (scanner name what thunk)
+(defun find-file (home name what thunk)
   "Find a file called NAME on the module search path, and call THUNK on it.
 
-   The file is searched for relative to the SCANNER's current file, and also
+   The file is searched for relative to the HOME file or directory, and also
    in the directories mentioned in the `*module-dirs*' list.  If the file is
    found, then THUNK is invoked with two arguments: the name we used to find
    it (which might be relative to the starting directory) and the truename
    THUNK is not invoked with any additional handlers defined."
 
   (handler-case
-      (dolist (dir (cons (pathname (scanner-filename scanner)) *module-dirs*)
-              (values nil nil))
+      (dolist (dir (cons home *module-dirs*) (values nil nil))
        (let* ((path (merge-pathnames name dir))
               (probe (probe-file path)))
          (when probe
index 81a3956..df058be 100644 (file)
   (declare (ignore pset))
   (flet ((common (name type what thunk)
           (when name
-            (find-file scanner
+            (find-file (pathname (scanner-filename scanner))
                        (merge-pathnames name
                                         (make-pathname :type type
                                                        :case :common))