From 28d0c259edbbb9d0f0ac91edd3e04d3419c673a3 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 4 Jan 2018 18:35:26 +0100 Subject: [PATCH] mes: with-input-from-string: peek fix. * 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 | 5 +++-- tests/guile.test | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/module/mes/guile.mes b/module/mes/guile.mes index 4122c6d8..bd2f3bb4 100644 --- a/module/mes/guile.mes +++ b/module/mes/guile.mes @@ -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 diff --git a/tests/guile.test b/tests/guile.test index 4a3366be..0af3b35e 100755 --- a/tests/guile.test +++ b/tests/guile.test @@ -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)