X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perlio.c;h=9e06ef1856f50dc9c9b2fb8a4682fc2e8587be21;hb=51254d33a14eeacb273f244a97f13b86d9e56aa2;hp=0b010b84bcbaf3fb4d442711e10889e1ecd5712b;hpb=002e75cfc4ef18da0a4adbabb92d675c0c36aaa5;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perlio.c b/perlio.c index 0b010b8..9e06ef1 100644 --- a/perlio.c +++ b/perlio.c @@ -30,7 +30,11 @@ #ifdef PERL_MICRO # include "uconfig.h" #else -# include "config.h" +# ifndef USE_CROSS_COMPILE +# include "config.h" +# else +# include "xconfig.h" +# endif #endif #define PERLIO_NOT_STDIO 0 @@ -475,7 +479,7 @@ PerlIO_debug(const char *fmt, ...) /* Use fixed buffer as sv_catpvf etc. needs SVs */ char buffer[1024]; const STRLEN len = my_sprintf(buffer, "%.40s:%" IVdf " ", s ? s : "(none)", (IV) CopLINE(PL_curcop)); - const STRLEN len2 = vsprintf(buffer+len, fmt, ap); + const STRLEN len2 = my_vsnprintf(buffer+len, sizeof(buffer) - len, fmt, ap); PerlLIO_write(PL_perlio_debug_fd, buffer, len + len2); #else const char *s = CopFILE(PL_curcop); @@ -645,7 +649,7 @@ PerlIO_clone(pTHX_ PerlInterpreter *proto, CLONE_PARAMS *param) PL_known_layers = PerlIO_clone_list(aTHX_ proto->Iknown_layers, param); PL_def_layerlist = PerlIO_clone_list(aTHX_ proto->Idef_layerlist, param); PerlIO_allocate(aTHX); /* root slot is never used */ - PerlIO_debug("Clone %p from %p\n",aTHX,proto); + PerlIO_debug("Clone %p from %p\n",(void*)aTHX,(void*)proto); while ((f = *table)) { int i; table = (PerlIO **) (f++); @@ -657,6 +661,7 @@ PerlIO_clone(pTHX_ PerlInterpreter *proto, CLONE_PARAMS *param) } } #else + PERL_UNUSED_CONTEXT; PERL_UNUSED_ARG(proto); PERL_UNUSED_ARG(param); #endif @@ -669,7 +674,7 @@ PerlIO_destruct(pTHX) PerlIO **table = &PL_perlio; PerlIO *f; #ifdef USE_ITHREADS - PerlIO_debug("Destruct %p\n",aTHX); + PerlIO_debug("Destruct %p\n",(void*)aTHX); #endif while ((f = *table)) { int i; @@ -2104,7 +2109,7 @@ PerlIOBase_read(pTHX_ PerlIO *f, void *vbuf, Size_t count) SSize_t avail = PerlIO_get_cnt(f); SSize_t take = 0; if (avail > 0) - take = ((SSize_t)count < avail) ? count : avail; + take = ((SSize_t)count < avail) ? (SSize_t)count : avail; if (take > 0) { STDCHAR *ptr = PerlIO_get_ptr(f); Copy(ptr, buf, take, STDCHAR); @@ -2267,6 +2272,7 @@ perl_mutex PerlIO_mutex; /* Must be called with PerlIO_mutex locked. */ static void S_more_refcounted_fds(pTHX_ const int new_fd) { + dVAR; const int old_max = PL_perlio_fd_refcnt_size; const int new_max = 16 + (new_fd & ~15); int *new_array; @@ -2296,7 +2302,9 @@ S_more_refcounted_fds(pTHX_ const int new_fd) { PL_perlio_fd_refcnt_size = new_max; PL_perlio_fd_refcnt = new_array; - PerlIO_debug("Zeroing %p, %d\n", new_array + old_max, new_max - old_max); + PerlIO_debug("Zeroing %p, %d\n", + (void*)(new_array + old_max), + new_max - old_max); Zero(new_array + old_max, new_max - old_max, int); } @@ -2365,7 +2373,7 @@ PerlIO_cleanup(pTHX) dVAR; int i; #ifdef USE_ITHREADS - PerlIO_debug("Cleanup layers for %p\n",aTHX); + PerlIO_debug("Cleanup layers for %p\n",(void*)aTHX); #else PerlIO_debug("Cleanup layers\n"); #endif @@ -2566,7 +2574,7 @@ PerlIOUnix_open(pTHX_ PerlIO_funcs *self, PerlIO_list_t *layers, } else { if (f) { - /*EMPTY*/; + NOOP; /* * FIXME: pop layers ??? */ @@ -2946,7 +2954,7 @@ PerlIOStdio_dup(pTHX_ PerlIO *f, PerlIO *o, CLONE_PARAMS *param, int flags) goto set_this; } else { - /*EMPTY*/; + NOOP; /* FIXME: To avoid messy error recovery if dup fails re-use the existing stdio as though flag was not set */ @@ -3235,7 +3243,7 @@ PerlIOStdio_flush(pTHX_ PerlIO *f) return PerlSIO_fflush(stdio); } else { - /*EMPTY*/; + NOOP; #if 0 /* * FIXME: This discards ungetc() and pre-read stuff which is not @@ -4377,7 +4385,7 @@ PerlIOCrlf_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR * ptr, SSize_t cnt) ptr -= cnt; } else { - /*EMPTY*/; + NOOP; #if 0 /* * Test code - delete when it works ... @@ -5134,8 +5142,8 @@ vfprintf(FILE *fd, char *pat, char *args) int PerlIO_vsprintf(char *s, int n, const char *fmt, va_list ap) { - dVAR; - const int val = vsprintf(s, fmt, ap); + dTHX; + const int val = my_vsnprintf(s, n > 0 ? n : 0, fmt, ap); if (n >= 0) { if (strlen(s) >= (STRLEN) n) { dTHX;