This is a live mirror of the Perl 5 development currently hosted at
https://github.com/perl/perl5
https://perl5.git.perl.org
/
perl5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
When parsing subs with user-defined prototypes, store information needed to throw...
[perl5.git]
/
toke.c
diff --git
a/toke.c
b/toke.c
index
7b5c465
..
c9206a5
100644
(file)
--- 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 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; \
#define UNIBRACK(f) { \
pl_yylval.ival = f; \
@@
-6863,12
+6867,12
@@
Perl_yylex(pTHX)
*proto == '\\' && proto[1] && proto[2] == '\0'
)
)
*proto == '\\' && proto[1] && proto[2] == '\0'
)
)
-
OPERATOR
(UNIOPSUB);
+
UNIPROTO
(UNIOPSUB);
if (*proto == '\\' && proto[1] == '[') {
const char *p = proto + 2;
while(*p && *p != ']')
++p;
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)
}
if (*proto == '&' && *s == '{') {
if (PL_curstash)