From 6145691ec608df6971d9bb865678b30fa15a3c25 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 26 Oct 2001 22:35:43 +0000 Subject: [PATCH] . original commit: b58dd97194b162bce69d7ae13d1b750e0e6f3615 --- collects/mred/mred.ss | 27 +++++++++++++++++++++++++++ collects/mred/private/kernel.ss | 7 +++---- notes/mred/HISTORY | 6 ++++++ 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/collects/mred/mred.ss b/collects/mred/mred.ss index 8d916724..943a904b 100644 --- a/collects/mred/mred.ss +++ b/collects/mred/mred.ss @@ -5468,6 +5468,33 @@ (wx:display-size xb yb) (values (unbox xb) (unbox yb)))) +;; Currently only used for PS print and preview +(wx:set-executer + (let ([orig-err (current-error-port)]) + (lambda (prog . args) + (let ([cmd (string-append + prog + (let loop ([args args]) + (if (null? args) + "" + (format " ~s~a" (car args) (loop (cdr args))))))]) + (let-values ([(in out pid err x) (apply values (process cmd))]) + (close-output-port out) + (let ([echo (lambda (p) + (thread (lambda () + (dynamic-wind + void + (lambda () + (let loop () + (let ([l (read-line p)]) + (unless (eof-object? l) + (fprintf orig-err "~a~n" l) + (loop))))) + (lambda () (close-input-port p))))))]) + (echo in) + (echo err) + (void))))))) + (define register-collecting-blit (case-lambda [(canvas x y w h on off) (register-collecting-blit canvas x y w h on off 0 0 0 0)] diff --git a/collects/mred/private/kernel.ss b/collects/mred/private/kernel.ss index 86820f78..eca32b92 100644 --- a/collects/mred/private/kernel.ss +++ b/collects/mred/private/kernel.ss @@ -634,9 +634,7 @@ force-display-focus is-focus-on? get-editor - set-editor - get-wheel-step - set-wheel-step) + set-editor) (define-class editor-admin% object% #f refresh-delayed? popup-menu @@ -1397,7 +1395,8 @@ set-pasteboard-editor-maker set-menu-tester location->window - set-dialogs) + set-dialogs + set-executer) ) ;; end diff --git a/notes/mred/HISTORY b/notes/mred/HISTORY index 7ed8926b..913d4cb4 100644 --- a/notes/mred/HISTORY +++ b/notes/mred/HISTORY @@ -1,4 +1,10 @@ +Version 199.27: + + * X: when an external program is executed for PS printing or preview, + command-line flags can be supplied, and the stdout/stderr output of + the program is directed to MrEd's original stderr. + Version 199.26: * Added a `use-paper-bbox?' initialization argument to