X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perlio.c;h=549a1877b05108ce47261a533985aa628d885828;hb=949d010fe77e69674beb14306cfc1b92afa3e47c;hp=093cc8a123d64b48034069ebc5777bc9aa359e97;hpb=4cddb5cd9c04fc106c6cfb974a57915742687c3a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perlio.c b/perlio.c index 093cc8a..549a187 100644 --- a/perlio.c +++ b/perlio.c @@ -426,7 +426,7 @@ PerlIO_list_push(PerlIO_list_t *list,PerlIO_funcs *funcs,SV *arg) void -PerlIO_cleanup_layers(pTHXo_ void *data) +PerlIO_cleanup_layers(pTHX_ void *data) { #if 0 PerlIO_known_layers = Nullhv; @@ -771,7 +771,7 @@ PerlIO_default_layers(pTHX) PerlIO_funcs *osLayer = &PerlIO_unix; PerlIO_def_layerlist = PerlIO_list_alloc(); PerlIO_define_layer(aTHX_ &PerlIO_unix); -#ifdef WIN32 +#if defined(WIN32) && !defined(UNDER_CE) PerlIO_define_layer(aTHX_ &PerlIO_win32); #if 0 osLayer = &PerlIO_win32; @@ -1968,7 +1968,10 @@ PerlIOUnix_pushed(PerlIO *f, const char *mode, SV *arg) { PerlIOUnix *s = PerlIOSelf(f,PerlIOUnix); s->fd = PerlIO_fileno(PerlIONext(f)); - s->oflags = PerlIOUnix_oflags(mode); + /* XXX could (or should) we retrieve the oflags from the open file handle + rather than believing the "mode" we are passed in? + XXX Should the value on NULL mode be 0 or -1? */ + s->oflags = mode ? PerlIOUnix_oflags(mode) : -1; } PerlIOBase(f)->flags |= PERLIO_F_OPEN; return code;