sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*));
if (!SvCUR(sv) || *(SvEND(sv) - 1) != '\n') {
dTHR;
- if (PL_dirty)
- sv_catpv(sv, dgd);
- else {
- if (PL_curcop->cop_line)
- sv_catpvf(sv, " at %_ line %ld",
- GvSV(PL_curcop->cop_filegv), (long)PL_curcop->cop_line);
- if (GvIO(PL_last_in_gv) && IoLINES(GvIOp(PL_last_in_gv))) {
- bool line_mode = (RsSIMPLE(PL_rs) &&
- SvLEN(PL_rs) == 1 && *SvPVX(PL_rs) == '\n');
- sv_catpvf(sv, ", <%s> %s %ld",
- PL_last_in_gv == PL_argvgv ? "" : GvNAME(PL_last_in_gv),
- line_mode ? "line" : "chunk",
- (long)IoLINES(GvIOp(PL_last_in_gv)));
- }
- sv_catpv(sv, ".\n");
+ if (PL_curcop->cop_line)
+ sv_catpvf(sv, " at %_ line %ld",
+ GvSV(PL_curcop->cop_filegv), (long)PL_curcop->cop_line);
+ if (GvIO(PL_last_in_gv) && IoLINES(GvIOp(PL_last_in_gv))) {
+ bool line_mode = (RsSIMPLE(PL_rs) &&
+ SvCUR(PL_rs) == 1 && *SvPVX(PL_rs) == '\n');
+ sv_catpvf(sv, ", <%s> %s %ld",
+ PL_last_in_gv == PL_argvgv ? "" : GvNAME(PL_last_in_gv),
+ line_mode ? "line" : "chunk",
+ (long)IoLINES(GvIOp(PL_last_in_gv)));
}
+ sv_catpv(sv, PL_dirty ? dgd : ".\n");
}
return sv;
}
SV *sv;
I32 doexec = strNE(cmd,"-");
+ PERL_FLUSHALL_FOR_CHILD;
#ifdef OS2
if (doexec) {
return my_syspopen(cmd,mode);
#if defined(atarist) || defined(DJGPP)
FILE *popen();
PerlIO *
-my_popen(cmd,mode)
-char *cmd;
-char *mode;
+my_popen(char *cmd, char *mode)
{
/* Needs work for PerlIO ! */
/* used 0 for 2nd parameter to PerlIO-exportFILE; apparently not used */
+ PERL_FLUSHALL_FOR_CHILD;
return popen(PerlIO_exportFILE(cmd, 0), mode);
}
#endif
}
#endif /* !DOSISH */
-#if !defined(DOSISH) || defined(OS2) || defined(WIN32)
+#if !defined(DOSISH) || defined(OS2) || defined(WIN32) || defined(CYGWIN32)
I32
wait4pid(int pid, int *statusp, int flags)
{
retval = n | (*s++ - '0');
len--;
}
- if (len && (*s >= '2' || *s <= '9')) {
+ if (len && (*s >= '2' && *s <= '9')) {
dTHR;
if (ckWARN(WARN_UNSAFE))
warner(WARN_UNSAFE, "Illegal binary digit '%c' ignored", *s);
COND_INIT(&cp->owner_cond);
COND_INIT(&cp->cond);
cp->owner = 0;
- LOCK_SV_MUTEX;
+ MUTEX_LOCK(&PL_cred_mutex); /* XXX need separate mutex? */
mg = mg_find(sv, 'm');
if (mg) {
/* someone else beat us to initialising it */
- UNLOCK_SV_MUTEX;
+ MUTEX_UNLOCK(&PL_cred_mutex); /* XXX need separate mutex? */
MUTEX_DESTROY(&cp->mutex);
COND_DESTROY(&cp->owner_cond);
COND_DESTROY(&cp->cond);
mg = SvMAGIC(sv);
mg->mg_ptr = (char *)cp;
mg->mg_len = sizeof(cp);
- UNLOCK_SV_MUTEX;
+ MUTEX_UNLOCK(&PL_cred_mutex); /* XXX need separate mutex? */
DEBUG_S(WITH_THR(PerlIO_printf(PerlIO_stderr(),
"%p: condpair_magic %p\n", thr, sv));)
}
return PL_specialsv_list;
}
+#ifndef HAS_GETENV_SV
+SV *
+getenv_sv(char *env_elem)
+{
+ char *env_trans;
+ SV *temp_sv;
+ if ((env_trans = PerlEnv_getenv(env_elem)) != Nullch) {
+ temp_sv = newSVpv(env_trans, strlen(env_trans));
+ return temp_sv;
+ } else {
+ return &PL_sv_undef;
+ }
+}
+#endif
+
MGVTBL*
get_vtbl(int vtbl_id)