X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=toke.c;h=6f846dc37d0141725a768acf13af834829c92040;hb=9cc6feabb930fb7cac992ab0a2febf2fb1986667;hp=e77648591d7b87f3e4a104e145c3fbdd5041bd33;hpb=1b42086758bcb696abd56f37b9db1cd28e91236e;p=p5sagit%2Fp5-mst-13.2.git diff --git a/toke.c b/toke.c index e776485..6f846dc 100644 --- a/toke.c +++ b/toke.c @@ -823,7 +823,7 @@ sublex_done(void) PL_lex_casemods = 0; *PL_lex_casestack = '\0'; PL_lex_starts = 0; - if (SvCOMPILED(PL_lex_repl)) { + if (SvEVALED(PL_lex_repl)) { PL_lex_state = LEX_INTERPNORMAL; PL_lex_starts++; /* we don't clear PL_lex_repl here, so that we can check later @@ -1487,6 +1487,7 @@ filter_del(filter_t funcp) return; /* if filter is on top of stack (usual case) just pop it off */ if (IoDIRP(FILTER_DATA(AvFILLp(PL_rsfp_filters))) == (DIR*)funcp){ + IoDIRP(FILTER_DATA(AvFILLp(PL_rsfp_filters))) = NULL; sv_free(av_pop(PL_rsfp_filters)); return; @@ -1854,7 +1855,7 @@ int yylex(PERL_YYLEX_PARAM_DECL) return ')'; } if (PL_lex_inwhat == OP_SUBST && PL_linestr == PL_lex_repl - && SvCOMPILED(PL_lex_repl)) + && SvEVALED(PL_lex_repl)) { if (PL_bufptr != PL_bufend) croak("Bad evalled substitution pattern"); @@ -2723,6 +2724,7 @@ int yylex(PERL_YYLEX_PARAM_DECL) } d = s; + tmp = (I32)*s; if (PL_lex_state == LEX_NORMAL) s = skipspace(s); @@ -2764,7 +2766,7 @@ int yylex(PERL_YYLEX_PARAM_DECL) } PL_expect = XOPERATOR; - if (PL_lex_state == LEX_NORMAL && isSPACE(*d)) { + if (PL_lex_state == LEX_NORMAL && isSPACE((char)tmp)) { bool islop = (PL_last_lop == PL_oldoldbufptr); if (!islop || PL_last_lop_op == OP_GREPSTART) PL_expect = XOPERATOR; @@ -5362,7 +5364,7 @@ scan_subst(char *start) sv_catpvn(repl, "{ ", 2); sv_catsv(repl, PL_lex_repl); sv_catpvn(repl, " };", 2); - SvCOMPILED_on(repl); + SvEVALED_on(repl); SvREFCNT_dec(PL_lex_repl); PL_lex_repl = repl; }