Front page | perl.perl5.changes |
Postings from February 2012
[perl.git] branch blead, updated. v5.15.8-53-g0c28294
From:
Karl Williamson
Date:
February 28, 2012 16:41
Subject:
[perl.git] branch blead, updated. v5.15.8-53-g0c28294
Message ID:
E1S2Xbu-0004ZQ-Cg@camel.ams6.corp.booking.com
In perl.git, the branch blead has been updated
<http://perl5.git.perl.org/perl.git/commitdiff/0c2829400b005cbfc6543affe3aa5a63616b7498?hp=b4069bca6054692e4fffa8e9e04572511e910fbd>
- Log -----------------------------------------------------------------
commit 0c2829400b005cbfc6543affe3aa5a63616b7498
Author: Karl Williamson <public@khwilliamson.com>
Date: Tue Feb 28 17:27:43 2012 -0700
regcomp.c: Add comment
M regcomp.c
commit 00b27cfcf04d3cbe5327f810377c46c2007c10d5
Author: Karl Williamson <public@khwilliamson.com>
Date: Tue Feb 28 17:11:31 2012 -0700
regcomp.c: Add comment, reorder #define more logically
M regcomp.c
commit 9fa196e11dd896d12236f0f566c5c556473e1cdc
Author: Karl Williamson <public@khwilliamson.com>
Date: Mon Feb 20 11:32:18 2012 -0700
re/pat.t: Remove obsolete comment
M t/re/pat.t
commit 96f54887615ec13b0713f735c3ec6618468ec51f
Author: Karl Williamson <public@khwilliamson.com>
Date: Mon Feb 20 11:27:03 2012 -0700
(?foo:...) loses passed in charset
This commit looks for the passed-in charset, and overrides it only if it
is /d and the pattern requires /u. Previously the passed-in value was
ignored.
M regcomp.c
M t/re/pat.t
-----------------------------------------------------------------------
Summary of changes:
regcomp.c | 15 +++++++++++----
t/re/pat.t | 15 +++++++++++----
2 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/regcomp.c b/regcomp.c
index 1e1dcfd..7a3433a 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -382,9 +382,11 @@ static const scan_data_t zero_scan_data =
#define SCF_SEEN_ACCEPT 0x8000
#define UTF cBOOL(RExC_utf8)
+
+/* The enums for all these are ordered so things work out correctly */
#define LOC (get_regex_charset(RExC_flags) == REGEX_LOCALE_CHARSET)
-#define UNI_SEMANTICS (get_regex_charset(RExC_flags) == REGEX_UNICODE_CHARSET)
#define DEPENDS_SEMANTICS (get_regex_charset(RExC_flags) == REGEX_DEPENDS_CHARSET)
+#define UNI_SEMANTICS (get_regex_charset(RExC_flags) == REGEX_UNICODE_CHARSET)
#define AT_LEAST_UNI_SEMANTICS (get_regex_charset(RExC_flags) >= REGEX_UNICODE_CHARSET)
#define ASCII_RESTRICTED (get_regex_charset(RExC_flags) == REGEX_ASCII_RESTRICTED_CHARSET)
#define MORE_ASCII_RESTRICTED (get_regex_charset(RExC_flags) == REGEX_ASCII_MORE_RESTRICTED_CHARSET)
@@ -8010,9 +8012,12 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
U32 posflags = 0, negflags = 0;
U32 *flagsp = &posflags;
char has_charset_modifier = '\0';
- regex_charset cs = (RExC_utf8 || RExC_uni_semantics)
- ? REGEX_UNICODE_CHARSET
- : REGEX_DEPENDS_CHARSET;
+ regex_charset cs = get_regex_charset(RExC_flags);
+ if (cs == REGEX_DEPENDS_CHARSET
+ && (RExC_utf8 || RExC_uni_semantics))
+ {
+ cs = REGEX_UNICODE_CHARSET;
+ }
while (*RExC_parse) {
/* && strchr("iogcmsx", *RExC_parse) */
@@ -10848,6 +10853,8 @@ parseit:
PL_PosixCntrl, PL_XPosixCntrl);
break;
case ANYOF_DIGIT:
+ /* Ignore the compiler warning for this macro, planned to
+ * be eliminated later */
DO_POSIX_LATIN1_ONLY_KNOWN(ret, namedclass, properties,
PL_PosixDigit, PL_PosixDigit, "XPosixDigit", listsv);
break;
diff --git a/t/re/pat.t b/t/re/pat.t
index b4b7ac4..624b0d9 100644
--- a/t/re/pat.t
+++ b/t/re/pat.t
@@ -2,9 +2,7 @@
#
# This is a home for regular expression tests that don't fit into
# the format supported by re/regexp.t. If you want to add a test
-# that does fit that format, add it to re/re_tests, not here. Tests for \N
-# should be added here because they are treated as single quoted strings
-# there, which means they avoid the lexer which otherwise would look at them.
+# that does fit that format, add it to re/re_tests, not here.
use strict;
use warnings;
@@ -21,7 +19,7 @@ BEGIN {
require './test.pl';
}
-plan tests => 469; # Update this when adding/deleting tests.
+plan tests => 472; # Update this when adding/deleting tests.
run_tests() unless caller;
@@ -1253,6 +1251,15 @@ EOP
$anch_count++ while $str=~/^.*/mg;
is $anch_count, 1, 'while "\n"=~/^.*/mg should match only once';
}
+
+ { # [perl #111174]
+ use re '/u';
+ like "\xe0", qr/(?i:\xc0)/, "(?i: shouldn't lose the passed in /u";
+ use re '/a';
+ unlike "\x{100}", qr/(?i:\w)/, "(?i: shouldn't lose the passed in /a";
+ use re '/aa';
+ unlike 'k', qr/(?i:\N{KELVIN SIGN})/, "(?i: shouldn't lose the passed in /aa";
+ }
} # End of sub run_tests
1;
--
Perl5 Master Repository
-
[perl.git] branch blead, updated. v5.15.8-53-g0c28294
by Karl Williamson