shithub: npe

ref: 2aee89298cbbf5c1b4d50e70733b52ae75c706fd
dir: /libnpe/setenv.c/

View raw version
#include <u.h>
#include <libc.h>

int
setenv(char *name, char *value, int overwrite)
{
	char *s;

	if(overwrite == 0 && (s = getenv(name)) != nil){
		free(s);
		return 0;
	}

	return putenv(name, value);
}

int
unsetenv(char *name)
{
	char ename[100];
	if(name[0]=='\0' || strcmp(name, ".")==0 || strcmp(name, "..")==0 || strchr(name, '/')!=nil
	|| strlen(name) >= sizeof(ename)-5){
		werrstr("bad env name: %s", name);
		return -1;
	}
	snprint(ename, sizeof(ename), "/env/%s", name);
	return remove(ename);
}