In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/d90f68193029ea3c44b13561f94dbc565e54b3f0?hp=6e9048c44fd0fcc1018756f69c09741889e684a9>
- Log ----------------------------------------------------------------- commit d90f68193029ea3c44b13561f94dbc565e54b3f0 Author: Karl Williamson <[email protected]> Date: Sat Feb 21 12:16:40 2015 -0700 perlrebackslash: Amplify and correct \b{sb}, \b{wb} M pod/perlrebackslash.pod commit 412a49a2e5f96f24a2a97864bb3af0f6023b3e7b Author: Karl Williamson <[email protected]> Date: Sat Feb 21 12:12:35 2015 -0700 perlrecharclass: \R could be inside a [...] But we haven't made it so. So remove the text saying that it can't. For a couple of releases now, we have allowed something that can match more than one character to be inside a non-complemented bracketed character class, so this could too, should we choose to someday. M pod/perlrecharclass.pod commit 779cf272a07d560ad97de0fec1722d5e3f10e351 Author: Karl Williamson <[email protected]> Date: Fri Feb 20 11:10:05 2015 -0700 \s matching VT is no longer experimental This was experimentally introduced in 5.18, and no issues were raised, except that it got us to thinking and spurred us to stop allowing $^X, where 'X' is a non-printable control character, and that change caused some issues. M handy.h M l1_char_class_tab.h M perl.c M pod/perlexperiment.pod M pod/perlre.pod M pod/perlrecharclass.pod M pod/perlunicode.pod M regcomp.c M regcomp.h M regen/mk_PL_charclass.pl M regexec.c commit 687ffedd21ab291b3c138bcffbe99168f79d3e26 Author: Karl Williamson <[email protected]> Date: Fri Feb 20 11:09:41 2015 -0700 charclass_invlists.h: Add regen entry This missing entry is one used by t/porting/regen.t to see if the contents are up-to-date. I don't know why it didn't get added earlier, and why there aren't failures except apparently on my machine due to it's not being there. I thought I took great care in getting it right. M charclass_invlists.h commit ea64e14e408c0d0482e6bd50ccd48fa0d5977e9d Author: Karl Williamson <[email protected]> Date: Fri Feb 20 10:12:52 2015 -0700 perlunitut, perlreref: Nits Spotted by Tom Christiansen M pod/perlreref.pod M pod/perlunitut.pod ----------------------------------------------------------------------- Summary of changes: charclass_invlists.h | 1 + handy.h | 61 ++++++++++++++++++--------------------------- l1_char_class_tab.h | 64 ++++++++++++++++++++++++------------------------ perl.c | 1 - pod/perlexperiment.pod | 8 +++--- pod/perlre.pod | 4 +-- pod/perlrebackslash.pod | 20 +++++++++++---- pod/perlrecharclass.pod | 21 ++++++---------- pod/perlreref.pod | 1 + pod/perlunicode.pod | 4 +-- pod/perlunitut.pod | 4 +-- regcomp.c | 7 ++---- regcomp.h | 2 -- regen/mk_PL_charclass.pl | 3 --- regexec.c | 22 +++-------------- 15 files changed, 97 insertions(+), 126 deletions(-) diff --git a/charclass_invlists.h b/charclass_invlists.h index 08a3149..ab09082 100644 --- a/charclass_invlists.h +++ b/charclass_invlists.h @@ -97306,6 +97306,7 @@ static const UV XPosixXDigit_invlist[] = { /* for EBCDIC POSIX-BC */ * bfa3da58ea982199829e1107ac5a9a544b83100470a2d0cc28fb50ec234cb840 lib/unicore/UnicodeData.txt * 916289f471c4a337fb1e0715985a11e6bc8bb205736e84164849d601d265d9e0 lib/unicore/auxiliary/GCBTest.txt * 3d7ffae56e506d595f3e0e5d36978bc6721d53470e5ca9666ad7cdfc4a46cb3d lib/unicore/auxiliary/GraphemeBreakProperty.txt + * 370ddf3ba9b337819cf21795c2bd7cda578ac5ff4700d1a3ac923e8be988b57e lib/unicore/auxiliary/SBTest.txt * 28356f6912113a9fe8244d9396e9786115dbc10b3ffb5e31b08969122e91d3f3 lib/unicore/auxiliary/SentenceBreakProperty.txt * 3f56d3ccfc35c6dac44d143a4d6087af4e4ee9f1bdbae482c12f6149b60dec3b lib/unicore/auxiliary/WBTest.txt * 82f7304030e6866ef8e02cdfb0485c52c18a661282bfce9c259cc6300abd79ad lib/unicore/auxiliary/WordBreakProperty.txt diff --git a/handy.h b/handy.h index faa9f7a..9411dfa 100644 --- a/handy.h +++ b/handy.h @@ -651,9 +651,7 @@ C<isPUNCT_LC_uvchr>, and C<isPUNCT_LC_utf8>. Returns a boolean indicating whether the specified character is a whitespace character. This is analogous to what C<m/\s/> matches in a regular expression. Starting in Perl 5.18 -(experimentally), this also matches what C<m/[[:space:]]/> does. -("Experimentally" means that this change may be backed out in 5.22 if -field experience indicates that it was unwise.) Prior to 5.18, only the +this also matches what C<m/[[:space:]]/> does. Prior to 5.18, only the locale forms of this macro (the ones with C<LC> in their names) matched precisely what C<m/[[:space:]]/> does. In those releases, the only difference, in the non-locale variants, was that C<isSPACE()> did not match a vertical tab. @@ -665,10 +663,8 @@ C<isSPACE_LC_uvchr>, and C<isSPACE_LC_utf8>. =for apidoc Am|bool|isPSXSPC|char ch (short for Posix Space) -Starting in 5.18, this is identical (experimentally) in all its forms to the -corresponding C<isSPACE()> macros. ("Experimentally" means that this change -may be backed out in 5.22 if field experience indicates that it -was unwise.) +Starting in 5.18, this is identical in all its forms to the +corresponding C<isSPACE()> macros. The locale forms of this macro are identical to their corresponding C<isSPACE()> forms in all Perl releases. In releases prior to 5.18, the non-locale forms differ from their C<isSPACE()> forms only in that the @@ -939,27 +935,26 @@ patched there. The file as of this writing is cpan/Devel-PPPort/parts/inc/misc * useful to group these which have no members that match above Latin1, (or * above ASCII in the latter case) */ -# define _CC_SPACE 10 /* \s */ +# define _CC_SPACE 10 /* \s, [:space:] */ # define _CC_BLANK 11 /* [:blank:] */ # define _CC_XDIGIT 12 /* [:xdigit:] */ -# define _CC_PSXSPC 13 /* [:space:] */ -# define _CC_CNTRL 14 /* [:cntrl:] */ -# define _CC_ASCII 15 /* [:ascii:] */ -# define _CC_VERTSPACE 16 /* \v */ +# define _CC_CNTRL 13 /* [:cntrl:] */ +# define _CC_ASCII 14 /* [:ascii:] */ +# define _CC_VERTSPACE 15 /* \v */ # define _HIGHEST_REGCOMP_DOT_H_SYNC _CC_VERTSPACE /* The members of the third group below do not need to be coordinated with data * structures in regcomp.[ch] and regexec.c. */ -# define _CC_IDFIRST 17 -# define _CC_CHARNAME_CONT 18 -# define _CC_NONLATIN1_FOLD 19 -# define _CC_NONLATIN1_SIMPLE_FOLD 20 -# define _CC_QUOTEMETA 21 -# define _CC_NON_FINAL_FOLD 22 -# define _CC_IS_IN_SOME_FOLD 23 -# define _CC_MNEMONIC_CNTRL 24 -/* Unused: 25-31 +# define _CC_IDFIRST 16 +# define _CC_CHARNAME_CONT 17 +# define _CC_NONLATIN1_FOLD 18 +# define _CC_NONLATIN1_SIMPLE_FOLD 19 +# define _CC_QUOTEMETA 20 +# define _CC_NON_FINAL_FOLD 21 +# define _CC_IS_IN_SOME_FOLD 22 +# define _CC_MNEMONIC_CNTRL 23 +/* Unused: 24-31 * If more bits are needed, one could add a second word for non-64bit * QUAD_IS_INT systems, using some #ifdefs to distinguish between having a 2nd * word or not. The IS_IN_SOME_FOLD bit is the most easily expendable, as it @@ -982,7 +977,6 @@ typedef enum { _CC_ENUM_GRAPH = _CC_GRAPH, _CC_ENUM_LOWER = _CC_LOWER, _CC_ENUM_PRINT = _CC_PRINT, - _CC_ENUM_PSXSPC = _CC_PSXSPC, _CC_ENUM_PUNCT = _CC_PUNCT, _CC_ENUM_SPACE = _CC_SPACE, _CC_ENUM_UPPER = _CC_UPPER, @@ -1058,7 +1052,6 @@ END_EXTERN_C # define isGRAPH_A(c) _generic_isCC_A(c, _CC_GRAPH) # define isLOWER_A(c) _generic_isCC_A(c, _CC_LOWER) # define isPRINT_A(c) _generic_isCC_A(c, _CC_PRINT) -# define isPSXSPC_A(c) _generic_isCC_A(c, _CC_PSXSPC) # define isPUNCT_A(c) _generic_isCC_A(c, _CC_PUNCT) # define isSPACE_A(c) _generic_isCC_A(c, _CC_SPACE) # define isUPPER_A(c) _generic_isCC_A(c, _CC_UPPER) @@ -1076,7 +1069,7 @@ END_EXTERN_C # define isGRAPH_L1(c) _generic_isCC(c, _CC_GRAPH) # define isLOWER_L1(c) _generic_isCC(c, _CC_LOWER) # define isPRINT_L1(c) _generic_isCC(c, _CC_PRINT) -# define isPSXSPC_L1(c) _generic_isCC(c, _CC_PSXSPC) +# define isPSXSPC_L1(c) isSPACE_L1(c) # define isPUNCT_L1(c) _generic_isCC(c, _CC_PUNCT) # define isSPACE_L1(c) _generic_isCC(c, _CC_SPACE) # define isUPPER_L1(c) _generic_isCC(c, _CC_UPPER) @@ -1189,7 +1182,6 @@ END_EXTERN_C # if ! defined(EBCDIC) && ! defined(NATIVE_TO_LATIN1) # define NATIVE_TO_LATIN1(ch) (ch) # endif -# define isPSXSPC_A(c) isSPACE_A(c) /* XXX Assumes SPACE matches '\v' */ # define isALPHA_L1(c) (isUPPER_L1(c) || isLOWER_L1(c)) # define isALPHANUMERIC_L1(c) (isALPHA_L1(c) || isDIGIT_A(c)) # define isBLANK_L1(c) (isBLANK_A(c) \ @@ -1207,7 +1199,6 @@ END_EXTERN_C # define isPRINT_L1(c) (isPRINT_A(c) \ || (FITS_IN_8_BITS(c) \ && NATIVE_TO_LATIN1((U8) c) >= 0xA0)) -# define isPSXSPC_L1(c) isSPACE_L1(c) # define isPUNCT_L1(c) (isPUNCT_A(c) \ || (FITS_IN_8_BITS(c) \ && (NATIVE_TO_LATIN1((U8) c) == 0xA1 \ @@ -1269,7 +1260,9 @@ END_EXTERN_C #define isIDFIRST(c) isIDFIRST_A(c) #define isLOWER(c) isLOWER_A(c) #define isPRINT(c) isPRINT_A(c) +#define isPSXSPC_A(c) isSPACE_A(c) #define isPSXSPC(c) isPSXSPC_A(c) +#define isPSXSPC_L1(c) isSPACE_L1(c) #define isPUNCT(c) isPUNCT_A(c) #define isSPACE(c) isSPACE_A(c) #define isUPPER(c) isUPPER_A(c) @@ -1508,11 +1501,10 @@ END_EXTERN_C #define isLOWER_uni(c) _generic_swash_uni(_CC_LOWER, c) #define isPRINT_uni(c) _generic_swash_uni(_CC_PRINT, c) -/* Posix and regular space are identical above Latin1 */ -#define isPSXSPC_uni(c) _generic_uni(_CC_PSXSPC, is_XPERLSPACE_cp_high, c) - #define isPUNCT_uni(c) _generic_swash_uni(_CC_PUNCT, c) #define isSPACE_uni(c) _generic_uni(_CC_SPACE, is_XPERLSPACE_cp_high, c) +#define isPSXSPC_uni(c) isSPACE_uni(c) + #define isUPPER_uni(c) _generic_swash_uni(_CC_UPPER, c) #define isVERTWS_uni(c) _generic_uni(_CC_VERTSPACE, is_VERTWS_cp_high, c) #define isWORDCHAR_uni(c) _generic_swash_uni(_CC_WORDCHAR, c) @@ -1547,8 +1539,7 @@ END_EXTERN_C _is_uni_perl_idstart, c) #define isLOWER_LC_uvchr(c) _generic_LC_swash_uvchr(isLOWER_LC, _CC_LOWER, c) #define isPRINT_LC_uvchr(c) _generic_LC_swash_uvchr(isPRINT_LC, _CC_PRINT, c) -#define isPSXSPC_LC_uvchr(c) isSPACE_LC_uvchr(c) /* space is identical to posix - space under locale */ +#define isPSXSPC_LC_uvchr(c) isSPACE_LC_uvchr(c) #define isPUNCT_LC_uvchr(c) _generic_LC_swash_uvchr(isPUNCT_LC, _CC_PUNCT, c) #define isSPACE_LC_uvchr(c) _generic_LC_uvchr(isSPACE_LC, \ is_XPERLSPACE_cp_high, c) @@ -1634,10 +1625,7 @@ END_EXTERN_C #define isLOWER_utf8(p) _generic_swash_utf8(_CC_LOWER, p) #define isPRINT_utf8(p) _generic_swash_utf8(_CC_PRINT, p) - -/* Posix and regular space are identical above Latin1 */ -#define isPSXSPC_utf8(p) _generic_func_utf8(_CC_PSXSPC, is_XPERLSPACE_high, p) - +#define isPSXSPC_utf8(p) isSPACE_utf8(p) #define isPUNCT_utf8(p) _generic_swash_utf8(_CC_PUNCT, p) #define isSPACE_utf8(p) _generic_func_utf8(_CC_SPACE, is_XPERLSPACE_high, p) #define isUPPER_utf8(p) _generic_swash_utf8(_CC_UPPER, p) @@ -1679,8 +1667,7 @@ END_EXTERN_C #define isIDFIRST_LC_utf8(p) _generic_LC_func_utf8(isIDFIRST_LC, _is_utf8_perl_idstart, p) #define isLOWER_LC_utf8(p) _generic_LC_swash_utf8(isLOWER_LC, _CC_LOWER, p) #define isPRINT_LC_utf8(p) _generic_LC_swash_utf8(isPRINT_LC, _CC_PRINT, p) -#define isPSXSPC_LC_utf8(p) isSPACE_LC_utf8(p) /* space is identical to posix - space under locale */ +#define isPSXSPC_LC_utf8(p) isSPACE_LC_utf8(p) #define isPUNCT_LC_utf8(p) _generic_LC_swash_utf8(isPUNCT_LC, _CC_PUNCT, p) #define isSPACE_LC_utf8(p) _generic_LC_func_utf8(isSPACE_LC, is_XPERLSPACE_high, p) #define isUPPER_LC_utf8(p) _generic_LC_swash_utf8(isUPPER_LC, _CC_UPPER, p) diff --git a/l1_char_class_tab.h b/l1_char_class_tab.h index fc262be..bdab989 100644 --- a/l1_char_class_tab.h +++ b/l1_char_class_tab.h @@ -17,11 +17,11 @@ /* U+06 ACK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL), /* U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL), -/* U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL), -/* U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), -/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), -/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), -/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), +/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), /* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), @@ -40,7 +40,7 @@ /* U+1D GS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+1E RS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+1F US */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), +/* U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), /* U+21 '!' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA), /* U+22 '"' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA), /* U+23 '#' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA), @@ -141,7 +141,7 @@ /* U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), +/* U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), /* U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), @@ -168,7 +168,7 @@ /* U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), +/* U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), /* U+A1 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA), /* U+A2 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA), /* U+A3 POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA), @@ -276,15 +276,15 @@ /* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x04 U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL), /* 0x06 U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x07 U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x08 U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x09 U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x0A U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), -/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), -/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), +/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), /* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), @@ -292,7 +292,7 @@ /* U+12 DC2 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+13 DC3 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x14 U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* 0x15 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* 0x15 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), /* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL), /* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), @@ -308,7 +308,7 @@ /* 0x22 U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x23 U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x24 U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* 0x25 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), +/* 0x25 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), /* 0x26 U+17 ETB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x27 U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL), /* 0x28 U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), @@ -335,8 +335,8 @@ /* 0x3D U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), -/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), +/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), +/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), /* 0x42 U+E2 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC ... [18 chars truncated] /* 0x43 U+E4 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1 ... [24 chars truncated] /* 0x44 U+E0 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_ ... [20 chars truncated] @@ -539,15 +539,15 @@ /* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x04 U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL), /* 0x06 U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x07 U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x08 U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x09 U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x0A U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), -/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), -/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), +/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), /* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), @@ -555,7 +555,7 @@ /* U+12 DC2 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+13 DC3 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x14 U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* 0x15 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), +/* 0x15 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), /* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL), /* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), @@ -571,7 +571,7 @@ /* 0x22 U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x23 U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x24 U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* 0x25 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* 0x25 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), /* 0x26 U+17 ETB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x27 U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL), /* 0x28 U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), @@ -598,8 +598,8 @@ /* 0x3D U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), -/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), +/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), +/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), /* 0x42 U+E2 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC ... [18 chars truncated] /* 0x43 U+E4 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1 ... [24 chars truncated] /* 0x44 U+E0 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_ ... [20 chars truncated] @@ -802,15 +802,15 @@ /* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x04 U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL), /* 0x06 U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x07 U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x08 U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x09 U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x0A U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), -/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), -/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), +/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), /* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), @@ -818,7 +818,7 @@ /* U+12 DC2 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+13 DC3 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x14 U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* 0x15 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), +/* 0x15 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL), /* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL), /* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), @@ -834,7 +834,7 @@ /* 0x22 U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x23 U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x24 U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* 0x25 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), +/* 0x25 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE), /* 0x26 U+17 ETB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x27 U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL), /* 0x28 U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), @@ -861,8 +861,8 @@ /* 0x3D U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), /* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA), -/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), -/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), +/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), +/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE), /* 0x42 U+E2 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC ... [18 chars truncated] /* 0x43 U+E4 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1 ... [24 chars truncated] /* 0x44 U+E0 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_ ... [20 chars truncated] diff --git a/perl.c b/perl.c index db079cd..d4deb9d 100644 --- a/perl.c +++ b/perl.c @@ -385,7 +385,6 @@ perl_construct(pTHXx) PL_XPosix_ptrs[_CC_PRINT] = _new_invlist_C_array(XPosixPrint_invlist); PL_XPosix_ptrs[_CC_PUNCT] = _new_invlist_C_array(XPosixPunct_invlist); PL_XPosix_ptrs[_CC_SPACE] = _new_invlist_C_array(XPerlSpace_invlist); - PL_XPosix_ptrs[_CC_PSXSPC] = _new_invlist_C_array(XPosixSpace_invlist); PL_XPosix_ptrs[_CC_UPPER] = _new_invlist_C_array(XPosixUpper_invlist); PL_XPosix_ptrs[_CC_VERTSPACE] = _new_invlist_C_array(VertSpace_invlist); PL_XPosix_ptrs[_CC_WORDCHAR] = _new_invlist_C_array(XPosixWord_invlist); diff --git a/pod/perlexperiment.pod b/pod/perlexperiment.pod index 98e1aa9..ad46c0f 100644 --- a/pod/perlexperiment.pod +++ b/pod/perlexperiment.pod @@ -87,10 +87,6 @@ See also: L<perlrecharclass/Extended Bracketed Character Classes> Using this feature triggers warnings in the category C<experimental::regex_sets>. -=item C<\s> in regexp matches vertical tab - -Introduced in Perl 5.18 - =item Subroutine signatures Introduced in Perl 5.20.0 @@ -261,6 +257,10 @@ See also L<perlrun> Accepted in Perl 5.20.0 +=item C<\s> in regexp matches vertical tab + +Accepted in Perl 5.22.0 + =back =head2 Removed features diff --git a/pod/perlre.pod b/pod/perlre.pod index 90858b1..2cf00fb 100644 --- a/pod/perlre.pod +++ b/pod/perlre.pod @@ -429,8 +429,8 @@ When it appears singly, it causes the sequences C<\d>, C<\s>, C<\w>, and the Posix character classes to match only in the ASCII range. They thus revert to their pre-5.6, pre-Unicode meanings. Under C</a>, C<\d> always means precisely the digits C<"0"> to C<"9">; C<\s> means the five -characters C<[ \f\n\r\t]>, and starting in Perl v5.18, experimentally, -the vertical tab; C<\w> means the 63 characters +characters C<[ \f\n\r\t]>, and starting in Perl v5.18, the vertical tab; +C<\w> means the 63 characters C<[A-Za-z0-9_]>; and likewise, all the Posix classes such as C<[[:print:]]> match only the appropriate ASCII-range characters. diff --git a/pod/perlrebackslash.pod b/pod/perlrebackslash.pod index 876d874..425299d 100644 --- a/pod/perlrebackslash.pod +++ b/pod/perlrebackslash.pod @@ -577,15 +577,24 @@ whichever is most convenient for your situation. This matches a Unicode "Sentence Boundary". This is an aid to parsing natural language sentences. It gives good, but imperfect results. For example, it thinks that "Mr. Smith" is two sentences. More details are -at L<http://www.unicode.org/reports/tr29/>. +at L<http://www.unicode.org/reports/tr29/>. Note also that it thinks +that anything matching L</\R> (except form feed and vertical tab) is a +sentence boundary. This works with word-processor text which line wraps +automatically for display, but hard-coded line boundaries are considered +to be essentially the ends of text blocks (paragraphs really), and hence +the ends of sententces. It doesn't well with text containing embedded +newlines, like the source text of the document you are reading. Such +text needs to be preprocessed to get rid of the line separators before +looking for sentence boundaries. Some people view this as a bug in the +Unicode standard. =item C<\b{wb}> This matches a Unicode "Word Boundary". This gives better (though not perfect) results for natural language processing than plain C<\b> (without braces) does. For example, it understands that apostrophes can -be in the middle of words. More details are at -L<http://www.unicode.org/reports/tr29/>. +be in the middle of words and that parentheses aren't. More details +are at L<http://www.unicode.org/reports/tr29/>. =back @@ -612,9 +621,10 @@ Mnemonic: I<b>oundary. print $1; # Prints 'cat' } - print join "\n", "I don't care" =~ m/ ( .+? \b{wb} ) /xg; + print join "|", "He said, \"Do you care? (I don't).\"" + =~ m/ ( .+? \b{wb} ) /xg; prints - I, ,don't, ,care + He| |said|,| |"|Do| |you| |care|?| |(|I| |don't|)|.|" =head2 Misc diff --git a/pod/perlrecharclass.pod b/pod/perlrecharclass.pod index 0d00a39..84a9226 100644 --- a/pod/perlrecharclass.pod +++ b/pod/perlrecharclass.pod @@ -214,7 +214,7 @@ C<\s> matches any single character considered whitespace. In all Perl versions, C<\s> matches the 5 characters [\t\n\f\r ]; that is, the horizontal tab, the newline, the form feed, the carriage return, and the space. -Starting in Perl v5.18, experimentally, it also matches the vertical tab, C<\cK>. +Starting in Perl v5.18, it also matches the vertical tab, C<\cK>. See note C<[1]> below for a discussion of this. =item otherwise ... @@ -241,7 +241,7 @@ table below. =item otherwise ... -C<\s> matches [\t\n\f\r ] and, starting, experimentally in Perl +C<\s> matches [\t\n\f\r ] and, starting in Perl v5.18, the vertical tab, C<\cK>. (See note C<[1]> below for a discussion of this.) Note that this list doesn't include the non-breaking space. @@ -271,9 +271,9 @@ They use the platform's native character set, and do not consider any locale that may otherwise be in use. C<\R> matches anything that can be considered a newline under Unicode -rules. It's not a character class, as it can match a multi-character -sequence. Therefore, it cannot be used inside a bracketed character -class; use C<\v> instead (vertical whitespace). It uses the platform's +rules. It can match a multi-character sequence. It cannot be used inside +a bracketed character class; use C<\v> instead (vertical whitespace). +It uses the platform's native character set, and does not consider any locale that may otherwise be in use. Details are discussed in L<perlrebackslash>. @@ -324,13 +324,8 @@ effect that changes the C<\s> matching). =item [1] -Prior to Perl v5.18, C<\s> did not match the vertical tab. The change -in v5.18 is considered an experiment, which means it could be backed out -in v5.22 if experience indicates that it breaks too much -existing code. If this change adversely affects you, send email to -C<[email protected]>; if it affects you positively, email -C<[email protected]>. In the meantime, C<[^\S\cK]> (obscurely) -matches what C<\s> traditionally did. +Prior to Perl v5.18, C<\s> did not match the vertical tab. +C<[^\S\cK]> (obscurely) matches what C<\s> traditionally did. =item [2] @@ -862,7 +857,7 @@ Unicode considers symbols. C<\p{XPerlSpace}> and C<\p{Space}> match identically starting with Perl v5.18. In earlier versions, these differ only in that in non-locale -matching, C<\p{XPerlSpace}> does not match the vertical tab, C<\cK>. +matching, C<\p{XPerlSpace}> did not match the vertical tab, C<\cK>. Same for the two ASCII-only range forms. =back diff --git a/pod/perlreref.pod b/pod/perlreref.pod index bc4bef7..de1b0d6 100644 --- a/pod/perlreref.pod +++ b/pod/perlreref.pod @@ -245,6 +245,7 @@ There is no quantifier C<{,n}>. That's interpreted as a literal string. (?<name>...) Named capture (?'name'...) Named capture (?P<name>...) Named capture (python syntax) + (?[...]) Extended bracketed character class (?{ code }) Embedded code, return value becomes $^R (??{ code }) Dynamic regex, return value used as regex (?N) Recurse into subpattern number N diff --git a/pod/perlunicode.pod b/pod/perlunicode.pod index f74f4f7..e1e4cdb 100644 --- a/pod/perlunicode.pod +++ b/pod/perlunicode.pod @@ -725,7 +725,7 @@ This is a synonym for C<\p{Present_In=*}> =item B<C<\p{PerlSpace}>> This is the same as C<\s>, restricted to ASCII, namely C<S<[ \f\n\r\t]>> -and starting in Perl v5.18, experimentally, a vertical tab. +and starting in Perl v5.18, a vertical tab. Mnemonic: Perl's (original) space @@ -784,7 +784,7 @@ This matches any character that is graphical or blank, except controls. This is the same as C<\s>, including beyond ASCII. Mnemonic: Space, as modified by Perl. (It doesn't include the vertical tab -which both the Posix standard and Unicode consider white space.) +until v5.18, which both the Posix standard and Unicode consider white space.) =item B<C<\p{Title}>> and B<C<\p{Titlecase}>> diff --git a/pod/perlunitut.pod b/pod/perlunitut.pod index 9e5af04..0ac91e0 100644 --- a/pod/perlunitut.pod +++ b/pod/perlunitut.pod @@ -56,8 +56,8 @@ the same thing, but they're not. There are more Unicode encodings, but much of the world has standardized on UTF-8. UTF-8 treats the first 128 codepoints, 0..127, the same as ASCII. They take -only one byte per character. All other characters are encoded as two or more -(up to six) bytes using a complex scheme. Fortunately, Perl handles this for +only one byte per character. All other characters are encoded as two to +four bytes using a complex scheme. Fortunately, Perl handles this for us, so we don't have to worry about this. =head3 Text strings (character strings) diff --git a/regcomp.c b/regcomp.c index 68f1c49..daed3c6 100644 --- a/regcomp.c +++ b/regcomp.c @@ -13051,7 +13051,7 @@ S_regpposixcc(pTHX_ RExC_state_t *pRExC_state, I32 value, const bool strict) break; case 'e': if (memEQ(posixcc, "spac", 4)) /* space */ - namedclass = ANYOF_PSXSPC; + namedclass = ANYOF_SPACE; break; case 'h': if (memEQ(posixcc, "grap", 4)) /* graph */ @@ -16481,8 +16481,7 @@ Perl_regprop(pTHX_ const regexp *prog, SV *sv, const regnode *o, const regmatch_ || _CC_UPPER != 4 || _CC_PUNCT != 5 || _CC_PRINT != 6 \ || _CC_ALPHANUMERIC != 7 || _CC_GRAPH != 8 || _CC_CASED != 9 \ || _CC_SPACE != 10 || _CC_BLANK != 11 || _CC_XDIGIT != 12 \ - || _CC_PSXSPC != 13 || _CC_CNTRL != 14 || _CC_ASCII != 15 \ - || _CC_VERTSPACE != 16 + || _CC_CNTRL != 13 || _CC_ASCII != 14 || _CC_VERTSPACE != 15 #error Need to adjust order of anyofs[] #endif "\\w", @@ -16511,8 +16510,6 @@ Perl_regprop(pTHX_ const regexp *prog, SV *sv, const regnode *o, const regmatch_ "[:^blank:]", "[:xdigit:]", "[:^xdigit:]", - "[:space:]", - "[:^space:]", "[:cntrl:]", "[:^cntrl:]", "[:ascii:]", diff --git a/regcomp.h b/regcomp.h index ebcf2fb..244c72f 100644 --- a/regcomp.h +++ b/regcomp.h @@ -474,8 +474,6 @@ struct regnode_ssc { #define ANYOF_NLOWER ((ANYOF_LOWER) + 1) #define ANYOF_PRINT ((_CC_PRINT) * 2) #define ANYOF_NPRINT ((ANYOF_PRINT) + 1) -#define ANYOF_PSXSPC ((_CC_PSXSPC) * 2) /* POSIX space: \s plus the vertical tab */ -#define ANYOF_NPSXSPC ((ANYOF_PSXSPC) + 1) #define ANYOF_PUNCT ((_CC_PUNCT) * 2) #define ANYOF_NPUNCT ((ANYOF_PUNCT) + 1) #define ANYOF_SPACE ((_CC_SPACE) * 2) /* \s */ diff --git a/regen/mk_PL_charclass.pl b/regen/mk_PL_charclass.pl index 8a682dc..4b46bd0 100644 --- a/regen/mk_PL_charclass.pl +++ b/regen/mk_PL_charclass.pl @@ -38,7 +38,6 @@ my @properties = qw( LOWER NON_FINAL_FOLD PRINT - PSXSPC PUNCT QUOTEMETA SPACE @@ -219,8 +218,6 @@ for my $ord (0..255) { $re = qr/\p{XPerlSpace}/; } elsif ($name eq 'IDFIRST') { $re = qr/[_\p{Alpha}]/; - } elsif ($name eq 'PSXSPC') { - $re = qr/[\v\p{Space}]/; } elsif ($name eq 'WORDCHAR') { $re = qr/\p{XPosixWord}/; } elsif ($name eq 'ALPHANUMERIC') { diff --git a/regexec.c b/regexec.c index 2bb7122..82ef20d 100644 --- a/regexec.c +++ b/regexec.c @@ -456,7 +456,6 @@ S_isFOO_lc(pTHX_ const U8 classnum, const U8 character) case _CC_ENUM_GRAPH: return isGRAPH_LC(character); case _CC_ENUM_LOWER: return isLOWER_LC(character); case _CC_ENUM_PRINT: return isPRINT_LC(character); - case _CC_ENUM_PSXSPC: return isPSXSPC_LC(character); case _CC_ENUM_PUNCT: return isPUNCT_LC(character); case _CC_ENUM_SPACE: return isSPACE_LC(character); case _CC_ENUM_UPPER: return isUPPER_LC(character); @@ -513,9 +512,7 @@ S_isFOO_utf8_lc(pTHX_ const U8 classnum, const U8* character) } switch ((_char_class_number) classnum) { - case _CC_ENUM_SPACE: - case _CC_ENUM_PSXSPC: return is_XPERLSPACE_high(character); - + case _CC_ENUM_SPACE: return is_XPERLSPACE_high(character); case _CC_ENUM_BLANK: return is_HORIZWS_high(character); case _CC_ENUM_XDIGIT: return is_XDIGIT_high(character); case _CC_ENUM_VERTSPACE: return is_VERTWS_high(character); @@ -2318,11 +2315,7 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, } else switch (classnum) { /* These classes are implemented as macros */ - case _CC_ENUM_SPACE: /* XXX would require separate code if we - revert the change of \v matching this */ - /* FALLTHROUGH */ - - case _CC_ENUM_PSXSPC: + case _CC_ENUM_SPACE: REXEC_FBC_UTF8_CLASS_SCAN( to_complement ^ cBOOL(isSPACE_utf8(s))); break; @@ -5870,10 +5863,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog) } else { /* Here, uses macros to find above Latin-1 code points */ switch (classnum) { - case _CC_ENUM_SPACE: /* XXX would require separate - code if we revert the change - of \v matching this */ - case _CC_ENUM_PSXSPC: + case _CC_ENUM_SPACE: if (! (to_complement ^ cBOOL(is_XPERLSPACE_high(locinput)))) { @@ -8388,11 +8378,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p, * code is written for making the loops as tight as possible. * It could be refactored to save space instead */ switch (classnum) { - case _CC_ENUM_SPACE: /* XXX would require separate code - if we revert the change of \v - matching this */ - /* FALLTHROUGH */ - case _CC_ENUM_PSXSPC: + case _CC_ENUM_SPACE: while (hardcount < max && scan < loceol && (to_complement ^ cBOOL(isSPACE_utf8(scan)))) -- Perl5 Master Repository
