1 ! Copyright (C) 2008 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: assocs combinators help.markup help.syntax init
4 io.streams.string kernel libc sequences splitting
5 strings system vocabs vocabs.loader ;
8 HOOK: os-env os ( key -- value )
10 HOOK: set-os-env os ( value key -- )
12 HOOK: unset-os-env os ( key -- )
14 HOOK: (os-envs) os ( -- seq )
16 HOOK: (set-os-envs) os ( seq -- )
18 HOOK: set-os-envs-pointer os ( malloc -- )
20 : change-os-env ( key quot -- )
21 [ [ os-env ] keep ] dip dip set-os-env ; inline
23 : os-envs ( -- assoc )
24 (os-envs) [ "=" split1 ] H{ } map>assoc ;
26 : set-os-envs ( assoc -- )
27 [ "=" glue ] { } assoc>map (set-os-envs) ;
30 { [ os unix? ] [ "environment.unix" require ] }
31 { [ os windows? ] [ "environment.windows" require ] }
37 os windows? ";" ":" ? split
38 [ add-vocab-root ] each
40 ] "environment" add-startup-hook