diff options
| -rw-r--r-- | geiser/eval.scm | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/geiser/eval.scm b/geiser/eval.scm index 7d82f7d..b4c0ea0 100644 --- a/geiser/eval.scm +++ b/geiser/eval.scm @@ -62,8 +62,15 @@ SUBR, MSG and REST."            (cons 'msg (if msg (apply format (cons #f (cons msg margs))) '()))            (cons 'rest (or rest '()))))) -(define (comp-file path) +(define (comp-file path . dest)    "Compile and load file, given its full @var{path}." -  (compile-file path)) +  (let ((dest (if (null? dest) +                  (dirname path) +                  (car dest))) +        (current (getcwd))) +    (dynamic-wind +        (lambda () (chdir dest)) +        (lambda () (compile-file path)) +        (lambda () (chdir current)))))  ;;; eval.scm ends here | 
