Add compat/unsetenv.c .

Implement a (slow) unsetenv() for older systems.

Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Jason Riedy
2006-01-25 12:38:36 -08:00
committed by Junio C Hamano
parent 5ea06e2014
commit 731043fd4d
4 changed files with 37 additions and 0 deletions

26
compat/unsetenv.c Normal file
View File

@ -0,0 +1,26 @@
#include <stdlib.h>
#include <string.h>
void gitunsetenv (const char *name)
{
extern char **environ;
int src, dst;
size_t nmln;
nmln = strlen(name);
for (src = dst = 0; environ[src]; ++src) {
size_t enln;
enln = strlen(environ[src]);
if (enln > nmln) {
/* might match, and can test for '=' safely */
if (0 == strncmp (environ[src], name, nmln)
&& '=' == environ[src][nmln])
/* matches, so skip */
continue;
}
environ[dst] = environ[src];
++dst;
}
environ[dst] = NULL;
}