bool oldcatch = CATCH_GET;
dJMPENV;
int ret;
+ OP* oldop = op;
if (flags & G_DISCARD) {
ENTER;
FREETMPS;
LEAVE;
}
+ op = oldop;
return retval;
}
continue; /* don't search dir with too-long name */
strcat(tokenbuf, scriptname);
#else /* !VMS */
- if (dosearch && !strchr(scriptname, '/') && (s = getenv("PATH"))) {
+ if (dosearch && !strchr(scriptname, '/')
+#ifdef DOSISH
+ && !strchr(scriptname, '\\')
+#endif
+ && (s = getenv("PATH"))) {
bufend = s + strlen(s);
while (s < bufend) {
#ifndef atarist
sv = newSVpv(s--,0);
(void)hv_store(hv, *env, s - *env, sv, 0);
*s = '=';
+#if defined(__BORLANDC__) && defined(USE_WIN32_RTL_ENV)
+ /* Sins of the RTL. See note in my_setenv(). */
+ (void)putenv(savepv(*env));
+#endif
}
#endif
#ifdef DYNAMIC_ENV_FETCH