diff options
Diffstat (limited to 'third_party/git/compat/setenv.c')
-rw-r--r-- | third_party/git/compat/setenv.c | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/third_party/git/compat/setenv.c b/third_party/git/compat/setenv.c deleted file mode 100644 index 7849f258d201..000000000000 --- a/third_party/git/compat/setenv.c +++ /dev/null @@ -1,40 +0,0 @@ -#include "../git-compat-util.h" - -int gitsetenv(const char *name, const char *value, int replace) -{ - int out; - size_t namelen, valuelen; - char *envstr; - - if (!name || strchr(name, '=') || !value) { - errno = EINVAL; - return -1; - } - if (!replace) { - char *oldval = NULL; - oldval = getenv(name); - if (oldval) return 0; - } - - namelen = strlen(name); - valuelen = strlen(value); - envstr = malloc(st_add3(namelen, valuelen, 2)); - if (!envstr) { - errno = ENOMEM; - return -1; - } - - memcpy(envstr, name, namelen); - envstr[namelen] = '='; - memcpy(envstr + namelen + 1, value, valuelen); - envstr[namelen + valuelen + 1] = 0; - - out = putenv(envstr); - /* putenv(3) makes the argument string part of the environment, - * and changing that string modifies the environment --- which - * means we do not own that storage anymore. Do not free - * envstr. - */ - - return out; -} |