Bad \[...] prototype checking
Rafael Garcia-Suarez [Fri, 4 Jan 2002 23:35:19 +0000 (00:35 +0100)]
Message-ID: <20020104233519.A1850@rafael>

p4raw-id: //depot/perl@14082

op.c

diff --git a/op.c b/op.c
index 2cd4d7f..d160fed 100644 (file)
--- a/op.c
+++ b/op.c
@@ -6787,9 +6787,16 @@ Perl_ck_subr(pTHX_ OP *o)
                     goto again;
                     break;
                case ']':
-                    if (contextclass)
-                         contextclass = 0;
-                    else
+                    if (contextclass) {
+                        char *p = proto;
+                        char s = *p;
+                        contextclass = 0;
+                        *p = '\0';
+                        while (*--p != '[');
+                        bad_type(arg, Perl_form("one of %s", p),
+                                gv_ename(namegv), o2);
+                        *proto = s;
+                    } else
                          goto oops;
                     break;
                case '*':