From 343235335f37545e1083b1f114f74f5a3038bd6d Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Fri, 24 Jan 2020 13:31:59 -0800 Subject: [PATCH] better behavior with unsaved DrRacket files --- quad/quadwriter/lang-helper.rkt | 6 +++--- quad/quadwriter/render.rkt | 12 ++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/quad/quadwriter/lang-helper.rkt b/quad/quadwriter/lang-helper.rkt index edf201c8..319cb1bc 100644 --- a/quad/quadwriter/lang-helper.rkt +++ b/quad/quadwriter/lang-helper.rkt @@ -74,19 +74,19 @@ [else (error "Unknown platform. Don't know how to view PDF.")])) (void (system (format open-string pdf-path))))) - (define (make-pdf [pdf-path #false]) + (define (make-pdf [the-pdf-path #false]) (with-logging-to-port (current-output-port) (λ () (with-logging-to-port (current-output-port) - (λ () (render-pdf DOC pdf-path)) + (λ () (render-pdf DOC the-pdf-path)) #:logger quadwriter-logger 'debug)) #:logger quad-logger 'debug)) (module+ pdf - (define pdf (make-pdf)) + (define pdf (make-pdf pdf-path)) (provide pdf)) (module+ main diff --git a/quad/quadwriter/render.rkt b/quad/quadwriter/render.rkt index ed0786d5..66981751 100644 --- a/quad/quadwriter/render.rkt +++ b/quad/quadwriter/render.rkt @@ -213,10 +213,14 @@ #:replace any/c #:compress any/c) . ->* . (or/c void? bytes?)) - (define base-dir (match base-dir-arg - [#false (current-directory)] - [path (define-values (dir name _) (split-path path)) - dir])) + (match-define-values (base-dir _ _) (split-path + (match base-dir-arg + [#false (current-directory)] + ;; for reasons unclear, DrRacket sometimes sneaks + ;; an "unsaved editor" into this arg, despite efforts to prevent + ;; probably + ["unsaved editor" pdf-path-arg] + [path path]))) (define pdf-path (setup-pdf-path pdf-path-arg)) (unless replace-existing-file?