summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkitty <nepeta@canaglie.net>2026-03-04 17:58:40 +1100
committerkitty <nepeta@canaglie.net>2026-03-04 17:58:40 +1100
commitfb49822582a2a0761d2a9a47d5f6fe5948b7077e (patch)
tree8a4469044fe7ea3f0bfb2f6c108b9a19378301e6
parentb281bf7d9ee53e4585210bb8461d78bb2f386a21 (diff)
um
-rw-r--r--jefs.fs15
1 files changed, 12 insertions, 3 deletions
diff --git a/jefs.fs b/jefs.fs
index 23cde43..2adfb89 100644
--- a/jefs.fs
+++ b/jefs.fs
@@ -289,14 +289,19 @@ max-include-depth 1+ constant #buffers
make buffers /buffer #buffers * allot
make buffers-used #buffers cells allot
make buffers->in #buffers cells allot
+make buffers-fd #buffers cells allot
: cbuffer include-depth /buffer * buffers + ;
: cbuffer-used include-depth cells buffers-used + ;
: cbuffer->in include-depth cells buffers->in + ;
-: buffer-refill ( u|0 ) cbuffer /buffer stdin read-file 0<> if 0 then
+: cbuffer-fd include-depth cells buffers-fd + ;
+stdin buffers-fd !
+: buffer-refill ( u|0 ) cbuffer /buffer cbuffer-fd @ read-file 0<> if 0 then
0 cbuffer->in ! dup cbuffer-used ! ; \ returns zero on error or nothing read.
-: buffer-remaining? cbuffer->in @ cbuffer-used @ >= ;
-: buffer-key buffer-remaining? not if buffer-refill 0= if -1 [ ret, ] then then
+\ this is Borken
+: buffer-empty? cbuffer->in @ cbuffer-used @ .s >= .s ;
+\ bug: always seems to refill
+: buffer-key buffer-empty? if buffer-refill 0= if -1 [ ret, ] then then
cbuffer cbuffer->in @ + c@
cbuffer->in @ 1+ cbuffer->in ! ;
@@ -331,4 +336,8 @@ make line-buffer line-buffer-length allot
.free
\ input-buffer buffer-length stdin read-file drop input-buffer swap evaluate
+buffer-key
+buffer-key
+char = emit cr
+.s
bye