ldmd.cpp (ldc-1.32.1) | : | ldmd.cpp (ldc-1.32.2) | ||
---|---|---|---|---|
skipping to change at line 295 | skipping to change at line 295 | |||
* here since it is defined in mars.c. | * here since it is defined in mars.c. | |||
*/ | */ | |||
void appendEnvVar(const char *envVarName, std::vector<char *> &args) { | void appendEnvVar(const char *envVarName, std::vector<char *> &args) { | |||
std::string envVar = env::get(envVarName); | std::string envVar = env::get(envVarName); | |||
if (envVar.empty()) { | if (envVar.empty()) { | |||
return; | return; | |||
} | } | |||
char *env = strdup(envVar.c_str()); // create forever-living copy | char *env = strdup(envVar.c_str()); // create forever-living copy | |||
size_t j = 1; // leave argv[0] alone | ||||
while (1) { | while (1) { | |||
switch (*env) { | switch (*env) { | |||
case ' ': | case ' ': | |||
case '\t': | case '\t': | |||
env++; | env++; | |||
break; | break; | |||
case 0: | case 0: | |||
return; | return; | |||
default: | default: | |||
args.push_back(env); // append | args.push_back(env); // append | |||
j++; | ||||
char *p = env; | char *p = env; | |||
int slash = 0; | int slash = 0; | |||
int instring = 0; | int instring = 0; | |||
char c = 0; | char c = 0; | |||
while (1) { | while (1) { | |||
c = *env++; | c = *env++; | |||
switch (c) { | switch (c) { | |||
case '"': | case '"': | |||
p -= (slash >> 1); | p -= (slash >> 1); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 0 lines changed or added |