diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2012-08-25 06:10:05 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2012-08-25 06:20:33 +0200 |
commit | 6c5ceb7ce8f194a7d0e542a3bae268e0506fdd71 (patch) | |
tree | c08e36082a65978f268aa33f5203d16b9aae2847 | |
parent | 9b31ffba524337003c00a62997a27a62a270100e (diff) | |
download | geiser-chez-6c5ceb7ce8f194a7d0e542a3bae268e0506fdd71.tar.gz geiser-chez-6c5ceb7ce8f194a7d0e542a3bae268e0506fdd71.tar.bz2 |
racket: reading into elisp-land the cache dir as needed
When no cache dir is set in the emacs customization, we ask Racket for
the one that it's using by default.
-rw-r--r-- | elisp/geiser-racket.el | 9 | ||||
-rw-r--r-- | scheme/racket/geiser/user.rkt | 8 |
2 files changed, 10 insertions, 7 deletions
diff --git a/elisp/geiser-racket.el b/elisp/geiser-racket.el index 0cb4663..6a9847b 100644 --- a/elisp/geiser-racket.el +++ b/elisp/geiser-racket.el @@ -99,10 +99,11 @@ This function uses `geiser-racket-init-file' if it exists." (defconst geiser-racket--prompt-regexp "\\(mzscheme\\|racket\\)@[^ ]*?> ") (defun geiser-racket--startup (remote) - (when geiser-racket-image-cache-directory - (geiser-eval--send/wait - (format ",set-image-cache %S\n'done" - geiser-racket-image-cache-directory)))) + (if geiser-racket-image-cache-directory + (geiser-eval--send/wait + `(:eval (image-cache ,geiser-racket-image-cache-directory) geiser/user)) + (setq geiser-racket-image-cache-directory + (geiser-eval--send/result '(:eval (image-cache) geiser/user))))) ;;; Remote REPLs diff --git a/scheme/racket/geiser/user.rkt b/scheme/racket/geiser/user.rkt index 5d3ab32..2eb0cb5 100644 --- a/scheme/racket/geiser/user.rkt +++ b/scheme/racket/geiser/user.rkt @@ -93,9 +93,11 @@ (define image-cache (let ([ensure-dir (lambda (dir) - (and (path-string? dir) - (begin (make-directory* dir) dir)))]) - (make-parameter #f ensure-dir))) + (if (path-string? dir) + (begin (make-directory* dir) + (if (path? dir) (path->string dir) dir)) + (path->string (find-system-path 'temp-dir))))]) + (make-parameter (ensure-dir #f) ensure-dir))) (define (geiser-prompt-read prompt) (make-repl-reader (geiser-read prompt))) |