X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=stolen_chunk_of_toke.c;h=f0498cbf8e0b06e37d22f6da066c0fb131c84d1d;hb=f42e9bcb30295ed63ffd9154a6cf442f8f2e49a9;hp=3f0f896ba23ab5ca2f6d5a67d29ca9ecdc80f15e;hpb=5e9a4dee07a4c27dc42101545a38226461da292e;p=p5sagit%2FDevel-Declare.git diff --git a/stolen_chunk_of_toke.c b/stolen_chunk_of_toke.c index 3f0f896..f0498cb 100644 --- a/stolen_chunk_of_toke.c +++ b/stolen_chunk_of_toke.c @@ -83,7 +83,11 @@ STATIC char* S_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow #define PERL_5_8_8_PLUS #endif -#ifdef PL_parser +#if PERL_REVISION == 5 && PERL_VERSION > 8 +#define PERL_5_9_PLUS +#endif + +#ifdef PERL_5_9_PLUS /* 5.9+ moves a bunch of things to a PL_parser struct so we need to declare the backcompat macros for things to still work (mst) */ @@ -136,11 +140,6 @@ STATIC char* S_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow # define PL_nextval (PL_parser->nextval) /* end of backcompat macros form 5.9 toke.c (mst) */ #endif -/* we also need this because we define PERL_CORE so handy.h doesn't provide - it for us (mst) */ -#ifndef NEWSV -#define NEWSV(x,len) newSV(len) -#endif /* when ccflags include -DDEBUGGING we need this for earlier 5.8 perls */ #ifndef SvPV_nolen_const @@ -307,16 +306,20 @@ S_skipspace(pTHX_ register char *s) PL_bufend = SvPVX(PL_linestr) + SvCUR(PL_linestr); PL_last_lop = PL_last_uni = Nullch; - /* Close the filehandle. Could be from -P preprocessor, + /* In perl versions previous to p4-rawid: //depot/perl@32954 -P + * preprocessors were supported here. We don't support -P at all, even + * on perls that support it, and use the following chunk from blead + * perl. (rafl) + */ + + /* Close the filehandle. Could be from * STDIN, or a regular file. If we were reading code from * STDIN (because the commandline held no -e or filename) * then we don't close it, we reset it so the code can * read from STDIN too. */ - if (PL_preprocess && !PL_in_eval) - (void)PerlProc_pclose(PL_rsfp); - else if ((PerlIO*)PL_rsfp == PerlIO_stdin()) + if ((PerlIO*)PL_rsfp == PerlIO_stdin()) PerlIO_clearerr(PL_rsfp); else (void)PerlIO_close(PL_rsfp);