Re: [PATCH] Add compat/setenv.c, use in git.c.
Show 29 quoted lines
> +
> +int gitsetenv(const char *name, const char *value, int replace)
> +{
> + int out;
> + size_t namelen, valuelen;
> + char *envstr;
> +
> + if (!name || !value) return -1;
> + if (!replace) {
> + char *oldval = NULL;
> + oldval = getenv(name);
> + if (oldval) return 0;
> + }
> +
> + namelen = strlen(name);
> + valuelen = strlen(value);
> + envstr = malloc((namelen + valuelen + 2) * sizeof(char));
> + if (!envstr) return -1;
> +
> + memcpy(envstr, name, namelen);
> + envstr[namelen] = '=';
> + memcpy(envstr + namelen + 1, value, valuelen);
> + envstr[namelen + valuelen + 1] = 0;
> +
> + out = putenv(envstr);
> +
> + free(envstr);
> + return out;
> +}Wouldn't this be a good case for using alloca()?
-hpa