This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
recomp.c: output given warning in only one pass
authorKarl Williamson <khw@cpan.org>
Tue, 2 Sep 2014 00:54:03 +0000 (18:54 -0600)
committerKarl Williamson <khw@cpan.org>
Sun, 7 Sep 2014 03:12:05 +0000 (21:12 -0600)
Otherwise, it will be output multiple times.  This warning was untested
for as well.

regcomp.c
t/re/reg_mesg.t

index 08b267b..1730724 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -10901,7 +10901,7 @@ S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** node_p,
                 RExC_parse = endbrace;
                 vFAIL("\\N{} in character class restricted to one character");
             }
-            else {
+            else if (PASS2) {
                 ckWARNreg(endchar, "Using just the first character returned by \\N{} in character class");
             }
         }
index d8f47e1..6c8566d 100644 (file)
@@ -333,6 +333,7 @@ my @warning = (
     'm/[\w-x]/' => 'False [] range "\w-" {#} m/[\w-{#}x]/',
     'm/[a-\pM]/' => 'False [] range "a-\pM" {#} m/[a-\pM{#}]/',
     'm/[\pM-x]/' => 'False [] range "\pM-" {#} m/[\pM-{#}x]/',
+    'm/[\N{LATIN CAPITAL LETTER A WITH MACRON AND GRAVE}]/' => 'Using just the first character returned by \N{} in character class {#} m/[\N{U+100{#}.300}]/',
     "m'\\y'"     => 'Unrecognized escape \y passed through {#} m/\y{#}/',
     '/x{3,1}/'   => 'Quantifier {n,m} with n > m can\'t match {#} m/x{3,1}{#}/',
     '/\08/' => '\'\08\' resolved to \'\o{0}8\' {#} m/\08{#}/',