factor/basis/unix/utilities/utilities.factor

23 lines
648 B
Factor
Raw Normal View History

2008-10-18 22:14:51 -04:00
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.c-types alien.data alien.strings
combinators.short-circuit fry kernel layouts sequences accessors
specialized-arrays ;
2008-10-18 22:14:51 -04:00
IN: unix.utilities
SPECIALIZED-ARRAY: void*
2008-10-18 22:14:51 -04:00
: more? ( alien -- ? )
2010-10-25 14:22:50 -04:00
{ [ ] [ void* deref ] } 1&& ;
2008-10-18 22:14:51 -04:00
: advance ( void* -- void* )
cell swap <displaced-alien> ;
: alien>strings ( alien encoding -- strings )
[ [ dup more? ] ] dip
2010-10-25 14:22:50 -04:00
'[ [ advance ] [ void* deref _ alien>string ] bi ]
produce nip ;
2008-10-18 22:14:51 -04:00
: strings>alien ( strings encoding -- array )
'[ _ malloc-string ] void*-array{ } map-as f suffix ;