This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Encode to CPAN version 2.63
[perl5.git] / util.c
diff --git a/util.c b/util.c
index ae3b833..eadd21d 100644 (file)
--- a/util.c
+++ b/util.c
@@ -1914,8 +1914,13 @@ Perl_vwarner(pTHX_ U32  err, const char* pat, va_list* args)
     if (PL_warnhook == PERL_WARNHOOK_FATAL || ckDEAD(err)) {
        SV * const msv = vmess(pat, args);
 
-       invoke_exception_hook(msv, FALSE);
-       die_unwind(msv);
+       if (PL_parser && PL_parser->error_count) {
+           qerror(msv);
+       }
+       else {
+           invoke_exception_hook(msv, FALSE);
+           die_unwind(msv);
+       }
     }
     else {
        Perl_vwarn(aTHX_ pat, args);
@@ -2421,8 +2426,10 @@ Perl_my_popen_list(pTHX_ const char *mode, int n, SV **args)
         PerlLIO_close(pp[0]);
     return PerlIO_fdopen(p[This], mode);
 #else
-#  ifdef OS2   /* Same, without fork()ing and all extra overhead... */
+#  if defined(OS2)     /* Same, without fork()ing and all extra overhead... */
     return my_syspopen4(aTHX_ NULL, mode, n, args);
+#  elif defined(WIN32)
+    return win32_popenlist(mode, n, args);
 #  else
     Perl_croak(aTHX_ "List form of piped open not implemented");
     return (PerlIO *) NULL;