\ -*- mode: forth -*-
\ $Id: reversefile.bigforth,v 1.2 2001/06/24 22:53:06 doug Exp $
\ http://www.bagley.org/~doug/shootout/
\ Idea by albert@spenarnc.xs4all.nl (Albert van der Horst) in
\ news:<GFDtFA.Lwz.1.spenarn@spenarnc.xs4all.nl>
2000000 constant size \ maximum size of input
size allocate throw constant buf
4096 constant linesize
create line linesize 2 + allot
: revfile >r
line buf size + begin
1-
line linesize r@ read-line throw
while \ !! handle line buf overflows
>r #lf over c!
r@ - 2dup r> move
repeat
drop nip 1+ buf size + over - rdrop ;
stdin revfile type bye