diff options
| author | Kevin Newton <kddnewton@gmail.com> | 2023-11-11 22:09:54 -0500 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2023-11-16 17:39:29 +0000 |
| commit | f8dcb06ffaef25f06ae223ef79daec15a6d8bf96 (patch) | |
| tree | a667ee682da3fee3c04f406ec352be8c99f959f3 | |
| parent | a6548e9eef1362d88708077ad3fc086c5fb9d04a (diff) | |
[ruby/prism] Include GBK user-defined sections
https://github.com/ruby/prism/commit/4f71d3bdb1
| -rw-r--r-- | prism/enc/pm_gbk.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/prism/enc/pm_gbk.c b/prism/enc/pm_gbk.c index 250b98b33b..0ee98ba355 100644 --- a/prism/enc/pm_gbk.c +++ b/prism/enc/pm_gbk.c @@ -3,7 +3,7 @@ static size_t pm_encoding_gbk_char_width(const uint8_t *b, ptrdiff_t n) { // These are the single byte characters. - if (*b < 0x80) { + if (*b <= 0x80) { return 1; } @@ -15,7 +15,10 @@ pm_encoding_gbk_char_width(const uint8_t *b, ptrdiff_t n) { ((b[0] >= 0xB0 && b[0] <= 0xF7) && (b[1] >= 0xA1 && b[1] <= 0xFE)) || // GBK/2 ((b[0] >= 0x81 && b[0] <= 0xA0) && (b[1] >= 0x40 && b[1] <= 0xFE) && (b[1] != 0x7F)) || // GBK/3 ((b[0] >= 0xAA && b[0] <= 0xFE) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F)) || // GBK/4 - ((b[0] >= 0xA8 && b[0] <= 0xA9) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F)) // GBK/5 + ((b[0] >= 0xA8 && b[0] <= 0xA9) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F)) || // GBK/5 + ((b[0] >= 0xAA && b[0] <= 0xAF) && (b[1] >= 0xA1 && b[1] <= 0xFE)) || // user-defined 1 + ((b[0] >= 0xF8 && b[0] <= 0xFE) && (b[1] >= 0xA1 && b[1] <= 0xFE)) || // user-defined 2 + ((b[0] >= 0xA1 && b[0] <= 0xA7) && (b[1] >= 0x40 && b[1] <= 0xA0) && (b[1] != 0x7F)) // user-defined 3 ) ) { return 2; |
