const char * util_interp_setenv( const char * variable , const char * value) {
  char * interp_value = util_alloc_envvar( value );
  if (interp_value != NULL) {
    util_setenv( variable , interp_value);
    free( interp_value );
  } else
    util_unsetenv( variable );
  
  return getenv( variable );
}
Example #2
0
void site_config_clear_pathvar( site_config_type * site_config ) {
  stringlist_clear( site_config->path_variables_user );
  stringlist_clear( site_config->path_values_user );
  {
    /* Recover the original values. */
    hash_iter_type * hash_iter = hash_iter_alloc( site_config->path_variables_site );
    while (!hash_iter_is_complete( hash_iter )) {
      const char * var       = hash_iter_get_next_key( hash_iter );
      const char * site_value = hash_get( site_config->path_variables_site , var );
      
      if (site_value == NULL)
        util_unsetenv( var );
      else
        util_setenv( var , site_value );
    }
  }
}
Example #3
0
void site_config_clear_env( site_config_type * site_config ) {
  /* 1: Clearing the user_set variables. */
  {
    hash_iter_type * hash_iter = hash_iter_alloc( site_config->env_variables_user );
    while (!hash_iter_is_complete( hash_iter )) {
      const char * var       = hash_iter_get_next_key( hash_iter );
      util_unsetenv( var );
    }
    hash_iter_free( hash_iter );
    hash_clear( site_config->env_variables_user );
  }
  

  /* 2: Recovering the site_set variables. */
  {
    hash_iter_type * hash_iter = hash_iter_alloc( site_config->env_variables_site );
    while (!hash_iter_is_complete( hash_iter )) {
      const char * var       = hash_iter_get_next_key( hash_iter );
      const char * value     = hash_get( site_config->env_variables_site , var );
      util_interp_setenv( var , value );    /* Will call unsetenv if value == NULL */
    }
    hash_iter_free( hash_iter );
  }  
}