shithub: npe

Download patch

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);
+}
--