From: Matt Birkholz Date: Wed, 26 Apr 2017 02:09:23 +0000 (-0700) Subject: Merge branch 'master' into pucked. X-Git-Tag: mit-scheme-pucked-9.2.12~153 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=96ab7641fa75c424061b2c1dc669c1a4fea7eecf;p=mit-scheme.git Merge branch 'master' into pucked. --- 96ab7641fa75c424061b2c1dc669c1a4fea7eecf diff --cc src/runtime/global.scm index 9ce9b8fed,7d7bef281..97ac8fdb2 --- a/src/runtime/global.scm +++ b/src/runtime/global.scm @@@ -149,35 -149,10 +149,36 @@@ USA (define with-values call-with-values) (define (write-to-string object #!optional max) - (if (or (default-object? max) (not max)) - (with-output-to-string (lambda () (write object))) - (with-output-to-truncated-string max (lambda () (write object))))) + ((if (or (default-object? max) (not max)) + call-with-output-string + call-with-truncated-output-string) + (lambda (port) (write object port)))) + +(define (edit . args) + (let ((env (let ((package (name->package '(edwin)))) + (and package (package/environment package))))) + (if env + (apply (environment-lookup env 'edit) args) + (begin + (with-notification + (lambda (port) (display "Loading Edwin" port)) + (lambda () + (parameterize* + (list (cons param:suppress-loading-message? #t)) + (lambda () + (load-option 'EDWIN) + (if (let ((DISPLAY (get-environment-variable "DISPLAY"))) + (and (string? DISPLAY) + (not (string-null? DISPLAY)))) + (ignore-errors (lambda () (load-option 'x11-screen)))))))) + (apply (environment-lookup (->environment '(edwin)) 'edit) args))))) + +(define edwin edit) + +(define (spawn-edwin . args) + (let ((thread (create-thread #f (lambda () (apply edwin args))))) + (detach-thread thread) + thread)) (define (pa procedure) (guarantee procedure? procedure 'PA)