Add a global edit procedure that autoloads Edwin.
authorMatt Birkholz <matt@birchwood-abbey.net>
Sun, 12 Mar 2017 17:11:36 +0000 (10:11 -0700)
committerMatt Birkholz <matt@birchwood-abbey.net>
Sun, 12 Mar 2017 17:11:36 +0000 (10:11 -0700)
src/edwin/editor.scm
src/edwin/edwin.pkg
src/runtime/global.scm
src/runtime/load.scm
src/runtime/runtime.pkg

index e74655e9c87f0fd6b84b4412f1e63267b633d7aa..da0db703607ce5440e46fe0fd30977af373980fd 100644 (file)
@@ -87,15 +87,6 @@ USA.
                 ,@operations))
              message))))))))
 
-(define (edwin . args) (apply edit args))
-(simple-command-line-parser "edit" edit
-                           "Causes Edwin to start immediately after Scheme.")
-
-(define (spawn-edwin . args)
-  (let ((thread (create-thread #f (lambda () (apply edwin args)))))
-    (detach-thread thread)
-    thread))
-
 (define edwin-editor #f)
 (define editor-abort)
 (define current-editor)
index c67639ac6ef73313f99b99830f395a4c072c4d57..acb084f6cc637a40eeb0c106666ccc52aea0c993 100644 (file)
@@ -135,13 +135,10 @@ USA.
   (export ()
          create-editor
          create-editor-args
-         edit
-         edwin
          inhibit-editor-init-file?
          reset-editor
          reset-editor-windows
-         (save-editor-files debug-save-files)
-         spawn-edwin)
+         (save-editor-files debug-save-files))
   (export (edwin class-macros)
          class-instance-transforms))
 
index bf8adf72e9e19e981bfb563e0047389aed4f22bf..e25fc767af0570e49f40f96c62f03dee5dbec1e4 100644 (file)
@@ -152,6 +152,32 @@ USA.
   (if (or (default-object? max) (not max))
       (with-output-to-string (lambda () (write object)))
       (with-output-to-truncated-string max (lambda () (write object)))))
+
+(define (edit . args)
+  (let ((env (let ((package (name->package '(edwin))))
+              (and package (package/environment package)))))
+    (if env
+       (apply (environment-lookup end '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))
 \f
 (define (pa procedure)
   (guarantee procedure? procedure 'PA)
index a067496435fe1527537f2078b8b3c34bddd0f3b4..d2475b5c6db122368fafd28605277d3b56a27122 100644 (file)
@@ -714,19 +714,8 @@ ADDITIONAL OPTIONS supported by this band:\n")
                            environment
                            repl)))))
     "Evaluates the argument expressions as if in the REPL.")
-  (simple-command-line-parser "edit"
-    (named-lambda (command-line-edit)
-      (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))))))))
-      ((environment-lookup #f 'edit)))
-    "Causes Edwin to start immediately after Scheme.")
+  (simple-command-line-parser "edit" edit
+                             "Causes Edwin to start immediately after Scheme.")
   (simple-command-line-parser "help" show-command-line-options #f)
   (simple-command-line-parser "version" (lambda () (%exit 0)) #f)
   (set-command-line-parser!
index 0b914f42e7a9b897e40487729af773292103239d..fa194bab48759d6f30266009a714c820ca6e324f 100644 (file)
@@ -444,6 +444,8 @@ USA.
          constant-procedure
          default/exit
          default/quit
+         edit
+         edwin
          environment-link-name
          ephemeron-broken?
          ephemeron-datum
@@ -513,6 +515,7 @@ USA.
          set-interrupt-enables!
          show-time
          simple-top-level-environment
+         spawn-edwin
          system-hunk3-cons
          system-hunk3-cxr0
          system-hunk3-cxr1