psyntax: 'include' no longer rejects relative file names.
authorLudovic Courtès <ludo@gnu.org>
Thu, 5 Mar 2020 21:59:05 +0000 (22:59 +0100)
committerLudovic Courtès <ludo@gnu.org>
Thu, 5 Mar 2020 22:04:05 +0000 (23:04 +0100)
Fixes a regression introduced in commit
fd2ffc649c2d08639c2ac41c25e4ebdbeb4b151d whereby including a relative
file name would result in:

  ice-9/psyntax.scm:3254:24: attempt to include relative file name but could not determine base dir

* module/ice-9/psyntax.scm (call-with-include-port)[syntax-dirname]:
Lookup 'filename (symbol), not filename (identifier).
* module/ice-9/psyntax-pp.scm: Regenerate.

module/ice-9/psyntax-pp.scm
module/ice-9/psyntax.scm

index ca9a0da56dddc75439d2a655f90fb428e64f3ced..b19ed77ed559e6ff9dbf9aff4a74927c84680582 100644 (file)
           (lambda (stx)
             (letrec*
               ((src (syntax-source stx))
-               (filename (if src (assq-ref src filename) #f)))
+               (filename (if src (assq-ref src 'filename) #f)))
               (if (string? filename) (dirname filename) #f)))))
     (lambda* (filename proc #:key (dirname (syntax-dirname filename) #:dirname))
       "Like @code{call-with-input-file}, except relative paths are\nsearched relative to the @var{dirname} instead of the current working\ndirectory.  Also, @var{filename} can be a syntax object; in that case,\nand if @var{dirname} is not specified, the @code{syntax-source} of\n@var{filename} is used to obtain a base directory for relative file\nnames."
index 0c5082d73b5de3c7ad1c98d2de5bd165c0fba1cf..b97911d87de2023005c6fca3c9b338c6d21d6831 100644 (file)
 (define call-with-include-port
   (let ((syntax-dirname (lambda (stx)
                           (define src (syntax-source stx))
-                          (define filename (and src (assq-ref src filename)))
+                          (define filename (and src (assq-ref src 'filename)))
                           (and (string? filename)
                                (dirname filename)))))
     (lambda* (filename proc #:key (dirname (syntax-dirname filename)))