diff options
Diffstat (limited to 'schmooz.scm')
-rw-r--r-- | schmooz.scm | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/schmooz.scm b/schmooz.scm index 75ddfa7..39785f3 100644 --- a/schmooz.scm +++ b/schmooz.scm @@ -359,6 +359,15 @@ ((not (and (char? chr) (not (char-whitespace? chr)))) str) (read-char port))) +(define (pathname->local-filename path) + (define vic (pathname->vicinity path)) + (define plen (string-length path)) + (let ((vlen (string-length vic))) + (if (and (substring? vic path) + (< vlen plen)) + (in-vicinity (user-vicinity) (substring path vlen plen)) + (slib:error 'pathname->local-filename path)))) + ;;;@ SCHMOOZ files. (define schmooz (let* ((scheme-file? (filename:match-ci?? "*??scm")) @@ -400,9 +409,12 @@ (define sl (string-length file)) (cond ((texi-file? file) (schmooz-texi-file file)) ((scheme-file? file) - (schmooz-scm-file file (scm->txi file))) + (schmooz-scm-file + file (pathname->local-filename (scm->txi file)))) (else (schmooz-scm-file - file (string-append file ".txi"))))) + file + (pathname->local-filename + (string-append file ".txi")))))) files)))) ;;; SCHMOOZ-TOPS - schmooz top level forms. |