Fix bug in previous change.
authorChris Hanson <org/chris-hanson/cph>
Thu, 4 Nov 1993 22:42:45 +0000 (22:42 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 4 Nov 1993 22:42:45 +0000 (22:42 +0000)
v7/src/runtime/graphics.scm

index 85e09bda9944b345e2823150bc3fc84202c6a758..03655dc53d5a2c0fe31871685abd137fece22f40 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: graphics.scm,v 1.8 1993/10/26 23:19:26 cph Exp $
+$Id: graphics.scm,v 1.9 1993/11/04 22:42:45 cph Exp $
 
 Copyright (c) 1989-91 Massachusetts Institute of Technology
 
@@ -181,21 +181,24 @@ MIT in each case. |#
   (set! graphics-types (cons (cons name type) graphics-types)))
 
 (define (enumerate-graphics-device-types)
-  (define (search items)
-    (if (pair? items)
-       (let* ((name.type (car items)))
-         (if ((graphics-device-type/operation/available? (cdr name.type)))
-             (cons (car name.type) (search (cdr items)))
-             (search (cdr items))))
-       '()))
-  (search graphics-types))
+  (map car (%enumerate-graphics-device-types)))
+
+(define (%enumerate-graphics-device-types)
+  (let loop ((items graphics-types) (result '()))
+    (if (null? items)
+       (reverse result)
+       (let ((item (car items)))
+         (loop (cdr items)
+               (if ((graphics-device-type/operation/available? (cdr item)))
+                   (cons item result)
+                   result))))))
 
 (define (get-default-graphics-device-type)
-  (let ((types (enumerate-graphics-device-types)))
+  (let ((types (%enumerate-graphics-device-types)))
     (if (null? types)
        (error "No graphics device types supported."
               'GET-DEFAULT-GRAPHICS-DEVICE-TYPE))
-    (car types)))
+    (cdar types)))
 
 (define (lookup-graphics-device-type type-name)
   (let ((entry (assq type-name graphics-types)))