aboutsummaryrefslogtreecommitdiff
path: root/ucd/api.go
diff options
context:
space:
mode:
authorRyo Nihei <nihei.dev@gmail.com>2021-11-28 17:50:38 +0900
committerRyo Nihei <nihei.dev@gmail.com>2021-11-28 17:50:38 +0900
commitf0870a4d2ec589bf5de268a54d51c1da197ed882 (patch)
treecdacf26b1eabb5776c00652e58c833051285c582 /ucd/api.go
parentSupport Script property (Meet RL1.2 of UTS #18 partially) (diff)
downloadtre-f0870a4d2ec589bf5de268a54d51c1da197ed882.tar.gz
tre-f0870a4d2ec589bf5de268a54d51c1da197ed882.tar.xz
Remove default value's code points of General_Category
Diffstat (limited to 'ucd/api.go')
-rw-r--r--ucd/api.go23
1 files changed, 21 insertions, 2 deletions
diff --git a/ucd/api.go b/ucd/api.go
index 1ffc84f..f0bc1d2 100644
--- a/ucd/api.go
+++ b/ucd/api.go
@@ -75,6 +75,25 @@ func FindCodePointRanges(propName, propVal string) ([]*CodePointRange, bool, err
if !ok {
return nil, false, fmt.Errorf("unsupported character property value: %v", propVal)
}
+ if val == generalCategoryValueAbbs[normalizeSymbolicValue(generalCategoryDefaultValue)] {
+ var allCPs []*CodePointRange
+ if generalCategoryDefaultRange.From > codePointMin {
+ allCPs = append(allCPs, &CodePointRange{
+ From: codePointMin,
+ To: generalCategoryDefaultRange.From - 1,
+ })
+ }
+ if generalCategoryDefaultRange.To < codePointMax {
+ allCPs = append(allCPs, &CodePointRange{
+ From: generalCategoryDefaultRange.To + 1,
+ To: codePointMax,
+ })
+ }
+ for _, cp := range generalCategoryCodePoints {
+ allCPs = append(allCPs, cp...)
+ }
+ return allCPs, true, nil
+ }
vals, ok := compositGeneralCategories[val]
if !ok {
vals = []string{val}
@@ -98,13 +117,13 @@ func FindCodePointRanges(propName, propVal string) ([]*CodePointRange, bool, err
if scriptDefaultRange.From > codePointMin {
allCPs = append(allCPs, &CodePointRange{
From: codePointMin,
- To: scriptDefaultRange.From - 1,
+ To: scriptDefaultRange.From - 1,
})
}
if scriptDefaultRange.To < codePointMax {
allCPs = append(allCPs, &CodePointRange{
From: scriptDefaultRange.To + 1,
- To: codePointMax,
+ To: codePointMax,
})
}
for _, cp := range scriptCodepoints {