Integrate:
[p5sagit/p5-mst-13.2.git] / cygwin / cygwin.c
index 33ea4db..0e9d07d 100644 (file)
@@ -18,7 +18,7 @@
 static int
 do_spawnvp (const char *path, const char * const *argv)
 {
-    dTHXo;
+    dTHX;
     Sigsave_t ihand,qhand;
     int childpid, result, status;
 
@@ -27,11 +27,9 @@ do_spawnvp (const char *path, const char * const *argv)
     childpid = spawnvp(_P_NOWAIT,path,argv);
     if (childpid < 0) {
        status = -1;
-       if(ckWARN(WARN_EXEC)) {
-           dTHR;
-           Perl_warner(aTHX_ WARN_EXEC,"Can't spawn \"%s\": %s",
+       if(ckWARN(WARN_EXEC))
+           Perl_warner(aTHX_ packWARN(WARN_EXEC),"Can't spawn \"%s\": %s",
                    path,Strerror (errno));
-       }
     } else {
        do {
            result = wait4pid(childpid, &status, 0);
@@ -47,7 +45,7 @@ do_spawnvp (const char *path, const char * const *argv)
 int
 do_aspawn (SV *really, void **mark, void **sp)
 {
-    dTHXo;
+    dTHX;
     int  rc;
     char **a,*tmps,**argv; 
     STRLEN n_a; 
@@ -80,7 +78,7 @@ do_aspawn (SV *really, void **mark, void **sp)
 int
 do_spawn (char *cmd)
 {
-    dTHXo;
+    dTHX;
     char **a,*s,*metachars = "$&*(){}[]'\";\\?>|<~`\n";
     const char *command[4];
 
@@ -149,6 +147,9 @@ XS(Cygwin_cwd)
     if((cwd = getcwd(NULL, -1))) {
        ST(0) = sv_2mortal(newSVpv(cwd, 0));
        safesysfree(cwd);
+#ifndef INCOMPLETE_TAINTS
+       SvTAINTED_on(ST(0));
+#endif
        XSRETURN(1);
     }
     XSRETURN_UNDEF;