Corrected issue with PropList.txt ranges

This commit is contained in:
StudebakerGuy
2026-03-07 19:19:04 -05:00
committed by Jeroen van Rijn
parent 090dedda1b
commit b4d70d3c5b
2 changed files with 33 additions and 24 deletions

View File

@@ -1220,32 +1220,37 @@ extra_digits_ranges := Range{
@(rodata)
other_lowercase_singles16 := [?]u16{
0x02B8, 0x02C1, 0x02E4, 0x1D6A, 0x1DBF, 0x209C, 0x217F, 0x24E9, 0x2C7D, 0xA69D,
0xA7F4, 0xA7F9, 0xAB5F,
0x00AA, 0x00BA, 0x0345, 0x037A, 0x10FC, 0x1D78, 0x2071, 0x207F, 0xA770, 0xAB69,
}
@(rodata)
other_lowercase_ranges16 := [?]u16{
0x0000, 0x00AA,
0x0000, 0x00BA,
0x0000, 0x0345,
0x0000, 0x037A,
0x0000, 0x10FC,
0x0000, 0x1D78,
0x0000, 0x2071,
0x0000, 0x207F,
0x0000, 0xA770,
0x0000, 0xAB69,
0x02B0, 0x02B8,
0x02C0, 0x02C1,
0x02E0, 0x02E4,
0x1D2C, 0x1D6A,
0x1D9B, 0x1DBF,
0x2090, 0x209C,
0x2170, 0x217F,
0x24D0, 0x24E9,
0x2C7C, 0x2C7D,
0xA69C, 0xA69D,
0xA7F1, 0xA7F4,
0xA7F8, 0xA7F9,
0xAB5C, 0xAB5F,
}
@(rodata)
other_lowercase_singles32 := [?]i32{
0x10785, 0x107B0, 0x107BA, 0x1E06D,
0x10780,
}
@(rodata)
other_lowercase_ranges32 := [?]i32{
0x0000, 0x10780,
0x10783, 0x10785,
0x10787, 0x107B0,
0x107B2, 0x107BA,
0x1E030, 0x1E06D,
}
other_lowercase_ranges := Range{
@@ -1256,17 +1261,20 @@ other_lowercase_ranges := Range{
}
@(rodata)
other_uppercase_singles16 := [?]u16{
0x216F, 0x24CF,
other_uppercase_ranges16 := [?]u16{
0x2160, 0x216F,
0x24B6, 0x24CF,
}
@(rodata)
other_uppercase_singles32 := [?]i32{
0x1F149, 0x1F169, 0x1F189,
other_uppercase_ranges32 := [?]i32{
0x1F130, 0x1F149,
0x1F150, 0x1F169,
0x1F170, 0x1F189,
}
other_uppercase_ranges := Range{
single_16 = other_uppercase_singles16[:],
single_32 = other_uppercase_singles32[:],
ranges_16 = other_uppercase_ranges16[:],
ranges_32 = other_uppercase_ranges32[:],
}

View File

@@ -267,6 +267,7 @@ load_protperty_list :: proc (
if !(c >= '0' && c <= '9') && !(c >= 'A' && c <= 'F') {
if c == '.' {
is_range = true
rr.last = 0
continue
} else {
err = UCD_Error.Invalid_Hex_Number
@@ -274,14 +275,14 @@ load_protperty_list :: proc (
}
}
if is_range {
rr.last *= 16
rr.last += cast(rune)(c >= '0' && c <= '9') * cast(rune)(c - '0')
rr.last += cast(rune)(c >= 'A' && c <= 'F') * cast(rune)(c - 'A' + 10)
} else {
rr.first *= 16
rr.first += cast(rune)(c >= '0' && c <= '9') * cast(rune)(c - '0')
rr.first += cast(rune)(c >= 'A' && c <= 'F') * cast(rune)(c - 'A' + 10)
rr.last = rr.first
} else {
rr.last *= 16
rr.last += cast(rune)(c >= '0' && c <= '9') * cast(rune)(c - '0')
rr.last += cast(rune)(c >= 'A' && c <= 'F') * cast(rune)(c - 'A' + 10)
}
}