gen.go: support Unicode 10.0.0 version string Correct ordering for upcoming Unicode 10 string. Change-Id: Id239f02f8c5b7cfa64fa9e9ce649a192350e0b39 Reviewed-on: https://go-review.googlesource.com/63173 Run-TryBot: Marcel van Lohuizen <mpvl@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Nigel Tao <nigeltao@golang.org>
diff --git a/gen.go b/gen.go index 79af97e..cccdf0c 100644 --- a/gen.go +++ b/gen.go
@@ -25,7 +25,9 @@ "sync" "unicode" + "golang.org/x/text/collate" "golang.org/x/text/internal/gen" + "golang.org/x/text/language" ) var ( @@ -72,11 +74,8 @@ fmt.Printf("Requested Unicode version %s; core unicode version is %s.\n", gen.UnicodeVersion(), unicode.Version) - // TODO: use collate to compare. Simple comparison will work, though, - // until Unicode reaches version 10. To avoid circular dependencies, we - // could use the NumericWeighter without using package collate using a - // trivial Weighter implementation. - if gen.UnicodeVersion() < unicode.Version && !*force { + c := collate.New(language.Und, collate.Numeric) + if c.CompareString(gen.UnicodeVersion(), unicode.Version) < 0 && !*force { os.Exit(2) } updateCore = true
diff --git a/unicode/rangetable/gen.go b/unicode/rangetable/gen.go index bea49dd..6a64e42 100644 --- a/unicode/rangetable/gen.go +++ b/unicode/rangetable/gen.go
@@ -13,12 +13,13 @@ "io" "log" "reflect" - "sort" "strings" "unicode" + "golang.org/x/text/collate" "golang.org/x/text/internal/gen" "golang.org/x/text/internal/ucd" + "golang.org/x/text/language" "golang.org/x/text/unicode/rangetable" ) @@ -37,8 +38,9 @@ log.Fatal(bootstrapMessage) } + c := collate.New(language.Und, collate.Numeric) versions := strings.Split(*versionList, ",") - sort.Strings(versions) + c.SortStrings(versions) // Ensure that at least the current version is included. for _, v := range versions { @@ -48,7 +50,7 @@ } versions = append(versions, gen.UnicodeVersion()) - sort.Strings(versions) + c.SortStrings(versions) return versions }