12 lines
516 B
Forth
12 lines
516 B
Forth
256 buffer: filename-buf
|
|
: each-filename { xt -- } \ xt-consuming variant
|
|
s" ." open-dir throw { d }
|
|
begin filename-buf 256 d read-dir throw while
|
|
filename-buf swap xt execute
|
|
repeat d close-dir throw ;
|
|
|
|
\ immediate variant
|
|
: each-filename[ s" ." postpone sliteral ]] open-dir throw >r begin filename-buf 256 r@ read-dir throw while filename-buf swap [[ ; immediate compile-only
|
|
: ]each-filename ]] repeat drop r> close-dir throw [[ ; immediate compile-only
|
|
|
|
: ls ( -- ) [: cr type ;] each-filename ;
|