[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 08/10] build: util.c: avoid warnings about add_envopt
From: |
Jim Meyering |
Subject: |
[PATCH 08/10] build: util.c: avoid warnings about add_envopt |
Date: |
Fri, 20 Nov 2009 21:06:19 +0100 |
From: Jim Meyering <address@hidden>
* util.c (add_envopt): The parameter "env" was used for two conflicting
purposes. One use required a const char* parameter, while the other
was used as an argument to free, which must not be "const".
Rename the parameter and use a new local variable for the second role.
---
util.c | 17 +++++++++--------
1 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/util.c b/util.c
index 6bd0987..d0d7774 100644
--- a/util.c
+++ b/util.c
@@ -360,20 +360,21 @@ int strcspn(s, reject)
char *add_envopt(
int *argcp, /* pointer to argc */
char ***argvp, /* pointer to argv */
- char const *env) /* name of environment variable */
+ char const *envvar_name) /* name of environment variable */
{
char *p; /* running pointer through env variable */
char **oargv; /* runs through old argv array */
char **nargv; /* runs through new argv array */
int oargc = *argcp; /* old argc */
int nargc = 0; /* number of arguments in env variable */
+ char *env_val;
- env = (char*)getenv(env);
- if (env == NULL) return NULL;
+ env_val = getenv(envvar_name);
+ if (env_val == NULL) return NULL;
- env = xstrdup (env);
+ env_val = xstrdup (env_val);
- for (p = env; *p; nargc++ ) { /* move through env */
+ for (p = env_val; *p; nargc++ ) { /* move through env_val */
p += strspn(p, SEPARATOR); /* skip leading separators */
if (*p == '\0') break;
@@ -381,7 +382,7 @@ char *add_envopt(
if (*p) *p++ = '\0'; /* mark it */
}
if (nargc == 0) {
- free(env);
+ free(env_val);
return NULL;
}
*argcp += nargc;
@@ -398,7 +399,7 @@ char *add_envopt(
*(nargv++) = *(oargv++);
/* Then copy the environment args */
- for (p = env; nargc > 0; nargc--) {
+ for (p = env_val; nargc > 0; nargc--) {
p += strspn(p, SEPARATOR); /* skip separators */
*(nargv++) = p; /* store start */
while (*p++) ; /* skip over word */
@@ -407,7 +408,7 @@ char *add_envopt(
/* Finally copy the old args and add a NULL (usual convention) */
while (oargc--) *(nargv++) = *(oargv++);
*nargv = NULL;
- return env;
+ return env_val;
}
/* ========================================================================
--
1.6.5.3.433.g11067
- [PATCH 01/10] build: "make stable" emitted an invalid gnupload command, Jim Meyering, 2009/11/20
- [PATCH 09/10] build: avoid warnings about unused macros, Jim Meyering, 2009/11/20
- [PATCH 02/10] maint: cfg.mk: remove factored-out ftp host/dir definitions, Jim Meyering, 2009/11/20
- [PATCH 08/10] build: util.c: avoid warnings about add_envopt,
Jim Meyering <=
- [PATCH 05/10] build: use gnulib's fdopendir module, Jim Meyering, 2009/11/20
- [PATCH 03/10] maint: tweak formatting of bootstrap.conf, Jim Meyering, 2009/11/20
- [PATCH 04/10] build: enable many warnings, Jim Meyering, 2009/11/20
- [PATCH 06/10] build: avoid warnings from -Wstrict-prototypes, Jim Meyering, 2009/11/20
- [PATCH 07/10] build: avoid many const-related warnings, Jim Meyering, 2009/11/20
- [PATCH 10/10] build: unlzw.c: avoid warnings about unused macros, Jim Meyering, 2009/11/20