- if (verbose) {
- std::cerr << TRACE_VARIABLE << "=" << wrapperPath.str() << "\n";
- }
- /* FIXME: Don't modify the current environment */
- os::setEnvironment(TRACE_VARIABLE, wrapperPath.str());
+ const char *oldEnvVarValue = getenv(TRACE_VARIABLE);
+ if (oldEnvVarValue) {
+ wrapperPath.append(OS_PATH_SEP);
+ wrapperPath.append(oldEnvVarValue);
+ }
+
+ /* FIXME: Don't modify our (ie parent) environment */
+ os::setEnvironment(TRACE_VARIABLE, wrapperPath.str());
+
+ if (verbose) {
+ std::cerr << TRACE_VARIABLE << "=" << wrapperPath.str() << "\n";
+ }