$\1 and serious bug in evalling
[p5sagit/p5-mst-13.2.git] / perl.c
diff --git a/perl.c b/perl.c
index 93e7aa1..f757d11 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -815,7 +815,7 @@ print \"  \\@INC:\\n    @INC\\n\";");
     LEAVE;
     FREETMPS;
 
-#ifdef MYMALLOC
+#ifdef DEBUGGING_MSTATS
     if ((s=getenv("PERL_DEBUG_MSTATS")) && atoi(s) >= 2)
        dump_mstats("after compilation:");
 #endif
@@ -852,7 +852,7 @@ PerlInterpreter *sv_interp;
        if (endav)
            call_list(oldscope, endav);
        FREETMPS;
-#ifdef MYMALLOC
+#ifdef DEBUGGING_MSTATS
        if (getenv("PERL_DEBUG_MSTATS"))
            dump_mstats("after execution:  ");
 #endif
@@ -1017,6 +1017,7 @@ I32 flags;                /* See G_* flags in cop.h */
     bool oldcatch = CATCH_GET;
     dJMPENV;
     int ret;
+    OP* oldop = op;
 
     if (flags & G_DISCARD) {
        ENTER;
@@ -1139,6 +1140,7 @@ I32 flags;                /* See G_* flags in cop.h */
        FREETMPS;
        LEAVE;
     }
+    op = oldop;
     return retval;
 }
 
@@ -1654,7 +1656,11 @@ SV *sv;
                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