// /std/living/env.c
// from the Nightmare mudlib
// contains environment variables
// originally from the TMI distribution mudlib
private mapping env_var;
mixed query_env (string env);
int setenv (string env, mixed value)
{
if(!env_var)
env_var = ([]);
if(env_var[env])
{
env_var[env] = value;
return 1;
}
env_var += ([ env : value]);
return 1;
}
int set_env (string env, mixed value) {
return setenv(env, value);
}
mixed getenv(string env)
{
if(!env_var)
{
env_var = ([]);
return 0;
}
return env_var[env];
}
mixed query_env(string env) {
return getenv(env);
}
int remove_env (string env)
{
if(env_var && env_var[env])
{
map_delete(env_var, env);
return 1;
}
return 0;
}
string * regexp_query_env (string pattern)
{
string *vars, *env;
vars = keys(env_var);
vars -= ({ 0 }); /* may as well skip all the "deleted" ones for now */
env = regexp (vars, pattern);
if (!env)
env = ({});
return env;
}