: group-name ( id -- string )
dup group-cache get [
- dupd at* [ name>> nip ] [ drop number>string ] if
+ ?at [ name>> ] [ number>string ] if
] [
group-struct [ group-gr_name ] [ f ] if*
] if*
#! first group is -1337, legacy unix code
-1337 NGROUPS_MAX [ 4 * <byte-array> ] keep
<int> [ getgrouplist io-error ] 2keep
- [ 4 tail-slice ] [ *int 1- ] bi* >groups ;
+ [ 4 tail-slice ] [ *int 1 - ] bi* >groups ;
PRIVATE>
user-name (user-groups) ;
: all-groups ( -- seq )
- [ getgrent dup ] [ group-struct>group ] [ drop ] produce ;
+ [ getgrent dup ] [ group-struct>group ] produce nip ;
: <group-cache> ( -- assoc )
all-groups [ [ id>> ] keep ] H{ } map>assoc ;