From 232bbb58c381f635749ba957653e9e7d39aa78a4 Mon Sep 17 00:00:00 2001 From: kitty Date: Mon, 2 Mar 2026 15:16:22 +1100 Subject: move-back now i need to actually use it in (refill) --- jefs.fs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'jefs.fs') diff --git a/jefs.fs b/jefs.fs index e1b4853..5c3b7d0 100644 --- a/jefs.fs +++ b/jefs.fs @@ -211,8 +211,8 @@ variable hld \ }}} : ? @ . ; -: .s sp cell+ ( skip sp itself ) begin dup s0 @ > while dup @ .qword cell+ repeat drop cr ; -: .rs rp cell+ ( skip rsp itself ) begin dup rs0 @ > while dup @ .qword cell+ repeat drop cr ; +: .s sp cell+ ( skip sp itself ) begin dup s0 @ > while dup @ . cell+ repeat drop cr ; +: .rs rp cell+ ( skip rsp itself ) begin dup rs0 @ > while dup @ . cell+ repeat drop cr ; : bytes-allocated heremax @ herestart @ - ; : bytes-used here @ herestart @ - ; @@ -279,13 +279,16 @@ variable source-id init-source source-id ! 8192 constant file-buffer-length -variable file-buffer-used make file-buffer file-buffer-length allot \ todo move remaining stuff back before read-file, \ update tib stuff for new data +\ what if word spans accross refills? maybe parse +\ should be rewritten here to take this into account +: move-back ( -- remaining ) tib @ >in @ + tib @ #tib @ >in @ - dup >r cmove + r> #tib ! 0 >in ! #tib @ ; \ maybe make this less shitty at sum pt : (refill) ( fd -- flag ) >r file-buffer file-buffer-length r> read-file - 0= if ?dup 0> if ( TODO > ) drop ( < TODO ) + 0= if ?dup 0> if ( TODO > ) drop ( < TODO ) true else false then else false then ; : refill ( -- flag ) source-id @ dup 0>= if (refill) else drop false then ; : refill ." UNIMPLEMENTED" cr ; -- cgit v1.2.3