/* * what an argument list looks like internally */ #ifndef _ARGS_D #define _ARGS_D /* generic arglist */ struct arg_t { int argc; char **argv; } ; /* environment variable */ struct env_t { char *name; char *value; int flags; #define ENV_EXPORT 0x01 /* exported variable */ #define ENV_TRACKED 0x02 /* tracked variable */ #define ENV_ALIAS 0x04 /* alias, not variable */ #define ENV_FUNCTION 0x08 /* function, not variable */ } ; /* environment block */ struct environ_t { char *textblock; /* formatted environment for passing to children */ int touched; /* has the environment been touched since last time * we created the textblock? */ int argc; /* the environment variables */ struct env_t *argv; } ; #endif /*_ARGS_D*/