> From: Lassi Kortela <xxxxxx@lassi.io> > Date: Saturday, December 07, 2019 10:14 AM >> 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. No, not at all, I consider it a primary duty to maintain the Chibi Scheme UNIX and UNIX-like example implementation. I did a search for a setenv and couldn't find it. It's a very simple interface, it will take me less time to write it than what I'm taking in this API question. >> 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. I'm having extreme difficulty imagining why anyone would want it, especially since "failure" is silent. But someone, sometime thought it was useful, and this *is* a POSIX interface, so we should consider it. I think I'll include the flag in the wrapper, and for now omit it in the Scheme call, while we wait on any other opinions on it. > [ Windows, which I left behind after XP. ] - Harold