1
0
mirror of https://github.com/git/git.git synced 2024-11-18 19:03:52 +01:00
git/compat/unsetenv.c
Benoit Sigoure f1e2a48d18 Revert "compat/unsetenv.c: Fix a sparse warning"
This reverts commit ec535cc27e6c4f5e0b1d157e04f5511f166ecd9d.

POSIX explicitly states "the [environ] variable, which
must be declared by the user if it is to be used directly".
Not declaring it causes compilation to fail on OS X.

Instead don't declare the variable on MinGW, as it causes
a spurious warning there.

Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-07-21 15:09:56 -07:00

28 lines
591 B
C

#include "../git-compat-util.h"
void 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;
}