Handle case where INPUT-LINE port operation isn't available; was
authorChris Hanson <org/chris-hanson/cph>
Sun, 25 Apr 2010 04:31:36 +0000 (21:31 -0700)
committerChris Hanson <org/chris-hanson/cph>
Sun, 25 Apr 2010 04:31:36 +0000 (21:31 -0700)
breaking use of comments in Edwin evaluation.

src/runtime/parse.scm

index 5d5ece9e840b39acff98d03144cf15184d284dda..17bbca3ba261211d06b1aa299342403c34497208 100644 (file)
@@ -248,7 +248,9 @@ USA.
            (else (discard action)))))
 
   ;; If we're past the second line, just discard.
-  (if (and (< (current-line port db) 2)
+  (if (and (let ((line (current-line port db)))
+            (and line
+                 (< line 2)))
           (db-enable-file-attributes-parsing db))
       (scan)
       (discard continue-parsing)))
@@ -829,8 +831,11 @@ USA.
            default)
        default)))
 
-(define-integrable (current-line port db)
-  ((db-input-line db) port))
+(define (current-line port db)
+  (let ((proc (db-input-line db)))
+    (if proc
+       (proc port)
+       #f)))
 
 (define-integrable (current-position port db)
   ((db-get-position db) port))