mirror of
https://github.com/git/git.git
synced 2024-11-24 02:17:02 +08:00
a38989bd5b
This compatilibity implementation has been returning a wrong type,
ever since 731043fd
(Add compat/unsetenv.c ., 2006-01-25) added to
the system, yet nobody noticed it in the past 16 years, presumably
because no code checks failures in their unsetenv() calls. Sigh.
For now, make it always succeed.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
30 lines
605 B
C
30 lines
605 B
C
#include "../git-compat-util.h"
|
|
|
|
int gitunsetenv(const char *name)
|
|
{
|
|
#if !defined(__MINGW32__)
|
|
extern char **environ;
|
|
#endif
|
|
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;
|
|
|
|
return 0;
|
|
}
|