X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/84573ee4ec8e28d2e202e1604b929087c5681653..22393538c56003804a2e6c760dc234116a5bd60c:/toke.c?ds=inline diff --git a/toke.c b/toke.c index 7b5c465..c9206a5 100644 --- a/toke.c +++ b/toke.c @@ -285,6 +285,10 @@ static const char* const lex_state_names[] = { } #define UNI(f) UNI2(f,XTERM) #define UNIDOR(f) UNI2(f,XTERMORDORDOR) +#define UNIPROTO(f) { \ + PL_last_uni = PL_oldbufptr; \ + OPERATOR(f); \ + } #define UNIBRACK(f) { \ pl_yylval.ival = f; \ @@ -6863,12 +6867,12 @@ Perl_yylex(pTHX) *proto == '\\' && proto[1] && proto[2] == '\0' ) ) - OPERATOR(UNIOPSUB); + UNIPROTO(UNIOPSUB); if (*proto == '\\' && proto[1] == '[') { const char *p = proto + 2; while(*p && *p != ']') ++p; - if(*p == ']' && !p[1]) OPERATOR(UNIOPSUB); + if(*p == ']' && !p[1]) UNIPROTO(UNIOPSUB); } if (*proto == '&' && *s == '{') { if (PL_curstash)