Changeset 3133 in kBuild for trunk/src/kmk/kmkbuiltin/common-env-and-cwd-opt.c
- Timestamp:
- Feb 23, 2018 9:33:27 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kmk/kmkbuiltin/common-env-and-cwd-opt.c
r3039 r3133 186 186 && pszCur[cchVar] == '=') 187 187 { 188 size_t cchOldValue = strlen(p apszEnv[iEnvVar])- cchVar - 1;189 size_t cchNewValue = strlen(pszValue) 190 char *pszNew = malloc(cchVar + 1 + cchOldValue + cchNewValue);191 if (!p apszEnv[iEnvVar])188 size_t cchOldValue = strlen(pszCur) - cchVar - 1; 189 size_t cchNewValue = strlen(pszValue) - cchVar - 1; 190 char *pszNew = malloc(cchVar + 1 + cchOldValue + cchNewValue + 1); 191 if (!pszNew) 192 192 return errx(1, "out of memory!"); 193 193 if (fAppend) 194 194 { 195 memcpy(pszNew, p apszEnv[iEnvVar], cchVar + 1 + cchOldValue);195 memcpy(pszNew, pszCur, cchVar + 1 + cchOldValue); 196 196 memcpy(&pszNew[cchVar + 1 + cchOldValue], &pszValue[cchVar + 1], cchNewValue + 1); 197 197 } 198 198 else 199 199 { 200 memcpy(pszNew, p apszEnv[iEnvVar], cchVar + 1); /* preserve variable name case */200 memcpy(pszNew, pszCur, cchVar + 1); /* preserve variable name case */ 201 201 memcpy(&pszNew[cchVar + 1], &pszValue[cchVar + 1], cchNewValue); 202 memcpy(&pszNew[cchVar + 1 + cchNewValue], &p apszEnv[iEnvVar][cchVar + 1], cchOldValue + 1);202 memcpy(&pszNew[cchVar + 1 + cchNewValue], &pszCur[cchVar + 1], cchOldValue + 1); 203 203 } 204 204 205 205 if (cVerbosity > 0) 206 warnx("replacing '%s' with '%s'", p apszEnv[iEnvVar], pszNew);207 free(p apszEnv[iEnvVar]);206 warnx("replacing '%s' with '%s'", pszCur, pszNew); 207 free(pszCur); 208 208 papszEnv[iEnvVar] = pszNew; 209 209
Note:
See TracChangeset
for help on using the changeset viewer.