ruby-changes:44877
From: naruse <ko1@a...>
Date: Thu, 1 Dec 2016 02:29:31 +0900 (JST)
Subject: [ruby-changes:44877] naruse:r56949 (trunk): Regexp supports Unicoe 9.0.0's \X
naruse 2016-12-01 02:29:19 +0900 (Thu, 01 Dec 2016) New Revision: 56949 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=56949 Log: Regexp supports Unicoe 9.0.0's \X * meta character \X matches Unicode 9.0.0 characters with some workarounds for UTR #51 Unicode Emoji, Version 4.0 emoji zwj sequences. [Feature #12831] [ruby-core:77586] The term "character" can have many meanings bytes, codepoints, combined characters, and so on. "grapheme cluster" is highest one of such words, which means user-perceived characters. Unicode Standard Annex #29 UNICODE TEXT SEGMENTATION specifies how to handle grapheme clusters (extended grapheme cluster). But some specs aren't updated to current situation because Unicode Emoji is rapidly extended without well definition. It breaks the precondition of UTR#29 "Grapheme cluster boundaries can be easily tested by looking at immediately adjacent characters". (the sentence will be removed in the next version) Though some of its detail are described in Unicode Technical Report #51 UNICODE EMOJI but it is not merged into UTR#29 yet. http://unicode.org/reports/tr29/ http://unicode.org/reports/tr51/ http://unicode.org/Public/emoji/4.0/ Modified files: trunk/NEWS trunk/common.mk trunk/enc/unicode/9.0.0/name2ctype.h trunk/regcomp.c trunk/regparse.c trunk/test/ruby/test_regexp.rb trunk/tool/downloader.rb trunk/tool/enc-unicode.rb Index: enc/unicode/9.0.0/name2ctype.h =================================================================== --- enc/unicode/9.0.0/name2ctype.h (revision 56948) +++ enc/unicode/9.0.0/name2ctype.h (revision 56949) @@ -29880,6 +29880,1093 @@ static const OnigCodePoint CR_Age_9_0[] https://github.com/ruby/ruby/blob/trunk/enc/unicode/9.0.0/name2ctype.h#L29880 }; /* CR_Age_9_0 */ #endif /* USE_UNICODE_AGE_PROPERTIES */ +/* 'Grapheme_Cluster_Break_Prepend': Grapheme_Cluster_Break=Prepend */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_Prepend[] = { + 7, + 0x0600, 0x0605, + 0x06dd, 0x06dd, + 0x070f, 0x070f, + 0x08e2, 0x08e2, + 0x0d4e, 0x0d4e, + 0x110bd, 0x110bd, + 0x111c2, 0x111c3, +}; /* CR_Grapheme_Cluster_Break_Prepend */ + +/* 'Grapheme_Cluster_Break_CR': Grapheme_Cluster_Break=CR */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_CR[] = { + 1, + 0x000d, 0x000d, +}; /* CR_Grapheme_Cluster_Break_CR */ + +/* 'Grapheme_Cluster_Break_LF': Grapheme_Cluster_Break=LF */ +#define CR_Grapheme_Cluster_Break_LF CR_NEWLINE + +/* 'Grapheme_Cluster_Break_Control': Grapheme_Cluster_Break=Control */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_Control[] = { + 19, + 0x0000, 0x0009, + 0x000b, 0x000c, + 0x000e, 0x001f, + 0x007f, 0x009f, + 0x00ad, 0x00ad, + 0x061c, 0x061c, + 0x180e, 0x180e, + 0x200b, 0x200b, + 0x200e, 0x200f, + 0x2028, 0x202e, + 0x2060, 0x206f, + 0xd800, 0xdfff, + 0xfeff, 0xfeff, + 0xfff0, 0xfffb, + 0x1bca0, 0x1bca3, + 0x1d173, 0x1d17a, + 0xe0000, 0xe001f, + 0xe0080, 0xe00ff, + 0xe01f0, 0xe0fff, +}; /* CR_Grapheme_Cluster_Break_Control */ + +/* 'Grapheme_Cluster_Break_Extend': Grapheme_Cluster_Break=Extend */ +#define CR_Grapheme_Cluster_Break_Extend CR_Grapheme_Extend + +/* 'Grapheme_Cluster_Break_Regional_Indicator': Grapheme_Cluster_Break=Regional_Indicator */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_Regional_Indicator[] = { + 1, + 0x1f1e6, 0x1f1ff, +}; /* CR_Grapheme_Cluster_Break_Regional_Indicator */ + +/* 'Grapheme_Cluster_Break_SpacingMark': Grapheme_Cluster_Break=SpacingMark */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_SpacingMark[] = { + 140, + 0x0903, 0x0903, + 0x093b, 0x093b, + 0x093e, 0x0940, + 0x0949, 0x094c, + 0x094e, 0x094f, + 0x0982, 0x0983, + 0x09bf, 0x09c0, + 0x09c7, 0x09c8, + 0x09cb, 0x09cc, + 0x0a03, 0x0a03, + 0x0a3e, 0x0a40, + 0x0a83, 0x0a83, + 0x0abe, 0x0ac0, + 0x0ac9, 0x0ac9, + 0x0acb, 0x0acc, + 0x0b02, 0x0b03, + 0x0b40, 0x0b40, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4c, + 0x0bbf, 0x0bbf, + 0x0bc1, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcc, + 0x0c01, 0x0c03, + 0x0c41, 0x0c44, + 0x0c82, 0x0c83, + 0x0cbe, 0x0cbe, + 0x0cc0, 0x0cc1, + 0x0cc3, 0x0cc4, + 0x0cc7, 0x0cc8, + 0x0cca, 0x0ccb, + 0x0d02, 0x0d03, + 0x0d3f, 0x0d40, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4c, + 0x0d82, 0x0d83, + 0x0dd0, 0x0dd1, + 0x0dd8, 0x0dde, + 0x0df2, 0x0df3, + 0x0e33, 0x0e33, + 0x0eb3, 0x0eb3, + 0x0f3e, 0x0f3f, + 0x0f7f, 0x0f7f, + 0x1031, 0x1031, + 0x103b, 0x103c, + 0x1056, 0x1057, + 0x1084, 0x1084, + 0x17b6, 0x17b6, + 0x17be, 0x17c5, + 0x17c7, 0x17c8, + 0x1923, 0x1926, + 0x1929, 0x192b, + 0x1930, 0x1931, + 0x1933, 0x1938, + 0x1a19, 0x1a1a, + 0x1a55, 0x1a55, + 0x1a57, 0x1a57, + 0x1a6d, 0x1a72, + 0x1b04, 0x1b04, + 0x1b35, 0x1b35, + 0x1b3b, 0x1b3b, + 0x1b3d, 0x1b41, + 0x1b43, 0x1b44, + 0x1b82, 0x1b82, + 0x1ba1, 0x1ba1, + 0x1ba6, 0x1ba7, + 0x1baa, 0x1baa, + 0x1be7, 0x1be7, + 0x1bea, 0x1bec, + 0x1bee, 0x1bee, + 0x1bf2, 0x1bf3, + 0x1c24, 0x1c2b, + 0x1c34, 0x1c35, + 0x1ce1, 0x1ce1, + 0x1cf2, 0x1cf3, + 0xa823, 0xa824, + 0xa827, 0xa827, + 0xa880, 0xa881, + 0xa8b4, 0xa8c3, + 0xa952, 0xa953, + 0xa983, 0xa983, + 0xa9b4, 0xa9b5, + 0xa9ba, 0xa9bb, + 0xa9bd, 0xa9c0, + 0xaa2f, 0xaa30, + 0xaa33, 0xaa34, + 0xaa4d, 0xaa4d, + 0xaaeb, 0xaaeb, + 0xaaee, 0xaaef, + 0xaaf5, 0xaaf5, + 0xabe3, 0xabe4, + 0xabe6, 0xabe7, + 0xabe9, 0xabea, + 0xabec, 0xabec, + 0x11000, 0x11000, + 0x11002, 0x11002, + 0x11082, 0x11082, + 0x110b0, 0x110b2, + 0x110b7, 0x110b8, + 0x1112c, 0x1112c, + 0x11182, 0x11182, + 0x111b3, 0x111b5, + 0x111bf, 0x111c0, + 0x1122c, 0x1122e, + 0x11232, 0x11233, + 0x11235, 0x11235, + 0x112e0, 0x112e2, + 0x11302, 0x11303, + 0x1133f, 0x1133f, + 0x11341, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11362, 0x11363, + 0x11435, 0x11437, + 0x11440, 0x11441, + 0x11445, 0x11445, + 0x114b1, 0x114b2, + 0x114b9, 0x114b9, + 0x114bb, 0x114bc, + 0x114be, 0x114be, + 0x114c1, 0x114c1, + 0x115b0, 0x115b1, + 0x115b8, 0x115bb, + 0x115be, 0x115be, + 0x11630, 0x11632, + 0x1163b, 0x1163c, + 0x1163e, 0x1163e, + 0x116ac, 0x116ac, + 0x116ae, 0x116af, + 0x116b6, 0x116b6, + 0x11720, 0x11721, + 0x11726, 0x11726, + 0x11c2f, 0x11c2f, + 0x11c3e, 0x11c3e, + 0x11ca9, 0x11ca9, + 0x11cb1, 0x11cb1, + 0x11cb4, 0x11cb4, + 0x16f51, 0x16f7e, + 0x1d166, 0x1d166, + 0x1d16d, 0x1d16d, +}; /* CR_Grapheme_Cluster_Break_SpacingMark */ + +/* 'Grapheme_Cluster_Break_L': Grapheme_Cluster_Break=L */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_L[] = { + 2, + 0x1100, 0x115f, + 0xa960, 0xa97c, +}; /* CR_Grapheme_Cluster_Break_L */ + +/* 'Grapheme_Cluster_Break_V': Grapheme_Cluster_Break=V */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_V[] = { + 2, + 0x1160, 0x11a7, + 0xd7b0, 0xd7c6, +}; /* CR_Grapheme_Cluster_Break_V */ + +/* 'Grapheme_Cluster_Break_T': Grapheme_Cluster_Break=T */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_T[] = { + 2, + 0x11a8, 0x11ff, + 0xd7cb, 0xd7fb, +}; /* CR_Grapheme_Cluster_Break_T */ + +/* 'Grapheme_Cluster_Break_LV': Grapheme_Cluster_Break=LV */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_LV[] = { + 399, + 0xac00, 0xac00, + 0xac1c, 0xac1c, + 0xac38, 0xac38, + 0xac54, 0xac54, + 0xac70, 0xac70, + 0xac8c, 0xac8c, + 0xaca8, 0xaca8, + 0xacc4, 0xacc4, + 0xace0, 0xace0, + 0xacfc, 0xacfc, + 0xad18, 0xad18, + 0xad34, 0xad34, + 0xad50, 0xad50, + 0xad6c, 0xad6c, + 0xad88, 0xad88, + 0xada4, 0xada4, + 0xadc0, 0xadc0, + 0xaddc, 0xaddc, + 0xadf8, 0xadf8, + 0xae14, 0xae14, + 0xae30, 0xae30, + 0xae4c, 0xae4c, + 0xae68, 0xae68, + 0xae84, 0xae84, + 0xaea0, 0xaea0, + 0xaebc, 0xaebc, + 0xaed8, 0xaed8, + 0xaef4, 0xaef4, + 0xaf10, 0xaf10, + 0xaf2c, 0xaf2c, + 0xaf48, 0xaf48, + 0xaf64, 0xaf64, + 0xaf80, 0xaf80, + 0xaf9c, 0xaf9c, + 0xafb8, 0xafb8, + 0xafd4, 0xafd4, + 0xaff0, 0xaff0, + 0xb00c, 0xb00c, + 0xb028, 0xb028, + 0xb044, 0xb044, + 0xb060, 0xb060, + 0xb07c, 0xb07c, + 0xb098, 0xb098, + 0xb0b4, 0xb0b4, + 0xb0d0, 0xb0d0, + 0xb0ec, 0xb0ec, + 0xb108, 0xb108, + 0xb124, 0xb124, + 0xb140, 0xb140, + 0xb15c, 0xb15c, + 0xb178, 0xb178, + 0xb194, 0xb194, + 0xb1b0, 0xb1b0, + 0xb1cc, 0xb1cc, + 0xb1e8, 0xb1e8, + 0xb204, 0xb204, + 0xb220, 0xb220, + 0xb23c, 0xb23c, + 0xb258, 0xb258, + 0xb274, 0xb274, + 0xb290, 0xb290, + 0xb2ac, 0xb2ac, + 0xb2c8, 0xb2c8, + 0xb2e4, 0xb2e4, + 0xb300, 0xb300, + 0xb31c, 0xb31c, + 0xb338, 0xb338, + 0xb354, 0xb354, + 0xb370, 0xb370, + 0xb38c, 0xb38c, + 0xb3a8, 0xb3a8, + 0xb3c4, 0xb3c4, + 0xb3e0, 0xb3e0, + 0xb3fc, 0xb3fc, + 0xb418, 0xb418, + 0xb434, 0xb434, + 0xb450, 0xb450, + 0xb46c, 0xb46c, + 0xb488, 0xb488, + 0xb4a4, 0xb4a4, + 0xb4c0, 0xb4c0, + 0xb4dc, 0xb4dc, + 0xb4f8, 0xb4f8, + 0xb514, 0xb514, + 0xb530, 0xb530, + 0xb54c, 0xb54c, + 0xb568, 0xb568, + 0xb584, 0xb584, + 0xb5a0, 0xb5a0, + 0xb5bc, 0xb5bc, + 0xb5d8, 0xb5d8, + 0xb5f4, 0xb5f4, + 0xb610, 0xb610, + 0xb62c, 0xb62c, + 0xb648, 0xb648, + 0xb664, 0xb664, + 0xb680, 0xb680, + 0xb69c, 0xb69c, + 0xb6b8, 0xb6b8, + 0xb6d4, 0xb6d4, + 0xb6f0, 0xb6f0, + 0xb70c, 0xb70c, + 0xb728, 0xb728, + 0xb744, 0xb744, + 0xb760, 0xb760, + 0xb77c, 0xb77c, + 0xb798, 0xb798, + 0xb7b4, 0xb7b4, + 0xb7d0, 0xb7d0, + 0xb7ec, 0xb7ec, + 0xb808, 0xb808, + 0xb824, 0xb824, + 0xb840, 0xb840, + 0xb85c, 0xb85c, + 0xb878, 0xb878, + 0xb894, 0xb894, + 0xb8b0, 0xb8b0, + 0xb8cc, 0xb8cc, + 0xb8e8, 0xb8e8, + 0xb904, 0xb904, + 0xb920, 0xb920, + 0xb93c, 0xb93c, + 0xb958, 0xb958, + 0xb974, 0xb974, + 0xb990, 0xb990, + 0xb9ac, 0xb9ac, + 0xb9c8, 0xb9c8, + 0xb9e4, 0xb9e4, + 0xba00, 0xba00, + 0xba1c, 0xba1c, + 0xba38, 0xba38, + 0xba54, 0xba54, + 0xba70, 0xba70, + 0xba8c, 0xba8c, + 0xbaa8, 0xbaa8, + 0xbac4, 0xbac4, + 0xbae0, 0xbae0, + 0xbafc, 0xbafc, + 0xbb18, 0xbb18, + 0xbb34, 0xbb34, + 0xbb50, 0xbb50, + 0xbb6c, 0xbb6c, + 0xbb88, 0xbb88, + 0xbba4, 0xbba4, + 0xbbc0, 0xbbc0, + 0xbbdc, 0xbbdc, + 0xbbf8, 0xbbf8, + 0xbc14, 0xbc14, + 0xbc30, 0xbc30, + 0xbc4c, 0xbc4c, + 0xbc68, 0xbc68, + 0xbc84, 0xbc84, + 0xbca0, 0xbca0, + 0xbcbc, 0xbcbc, + 0xbcd8, 0xbcd8, + 0xbcf4, 0xbcf4, + 0xbd10, 0xbd10, + 0xbd2c, 0xbd2c, + 0xbd48, 0xbd48, + 0xbd64, 0xbd64, + 0xbd80, 0xbd80, + 0xbd9c, 0xbd9c, + 0xbdb8, 0xbdb8, + 0xbdd4, 0xbdd4, + 0xbdf0, 0xbdf0, + 0xbe0c, 0xbe0c, + 0xbe28, 0xbe28, + 0xbe44, 0xbe44, + 0xbe60, 0xbe60, + 0xbe7c, 0xbe7c, + 0xbe98, 0xbe98, + 0xbeb4, 0xbeb4, + 0xbed0, 0xbed0, + 0xbeec, 0xbeec, + 0xbf08, 0xbf08, + 0xbf24, 0xbf24, + 0xbf40, 0xbf40, + 0xbf5c, 0xbf5c, + 0xbf78, 0xbf78, + 0xbf94, 0xbf94, + 0xbfb0, 0xbfb0, + 0xbfcc, 0xbfcc, + 0xbfe8, 0xbfe8, + 0xc004, 0xc004, + 0xc020, 0xc020, + 0xc03c, 0xc03c, + 0xc058, 0xc058, + 0xc074, 0xc074, + 0xc090, 0xc090, + 0xc0ac, 0xc0ac, + 0xc0c8, 0xc0c8, + 0xc0e4, 0xc0e4, + 0xc100, 0xc100, + 0xc11c, 0xc11c, + 0xc138, 0xc138, + 0xc154, 0xc154, + 0xc170, 0xc170, + 0xc18c, 0xc18c, + 0xc1a8, 0xc1a8, + 0xc1c4, 0xc1c4, + 0xc1e0, 0xc1e0, + 0xc1fc, 0xc1fc, + 0xc218, 0xc218, + 0xc234, 0xc234, + 0xc250, 0xc250, + 0xc26c, 0xc26c, + 0xc288, 0xc288, + 0xc2a4, 0xc2a4, + 0xc2c0, 0xc2c0, + 0xc2dc, 0xc2dc, + 0xc2f8, 0xc2f8, + 0xc314, 0xc314, + 0xc330, 0xc330, + 0xc34c, 0xc34c, + 0xc368, 0xc368, + 0xc384, 0xc384, + 0xc3a0, 0xc3a0, + 0xc3bc, 0xc3bc, + 0xc3d8, 0xc3d8, + 0xc3f4, 0xc3f4, + 0xc410, 0xc410, + 0xc42c, 0xc42c, + 0xc448, 0xc448, + 0xc464, 0xc464, + 0xc480, 0xc480, + 0xc49c, 0xc49c, + 0xc4b8, 0xc4b8, + 0xc4d4, 0xc4d4, + 0xc4f0, 0xc4f0, + 0xc50c, 0xc50c, + 0xc528, 0xc528, + 0xc544, 0xc544, + 0xc560, 0xc560, + 0xc57c, 0xc57c, + 0xc598, 0xc598, + 0xc5b4, 0xc5b4, + 0xc5d0, 0xc5d0, + 0xc5ec, 0xc5ec, + 0xc608, 0xc608, + 0xc624, 0xc624, + 0xc640, 0xc640, + 0xc65c, 0xc65c, + 0xc678, 0xc678, + 0xc694, 0xc694, + 0xc6b0, 0xc6b0, + 0xc6cc, 0xc6cc, + 0xc6e8, 0xc6e8, + 0xc704, 0xc704, + 0xc720, 0xc720, + 0xc73c, 0xc73c, + 0xc758, 0xc758, + 0xc774, 0xc774, + 0xc790, 0xc790, + 0xc7ac, 0xc7ac, + 0xc7c8, 0xc7c8, + 0xc7e4, 0xc7e4, + 0xc800, 0xc800, + 0xc81c, 0xc81c, + 0xc838, 0xc838, + 0xc854, 0xc854, + 0xc870, 0xc870, + 0xc88c, 0xc88c, + 0xc8a8, 0xc8a8, + 0xc8c4, 0xc8c4, + 0xc8e0, 0xc8e0, + 0xc8fc, 0xc8fc, + 0xc918, 0xc918, + 0xc934, 0xc934, + 0xc950, 0xc950, + 0xc96c, 0xc96c, + 0xc988, 0xc988, + 0xc9a4, 0xc9a4, + 0xc9c0, 0xc9c0, + 0xc9dc, 0xc9dc, + 0xc9f8, 0xc9f8, + 0xca14, 0xca14, + 0xca30, 0xca30, + 0xca4c, 0xca4c, + 0xca68, 0xca68, + 0xca84, 0xca84, + 0xcaa0, 0xcaa0, + 0xcabc, 0xcabc, + 0xcad8, 0xcad8, + 0xcaf4, 0xcaf4, + 0xcb10, 0xcb10, + 0xcb2c, 0xcb2c, + 0xcb48, 0xcb48, + 0xcb64, 0xcb64, + 0xcb80, 0xcb80, + 0xcb9c, 0xcb9c, + 0xcbb8, 0xcbb8, + 0xcbd4, 0xcbd4, + 0xcbf0, 0xcbf0, + 0xcc0c, 0xcc0c, + 0xcc28, 0xcc28, + 0xcc44, 0xcc44, + 0xcc60, 0xcc60, + 0xcc7c, 0xcc7c, + 0xcc98, 0xcc98, + 0xccb4, 0xccb4, + 0xccd0, 0xccd0, + 0xccec, 0xccec, + 0xcd08, 0xcd08, + 0xcd24, 0xcd24, + 0xcd40, 0xcd40, + 0xcd5c, 0xcd5c, + 0xcd78, 0xcd78, + 0xcd94, 0xcd94, + 0xcdb0, 0xcdb0, + 0xcdcc, 0xcdcc, + 0xcde8, 0xcde8, + 0xce04, 0xce04, + 0xce20, 0xce20, + 0xce3c, 0xce3c, + 0xce58, 0xce58, + 0xce74, 0xce74, + 0xce90, 0xce90, + 0xceac, 0xceac, + 0xcec8, 0xcec8, + 0xcee4, 0xcee4, + 0xcf00, 0xcf00, + 0xcf1c, 0xcf1c, + 0xcf38, 0xcf38, + 0xcf54, 0xcf54, + 0xcf70, 0xcf70, + 0xcf8c, 0xcf8c, + 0xcfa8, 0xcfa8, + 0xcfc4, 0xcfc4, + 0xcfe0, 0xcfe0, + 0xcffc, 0xcffc, + 0xd018, 0xd018, + 0xd034, 0xd034, + 0xd050, 0xd050, + 0xd06c, 0xd06c, + 0xd088, 0xd088, + 0xd0a4, 0xd0a4, + 0xd0c0, 0xd0c0, + 0xd0dc, 0xd0dc, + 0xd0f8, 0xd0f8, + 0xd114, 0xd114, + 0xd130, 0xd130, + 0xd14c, 0xd14c, + 0xd168, 0xd168, + 0xd184, 0xd184, + 0xd1a0, 0xd1a0, + 0xd1bc, 0xd1bc, + 0xd1d8, 0xd1d8, + 0xd1f4, 0xd1f4, + 0xd210, 0xd210, + 0xd22c, 0xd22c, + 0xd248, 0xd248, + 0xd264, 0xd264, + 0xd280, 0xd280, + 0xd29c, 0xd29c, + 0xd2b8, 0xd2b8, + 0xd2d4, 0xd2d4, + 0xd2f0, 0xd2f0, + 0xd30c, 0xd30c, + 0xd328, 0xd328, + 0xd344, 0xd344, + 0xd360, 0xd360, + 0xd37c, 0xd37c, + 0xd398, 0xd398, + 0xd3b4, 0xd3b4, + 0xd3d0, 0xd3d0, + 0xd3ec, 0xd3ec, + 0xd408, 0xd408, + 0xd424, 0xd424, + 0xd440, 0xd440, + 0xd45c, 0xd45c, + 0xd478, 0xd478, + 0xd494, 0xd494, + 0xd4b0, 0xd4b0, + 0xd4cc, 0xd4cc, + 0xd4e8, 0xd4e8, + 0xd504, 0xd504, + 0xd520, 0xd520, + 0xd53c, 0xd53c, + 0xd558, 0xd558, + 0xd574, 0xd574, + 0xd590, 0xd590, + 0xd5ac, 0xd5ac, + 0xd5c8, 0xd5c8, + 0xd5e4, 0xd5e4, + 0xd600, 0xd600, + 0xd61c, 0xd61c, + 0xd638, 0xd638, + 0xd654, 0xd654, + 0xd670, 0xd670, + 0xd68c, 0xd68c, + 0xd6a8, 0xd6a8, + 0xd6c4, 0xd6c4, + 0xd6e0, 0xd6e0, + 0xd6fc, 0xd6fc, + 0xd718, 0xd718, + 0xd734, 0xd734, + 0xd750, 0xd750, + 0xd76c, 0xd76c, + 0xd788, 0xd788, +}; /* CR_Grapheme_Cluster_Break_LV */ + +/* 'Grapheme_Cluster_Break_LVT': Grapheme_Cluster_Break=LVT */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_LVT[] = { + 399, + 0xac01, 0xac1b, + 0xac1d, 0xac37, + 0xac39, 0xac53, + 0xac55, 0xac6f, + 0xac71, 0xac8b, + 0xac8d, 0xaca7, + 0xaca9, 0xacc3, + 0xacc5, 0xacdf, + 0xace1, 0xacfb, + 0xacfd, 0xad17, + 0xad19, 0xad33, + 0xad35, 0xad4f, + 0xad51, 0xad6b, + 0xad6d, 0xad87, + 0xad89, 0xada3, + 0xada5, 0xadbf, + 0xadc1, 0xaddb, + 0xaddd, 0xadf7, + 0xadf9, 0xae13, + 0xae15, 0xae2f, + 0xae31, 0xae4b, + 0xae4d, 0xae67, + 0xae69, 0xae83, + 0xae85, 0xae9f, + 0xaea1, 0xaebb, + 0xaebd, 0xaed7, + 0xaed9, 0xaef3, + 0xaef5, 0xaf0f, + 0xaf11, 0xaf2b, + 0xaf2d, 0xaf47, + 0xaf49, 0xaf63, + 0xaf65, 0xaf7f, + 0xaf81, 0xaf9b, + 0xaf9d, 0xafb7, + 0xafb9, 0xafd3, + 0xafd5, 0xafef, + 0xaff1, 0xb00b, + 0xb00d, 0xb027, + 0xb029, 0xb043, + 0xb045, 0xb05f, + 0xb061, 0xb07b, + 0xb07d, 0xb097, + 0xb099, 0xb0b3, + 0xb0b5, 0xb0cf, + 0xb0d1, 0xb0eb, + 0xb0ed, 0xb107, + 0xb109, 0xb123, + 0xb125, 0xb13f, + 0xb141, 0xb15b, + 0xb15d, 0xb177, + 0xb179, 0xb193, + 0xb195, 0xb1af, + 0xb1b1, 0xb1cb, + 0xb1cd, 0xb1e7, + 0xb1e9, 0xb203, + 0xb205, 0xb21f, + 0xb221, 0xb23b, + 0xb23d, 0xb257, + 0xb259, 0xb273, + 0xb275, 0xb28f, + 0xb291, 0xb2ab, + 0xb2ad, 0xb2c7, + 0xb2c9, 0xb2e3, + 0xb2e5, 0xb2ff, + 0xb301, 0xb31b, + 0xb31d, 0xb337, + 0xb339, 0xb353, + 0xb355, 0xb36f, + 0xb371, 0xb38b, + 0xb38d, 0xb3a7, + 0xb3a9, 0xb3c3, + 0xb3c5, 0xb3df, + 0xb3e1, 0xb3fb, + 0xb3fd, 0xb417, + 0xb419, 0xb433, + 0xb435, 0xb44f, + 0xb451, 0xb46b, + 0xb46d, 0xb487, + 0xb489, 0xb4a3, + 0xb4a5, 0xb4bf, + 0xb4c1, 0xb4db, + 0xb4dd, 0xb4f7, + 0xb4f9, 0xb513, + 0xb515, 0xb52f, + 0xb531, 0xb54b, + 0xb54d, 0xb567, + 0xb569, 0xb583, + 0xb585, 0xb59f, + 0xb5a1, 0xb5bb, + 0xb5bd, 0xb5d7, + 0xb5d9, 0xb5f3, + 0xb5f5, 0xb60f, + 0xb611, 0xb62b, + 0xb62d, 0xb647, + 0xb649, 0xb663, + 0xb665, 0xb67f, + 0xb681, 0xb69b, + 0xb69d, 0xb6b7, + 0xb6b9, 0xb6d3, + 0xb6d5, 0xb6ef, + 0xb6f1, 0xb70b, + 0xb70d, 0xb727, + 0xb729, 0xb743, + 0xb745, 0xb75f, + 0xb761, 0xb77b, + 0xb77d, 0xb797, + 0xb799, 0xb7b3, + 0xb7b5, 0xb7cf, + 0xb7d1, 0xb7eb, + 0xb7ed, 0xb807, + 0xb809, 0xb823, + 0xb825, 0xb83f, + 0xb841, 0xb85b, + 0xb85d, 0xb877, + 0xb879, 0xb893, + 0xb895, 0xb8af, + 0xb8b1, 0xb8cb, + 0xb8cd, 0xb8e7, + 0xb8e9, 0xb903, + 0xb905, 0xb91f, + 0xb921, 0xb93b, + 0xb93d, 0xb957, + 0xb959, 0xb973, + 0xb975, 0xb98f, + 0xb991, 0xb9ab, + 0xb9ad, 0xb9c7, + 0xb9c9, 0xb9e3, + 0xb9e5, 0xb9ff, + 0xba01, 0xba1b, + 0xba1d, 0xba37, + 0xba39, 0xba53, + 0xba55, 0xba6f, + 0xba71, 0xba8b, + 0xba8d, 0xbaa7, + 0xbaa9, 0xbac3, + 0xbac5, 0xbadf, + 0xbae1, 0xbafb, + 0xbafd, 0xbb17, + 0xbb19, 0xbb33, + 0xbb35, 0xbb4f, + 0xbb51, 0xbb6b, + 0xbb6d, 0xbb87, + 0xbb89, 0xbba3, + 0xbba5, 0xbbbf, + 0xbbc1, 0xbbdb, + 0xbbdd, 0xbbf7, + 0xbbf9, 0xbc13, + 0xbc15, 0xbc2f, + 0xbc31, 0xbc4b, + 0xbc4d, 0xbc67, + 0xbc69, 0xbc83, + 0xbc85, 0xbc9f, + 0xbca1, 0xbcbb, + 0xbcbd, 0xbcd7, + 0xbcd9, 0xbcf3, + 0xbcf5, 0xbd0f, + 0xbd11, 0xbd2b, + 0xbd2d, 0xbd47, + 0xbd49, 0xbd63, + 0xbd65, 0xbd7f, + 0xbd81, 0xbd9b, + 0xbd9d, 0xbdb7, + 0xbdb9, 0xbdd3, + 0xbdd5, 0xbdef, + 0xbdf1, 0xbe0b, + 0xbe0d, 0xbe27, + 0xbe29, 0xbe43, + 0xbe45, 0xbe5f, + 0xbe61, 0xbe7b, + 0xbe7d, 0xbe97, + 0xbe99, 0xbeb3, + 0xbeb5, 0xbecf, + 0xbed1, 0xbeeb, + 0xbeed, 0xbf07, + 0xbf09, 0xbf23, + 0xbf25, 0xbf3f, + 0xbf41, 0xbf5b, + 0xbf5d, 0xbf77, + 0xbf79, 0xbf93, + 0xbf95, 0xbfaf, + 0xbfb1, 0xbfcb, + 0xbfcd, 0xbfe7, + 0xbfe9, 0xc003, + 0xc005, 0xc01f, + 0xc021, 0xc03b, + 0xc03d, 0xc057, + 0xc059, 0xc073, + 0xc075, 0xc08f, + 0xc091, 0xc0ab, + 0xc0ad, 0xc0c7, + 0xc0c9, 0xc0e3, + 0xc0e5, 0xc0ff, + 0xc101, 0xc11b, + 0xc11d, 0xc137, + 0xc139, 0xc153, + 0xc155, 0xc16f, + 0xc171, 0xc18b, + 0xc18d, 0xc1a7, + 0xc1a9, 0xc1c3, + 0xc1c5, 0xc1df, + 0xc1e1, 0xc1fb, + 0xc1fd, 0xc217, + 0xc219, 0xc233, + 0xc235, 0xc24f, + 0xc251, 0xc26b, + 0xc26d, 0xc287, + 0xc289, 0xc2a3, + 0xc2a5, 0xc2bf, + 0xc2c1, 0xc2db, + 0xc2dd, 0xc2f7, + 0xc2f9, 0xc313, + 0xc315, 0xc32f, + 0xc331, 0xc34b, + 0xc34d, 0xc367, + 0xc369, 0xc383, + 0xc385, 0xc39f, + 0xc3a1, 0xc3bb, + 0xc3bd, 0xc3d7, + 0xc3d9, 0xc3f3, + 0xc3f5, 0xc40f, + 0xc411, 0xc42b, + 0xc42d, 0xc447, + 0xc449, 0xc463, + 0xc465, 0xc47f, + 0xc481, 0xc49b, + 0xc49d, 0xc4b7, + 0xc4b9, 0xc4d3, + 0xc4d5, 0xc4ef, + 0xc4f1, 0xc50b, + 0xc50d, 0xc527, + 0xc529, 0xc543, + 0xc545, 0xc55f, + 0xc561, 0xc57b, + 0xc57d, 0xc597, + 0xc599, 0xc5b3, + 0xc5b5, 0xc5cf, + 0xc5d1, 0xc5eb, + 0xc5ed, 0xc607, + 0xc609, 0xc623, + 0xc625, 0xc63f, + 0xc641, 0xc65b, + 0xc65d, 0xc677, + 0xc679, 0xc693, + 0xc695, 0xc6af, + 0xc6b1, 0xc6cb, + 0xc6cd, 0xc6e7, + 0xc6e9, 0xc703, + 0xc705, 0xc71f, + 0xc721, 0xc73b, + 0xc73d, 0xc757, + 0xc759, 0xc773, + 0xc775, 0xc78f, + 0xc791, 0xc7ab, + 0xc7ad, 0xc7c7, + 0xc7c9, 0xc7e3, + 0xc7e5, 0xc7ff, + 0xc801, 0xc81b, + 0xc81d, 0xc837, + 0xc839, 0xc853, + 0xc855, 0xc86f, + 0xc871, 0xc88b, + 0xc88d, 0xc8a7, + 0xc8a9, 0xc8c3, + 0xc8c5, 0xc8df, + 0xc8e1, 0xc8fb, + 0xc8fd, 0xc917, + 0xc919, 0xc933, + 0xc935, 0xc94f, + 0xc951, 0xc96b, + 0xc96d, 0xc987, + 0xc989, 0xc9a3, + 0xc9a5, 0xc9bf, + 0xc9c1, 0xc9db, + 0xc9dd, 0xc9f7, + 0xc9f9, 0xca13, + 0xca15, 0xca2f, + 0xca31, 0xca4b, + 0xca4d, 0xca67, + 0xca69, 0xca83, + 0xca85, 0xca9f, + 0xcaa1, 0xcabb, + 0xcabd, 0xcad7, + 0xcad9, 0xcaf3, + 0xcaf5, 0xcb0f, + 0xcb11, 0xcb2b, + 0xcb2d, 0xcb47, + 0xcb49, 0xcb63, + 0xcb65, 0xcb7f, + 0xcb81, 0xcb9b, + 0xcb9d, 0xcbb7, + 0xcbb9, 0xcbd3, + 0xcbd5, 0xcbef, + 0xcbf1, 0xcc0b, + 0xcc0d, 0xcc27, + 0xcc29, 0xcc43, + 0xcc45, 0xcc5f, + 0xcc61, 0xcc7b, + 0xcc7d, 0xcc97, + 0xcc99, 0xccb3, + 0xccb5, 0xcccf, + 0xccd1, 0xcceb, + 0xcced, 0xcd07, + 0xcd09, 0xcd23, + 0xcd25, 0xcd3f, + 0xcd41, 0xcd5b, + 0xcd5d, 0xcd77, + 0xcd79, 0xcd93, + 0xcd95, 0xcdaf, + 0xcdb1, 0xcdcb, + 0xcdcd, 0xcde7, + 0xcde9, 0xce03, + 0xce05, 0xce1f, + 0xce21, 0xce3b, + 0xce3d, 0xce57, + 0xce59, 0xce73, + 0xce75, 0xce8f, + 0xce91, 0xceab, + 0xcead, 0xcec7, + 0xcec9, 0xcee3, + 0xcee5, 0xceff, + 0xcf01, 0xcf1b, + 0xcf1d, 0xcf37, + 0xcf39, 0xcf53, + 0xcf55, 0xcf6f, + 0xcf71, 0xcf8b, + 0xcf8d, 0xcfa7, + 0xcfa9, 0xcfc3, + 0xcfc5, 0xcfdf, + 0xcfe1, 0xcffb, + 0xcffd, 0xd017, + 0xd019, 0xd033, + 0xd035, 0xd04f, + 0xd051, 0xd06b, + 0xd06d, 0xd087, + 0xd089, 0xd0a3, + 0xd0a5, 0xd0bf, + 0xd0c1, 0xd0db, + 0xd0dd, 0xd0f7, + 0xd0f9, 0xd113, + 0xd115, 0xd12f, + 0xd131, 0xd14b, + 0xd14d, 0xd167, + 0xd169, 0xd183, + 0xd185, 0xd19f, + 0xd1a1, 0xd1bb, + 0xd1bd, 0xd1d7, + 0xd1d9, 0xd1f3, + 0xd1f5, 0xd20f, + 0xd211, 0xd22b, + 0xd22d, 0xd247, + 0xd249, 0xd263, + 0xd265, 0xd27f, + 0xd281, 0xd29b, + 0xd29d, 0xd2b7, + 0xd2b9, 0xd2d3, + 0xd2d5, 0xd2ef, + 0xd2f1, 0xd30b, + 0xd30d, 0xd327, + 0xd329, 0xd343, + 0xd345, 0xd35f, + 0xd361, 0xd37b, + 0xd37d, 0xd397, + 0xd399, 0xd3b3, + 0xd3b5, 0xd3cf, + 0xd3d1, 0xd3eb, + 0xd3ed, 0xd407, + 0xd409, 0xd423, + 0xd425, 0xd43f, + 0xd441, 0xd45b, + 0xd45d, 0xd477, + 0xd479, 0xd493, + 0xd495, 0xd4af, + 0xd4b1, 0xd4cb, + 0xd4cd, 0xd4e7, + 0xd4e9, 0xd503, + 0xd505, 0xd51f, + 0xd521, 0xd53b, + 0xd53d, 0xd557, + 0xd559, 0xd573, + 0xd575, 0xd58f, + 0xd591, 0xd5ab, + 0xd5ad, 0xd5c7, + 0xd5c9, 0xd5e3, + 0xd5e5, 0xd5ff, + 0xd601, 0xd61b, + 0xd61d, 0xd637, + 0xd639, 0xd653, + 0xd655, 0xd66f, + 0xd671, 0xd68b, + 0xd68d, 0xd6a7, + 0xd6a9, 0xd6c3, + 0xd6c5, 0xd6df, + 0xd6e1, 0xd6fb, + 0xd6fd, 0xd717, + 0xd719, 0xd7 (... truncated) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/