All pastes #263394 Raw Edit

Untitled

public text v1 · immutable
·published 2006-12-01 14:15 UTC
rendered paste body
variable fid
: open ( c-addr u -- )  r/o open-file throw fid ! ;
: close ( -- )  fid @ close-file throw ;
: read-chars ( c-addr u1 -- u2 )  fid @ read-file throw ;
: size ( -- u )  fid @ file-size throw drop ;

create c 1 chars allot
: read-char ( -- u )  c 1 read-chars ;
: display-char ( -- )  c c@ emit ;

: go ( c-addr u -- )  open  begin read-char while display-char repeat  close ;

: new-buffer ( u -- c-addr )  allocate throw ;
: inhale ( -- c-addr u )  size dup chars new-buffer tuck swap read-chars ;
: discard ( c-addr u -- )  drop free throw ;

: go1 ( c-addr u -- )  open  inhale 2dup type discard  close ;