ref: ff6414e7db54f48c71465ba63fb22931f44a43c2
parent: e28466717fffc16d6d2d0257c782270a04303596
author: Jacob Moody <moody@posixcafe.org>
date: Fri Dec 12 00:12:21 EST 2025
libnpe: add unsetenv()
--- a/include/npe/stdlib.h
+++ b/include/npe/stdlib.h
@@ -17,6 +17,7 @@
#define MB_CUR_MAX UTFmax
int setenv(char *name, char *value, int overwrite);
+int unsetenv(char *name);
char *realpath(char *path, char *buffer);
int mkstemp(char *t);
div_t div(int n, int d);
--- a/libnpe/setenv.c
+++ b/libnpe/setenv.c
@@ -13,3 +13,16 @@
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);
+}
--
⑨