From: Florian Ragwitz Date: Fri, 5 Jun 2009 13:34:29 +0000 (+0200) Subject: Merge branch 'master' into mad X-Git-Tag: 0.005005~1 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FDevel-Declare.git;a=commitdiff_plain;h=0f0084591575d1db507512268a2427d1844fea55;hp=0f1dacbc5234916e5bbb9b2676b87ca9e2cd58f9 Merge branch 'master' into mad * master: Version 0.005004. Don't define MEM_WRAP_CHECK_ if it's already there. Version 0.005003. Properly ignore dist tarballs. Fail hard if strip_names_and_args fails. Add copyright notice for stolen_chunk_of_toke.c. Add .gitignore. TODO failing tests. Add strip_names_and_args Failing tests for line number issues was 'assing', assuming it to be 'were passing' Conflicts: stolen_chunk_of_toke.c --- diff --git a/stolen_chunk_of_toke.c b/stolen_chunk_of_toke.c index 9bb96d5..7abecc5 100644 --- a/stolen_chunk_of_toke.c +++ b/stolen_chunk_of_toke.c @@ -138,12 +138,17 @@ STATIC char* S_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow #define PL_tokenbuf (PL_parser->tokenbuf) #define PL_multi_end (PL_parser->multi_end) #define PL_error_count (PL_parser->error_count) -/* these three are from the non-PERL_MAD path but I don't -think- I need +#define PL_nexttoke (PL_parser->nexttoke) +/* these are from the non-PERL_MAD path but I don't -think- I need the PERL_MAD stuff since my code isn't really populating things (mst) */ -# define PL_nexttoke (PL_parser->nexttoke) +# ifdef PERL_MAD +# define PL_curforce (PL_parser->curforce) +# define PL_lasttoke (PL_parser->lasttoke) +# else # define PL_nexttype (PL_parser->nexttype) # define PL_nextval (PL_parser->nextval) -/* end of backcompat macros form 5.9 toke.c (mst) */ +# endif +/* end of backcompat macros from 5.9 toke.c (mst) */ #endif /* when ccflags include -DDEBUGGING we need this for earlier 5.8 perls */ @@ -845,6 +850,17 @@ S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims) STATIC void S_force_next(pTHX_ I32 type) { + dVAR; +#ifdef PERL_MAD + if (PL_curforce < 0) + start_force(PL_lasttoke); + PL_nexttoke[PL_curforce].next_type = type; + if (PL_lex_state != LEX_KNOWNEXT) + PL_lex_defer = PL_lex_state; + PL_lex_state = LEX_KNOWNEXT; + PL_lex_expect = PL_expect; + PL_curforce = -1; +#else PL_nexttype[PL_nexttoke] = type; PL_nexttoke++; if (PL_lex_state != LEX_KNOWNEXT) { @@ -852,6 +868,7 @@ S_force_next(pTHX_ I32 type) PL_lex_expect = PL_expect; PL_lex_state = LEX_KNOWNEXT; } +#endif } #define XFAKEBRACK 128