# endif
#endif
+#ifdef __hpux
+# include <sys/pstat.h>
+#endif
+
/* if you only have signal() and it resets on each signal, FAKE_PERSISTENT_SIGNAL_HANDLERS fixes */
#if !defined(HAS_SIGACTION) && defined(VMS)
# define FAKE_PERSISTENT_SIGNAL_HANDLERS
#endif
}
else if (strEQ(mg->mg_ptr, "\024AINT"))
- sv_setiv(sv, PL_tainting);
+ sv_setiv(sv, PL_tainting
+ ? (PL_taint_warn || PL_unsafe ? -1 : 1)
+ : 0);
break;
case '\027': /* ^W & $^WARNING_BITS & ^WIDE_SYSTEM_CALLS */
if (*(mg->mg_ptr+1) == '\0')
break;
case '\\':
if (PL_ors_sv)
- sv_setpv(sv,SvPVX(PL_ors_sv));
+ sv_copypv(sv, PL_ors_sv);
break;
case '#':
sv_setpv(sv,PL_ofmt);
# endif
}
#endif
+#if defined(__hpux) && defined(PSTAT_SETCMD)
+ {
+ union pstun un;
+ s = SvPV(sv, len);
+ un.pst_command = s;
+ pstat(PSTAT_SETCMD, un, len, 0, 0);
+ }
+#endif
if (!PL_origalen) {
s = PL_origargv[0];
s += strlen(s);