mes: with-input-from-string: peek fix.
authorJan Nieuwenhuizen <janneke@gnu.org>
Thu, 4 Jan 2018 17:35:26 +0000 (18:35 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Thu, 4 Jan 2018 17:35:26 +0000 (18:35 +0100)
* module/mes/guile.mes (with-input-from-string): Return actual tell.
* tests/guile.test ("with-input-from-string peek"): Test it.

module/mes/guile.mes
tests/guile.test

index 4122c6d8b0d96b354303a42b533d7c50beaf947e..bd2f3bb47909865632a52809ada39e3df7e62649 100644 (file)
@@ -71,8 +71,9 @@
   (let ((tell 0)
         (end (string-length string)))
     (set! peek-char
-          (lambda () (if (= tell end) (integer->char -1)
-                         (string-ref string (- tell 1)))))
+          (lambda ()
+            (if (= tell end) (integer->char -1)
+                (string-ref string tell))))
     (set! read-char
           (lambda () (if (= tell end) (integer->char -1)
                          (begin
index 4a3366be45bd71e2cd0adf17e17658a73a0bcf3a..0af3b35e8175f2fed5e469202d4e7fecd5e9f4e0 100755 (executable)
@@ -112,4 +112,9 @@ exit $?
     (push-input sp)
     (and (pop-input) (not (pop-input)))))
 
+(pass-if-equal "with-input-from-string peek"
+               #\X
+               (with-input-from-string "X"
+                 (lambda () (peek-char))))
+
 (result 'report)