Browse Source
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>maint
Jason Riedy
19 years ago
committed by
Junio C Hamano
4 changed files with 37 additions and 0 deletions
@ -0,0 +1,26 @@
@@ -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; |
||||
} |
Loading…
Reference in new issue