Changed display type parsing for DOS.
authorHenry M. Wu <edu/mit/csail/zurich/mhwu>
Wed, 22 Apr 1992 21:03:33 +0000 (21:03 +0000)
committerHenry M. Wu <edu/mit/csail/zurich/mhwu>
Wed, 22 Apr 1992 21:03:33 +0000 (21:03 +0000)
v7/src/edwin/display.scm
v7/src/edwin/editor.scm

index 45fe57d6f126c0c3ea968be398178183784be90d..9dd696177c72ea1770fe42ef4bd65c287f967e79 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/display.scm,v 1.4 1991/03/11 01:14:06 cph Exp $
+;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/display.scm,v 1.5 1992/04/22 21:03:33 mhwu Exp $
 ;;;
 ;;;    Copyright (c) 1989-91 Massachusetts Institute of Technology
 ;;;
 (define (editor-display-types)
   (list-transform-positive display-types display-type/available?))
 
-(define (name->display-type name)
+(define (name->display-type name fail?)
   (let ((display-type
         (list-search-positive display-types
           (lambda (display-type)
             (eq? name (display-type/name display-type))))))
-    (if (not display-type)
+    (if (and (not display-type) fail?)
        (error "Unknown display-type name" name))
     display-type))
\ No newline at end of file
index d4ad59d926fcf636f35fd3a5721f066b7c0b947a..1c01dd1852edb15cce36683e5cc9aef0abfd736e 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/editor.scm,v 1.220 1992/04/07 08:38:33 cph Exp $
+;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/editor.scm,v 1.221 1992/04/22 21:03:05 mhwu Exp $
 ;;;
 ;;;    Copyright (c) 1986, 1989-92 Massachusetts Institute of Technology
 ;;;
   unspecific)
 \f
 (define create-editor-args
-  (list false))
+  '())
 
 (define (create-editor . args)
   (let ((args
     (initialize-inferior-repls!)
     (set! edwin-editor
          (make-editor "Edwin"
-                      (let ((name (car args)))
-                        (cond (name
-                               (name->display-type name))
-                              ((display-type/available? console-display-type)
-                               console-display-type)
-                              ((display-type/available? x-display-type)
-                               x-display-type)
-                              (else
-                               (error "can't find usable display type"))))
-                      (cdr args)))
+                      (let ((name (and (not (null? args))
+                                        (car args))))
+                        (if name
+                             (name->display-type name true)
+                             (let loop ((display-type-names '(CONSOLE X)))
+                               (if (null? display-type-names)
+                                   (error "can't find usable display type")
+                                   (let ((next (name->display-type 
+                                                 (car display-type-names)
+                                                 false)))
+                                     (if (and next 
+                                              (display-type/available? next))
+                                         next
+                                         (loop (cdr display-type-names))))))))
+                      (if (null? args)
+                          '()
+                          (cdr args))))
     (set! edwin-initialization
          (lambda ()
            (set! edwin-initialization false)