diff options
Diffstat (limited to 'libgo/go/exp/norm/maketables.go')
-rw-r--r-- | libgo/go/exp/norm/maketables.go | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/libgo/go/exp/norm/maketables.go b/libgo/go/exp/norm/maketables.go index 1deedc9..8ac64ba 100644 --- a/libgo/go/exp/norm/maketables.go +++ b/libgo/go/exp/norm/maketables.go @@ -23,6 +23,7 @@ import ( "sort" "strconv" "strings" + "unicode" ) func main() { @@ -38,7 +39,7 @@ func main() { } var url = flag.String("url", - "http://www.unicode.org/Public/6.0.0/ucd/", + "http://www.unicode.org/Public/"+unicode.Version+"/ucd/", "URL of Unicode database directory") var tablelist = flag.String("tables", "all", @@ -605,6 +606,10 @@ func printCharInfoTables() int { lccc := ccc(d[0]) tccc := ccc(d[len(d)-1]) + cc := ccc(r) + if cc != 0 && lccc == 0 && tccc == 0 { + logger.Fatalf("%U: trailing and leading ccc are 0 for non-zero ccc %d", r, cc) + } if tccc < lccc && lccc != 0 { const msg = "%U: lccc (%d) must be <= tcc (%d)" logger.Fatalf(msg, r, lccc, tccc) @@ -615,7 +620,13 @@ func printCharInfoTables() int { index = 1 if lccc > 0 { s += string([]byte{lccc}) - index |= 2 + index = 2 + } + if cc != lccc { + if cc != 0 { + logger.Fatalf("%U: for lccc != ccc, expected ccc to be 0; was %d", r, cc) + } + index = 3 } } return index, s @@ -642,7 +653,7 @@ func printCharInfoTables() int { size := 0 positionMap := make(map[string]uint16) decompositions.WriteString("\000") - cname := []string{"firstCCC", "firstLeadingCCC", "", "lastDecomp"} + cname := []string{"firstCCC", "firstLeadingCCC", "firstCCCZeroExcept", "lastDecomp"} fmt.Println("const (") for i, m := range decompSet { sa := []string{} |