#define EXECF_EXEC 1
static int
-convretcode (int rc,char *prog,int fl)
+convretcode (pTHX_ int rc,char *prog,int fl)
{
- if (rc < 0 && PL_dowarn)
- warn ("Can't %s \"%s\": %s",fl ? "exec" : "spawn",prog,Strerror (errno));
+ if (rc < 0 && ckWARN(WARN_EXEC))
+ Perl_warner(aTHX_ WARN_EXEC,"Can't %s \"%s\": %s",
+ fl ? "exec" : "spawn",prog,Strerror (errno));
if (rc > 0)
- return rc <<= 8;
+ return rc << 8;
if (rc < 0)
return 255 << 8;
return 0;
}
int
-do_aspawn (SV *really,SV **mark,SV **sp)
+do_aspawn (pTHX_ SV *really,SV **mark,SV **sp)
{
dTHR;
int rc;
#define EXTRA "\x00\x00\x00\x00\x00\x00"
int
-do_spawn2 (char *cmd,int execf)
+do_spawn2 (pTHX_ char *cmd,int execf)
{
char **a,*s,*shell,*metachars;
int rc,unixysh;
}
int
-do_spawn (char *cmd)
+do_spawn (pTHX_ char *cmd)
{
- return do_spawn2 (cmd,EXECF_SPAWN);
+ return do_spawn2 (aTHX_ cmd,EXECF_SPAWN);
}
bool
-do_exec (char *cmd)
+Perl_do_exec (pTHX_ char *cmd)
{
- do_spawn2 (cmd,EXECF_EXEC);
+ do_spawn2 (aTHX_ cmd,EXECF_EXEC);
return FALSE;
}
int fd;
char *matches;
size_t size;
+ fpos_t pos;
};
#define MAXOPENGLOBS 10
if ((gi=searchfd (-1)) == NULL)
break;
+ gi->pos=0;
pattern=alloca (strlen (name+=13)+1);
strcpy (pattern,name);
if (!_USE_LFN)
if ((gi=searchfd (fd))==NULL)
break;
- ic=tell (fd);
- if (siz+ic>=gi->size)
- siz=gi->size-ic;
- memcpy (buf,ic+gi->matches,siz);
- lseek (fd,siz,1);
+ if (siz+gi->pos > gi->size)
+ siz = gi->size - gi->pos;
+ memcpy (buf,gi->pos+gi->matches,siz);
+ gi->pos += siz;
*rv=siz;
return 1;
}
dXSARGS;
if (items)
- croak ("Usage: Dos::GetCwd()");
+ Perl_croak (aTHX_ "Usage: Dos::GetCwd()");
{
char tmp[PATH_MAX+2];
ST(0)=sv_newmortal ();
}
void
-init_os_extras()
+Perl_init_os_extras(pTHX)
{
char *file = __FILE__;