diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-09-29 12:46:30 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-29 12:46:30 -0700 |
commit | b84736e9b6401df0c6eeab9950bef09458a6aefd (patch) | |
tree | d9175208de3236db75a33879750a57b3000ba096 /vendor/golang.org/x/text/internal/export/idna/gen.go | |
parent | 8b9dbb86133ff0fd6002a391268383d1593918ca (diff) | |
download | chat-b84736e9b6401df0c6eeab9950bef09458a6aefd.tar.gz chat-b84736e9b6401df0c6eeab9950bef09458a6aefd.tar.bz2 chat-b84736e9b6401df0c6eeab9950bef09458a6aefd.zip |
Updating server dependancies. (#7538)
Diffstat (limited to 'vendor/golang.org/x/text/internal/export/idna/gen.go')
-rw-r--r-- | vendor/golang.org/x/text/internal/export/idna/gen.go | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/vendor/golang.org/x/text/internal/export/idna/gen.go b/vendor/golang.org/x/text/internal/export/idna/gen.go index 27a5e1c43..cce630535 100644 --- a/vendor/golang.org/x/text/internal/export/idna/gen.go +++ b/vendor/golang.org/x/text/internal/export/idna/gen.go @@ -21,6 +21,7 @@ import ( "golang.org/x/text/internal/gen" "golang.org/x/text/internal/triegen" "golang.org/x/text/internal/ucd" + "golang.org/x/text/unicode/bidi" ) func main() { @@ -35,6 +36,12 @@ var runes = map[rune]info{} func genTables() { t := triegen.NewTrie("idna") + ucd.Parse(gen.OpenUCDFile("DerivedNormalizationProps.txt"), func(p *ucd.Parser) { + r := p.Rune(0) + if p.String(1) == "NFC_QC" { // p.String(2) is "N" or "M" + runes[r] = mayNeedNorm + } + }) ucd.Parse(gen.OpenUCDFile("UnicodeData.txt"), func(p *ucd.Parser) { r := p.Rune(0) @@ -44,7 +51,17 @@ func genTables() { } switch { case unicode.In(r, unicode.Mark): - runes[r] |= modifier + runes[r] |= modifier | mayNeedNorm + } + // TODO: by using UnicodeData.txt we don't mark undefined codepoints + // that are earmarked as RTL properly. However, an undefined cp will + // always fail, so there is no need to store this info. + switch p, _ := bidi.LookupRune(r); p.Class() { + case bidi.R, bidi.AL, bidi.AN: + if x := runes[r]; x != 0 && x != mayNeedNorm { + log.Fatalf("%U: rune both modifier and RTL letter/number", r) + } + runes[r] = rtl } }) |