git-commit-vandalism/compat/unsetenv.c
Jason Riedy 731043fd4d 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>
2006-01-25 15:10:39 -08:00

27 lines
566 B
C

#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;
}