Example #1
0
char*
win_build_environment(char* new_env)
{
    if (new_env == NULL) {
	return NULL;
    } else {
	char *tmp, *merged;
	
	erts_smp_rwmtx_rlock(&environ_rwmtx);
	tmp = GetEnvironmentStrings();
	merged = merge_environment(tmp, new_env);

	FreeEnvironmentStrings(tmp);
	erts_smp_rwmtx_runlock(&environ_rwmtx);
	return merged;
    }
}
Example #2
0
char*
win_build_environment(char* new_env)
{
    if (new_env == NULL) {
	return NULL;
    } else {
	WCHAR *tmp, *merged, *tmp_new;

	tmp_new = (WCHAR *) new_env;
	
	erts_rwmtx_rlock(&environ_rwmtx);
	tmp = GetEnvironmentStringsW();
	merged = merge_environment(tmp, tmp_new);

	FreeEnvironmentStringsW(tmp);
	erts_rwmtx_runlock(&environ_rwmtx);
	return (char *) merged;
    }
}