Re: set-environment-variable
Lassi Kortela 07 Dec 2019 16:14 UTC
> After accepting the PR, following my MO I'm implementing it in Chibi
> Scheme.
Thanks! Sorry I dropped the ball on that. I think Chibi has getenv
already, but not setenv.
> Turns out POSIX gives us an option not exposed by this or
> other Scheme APIs I've glanced at, an overwrite argument, see:
> https://pubs.opengroup.org/onlinepubs/9699919799/functions/setenv.html
>
>> If the environment variable named by envname already exists and the
>> value of overwrite is non-zero, the function shall return success
>> and the environment shall be updated. If the environment variable
>> named by envname already exists and the value of overwrite is zero,
>> the function shall return success and the environment shall remain
>> unchanged.
>
> It is worthwhile to add this to the SRFI 170 API, as, say, an
> optional argument, defaulting to overwrite?
Yeah, that flag has been in the Unix/C API since forever. I've never
seen anyone use it... People always want to overwrite the old value.
Therefore I suggest leaving out the option from the Scheme API.
The WinAPI function is SetEnvironmentVariable().
<https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setenvironmentvariable>