Implement software rendering for Unicode 16 legacy computing symbols

Add rendering for codepoints U+1FBCE-U+1FBEF, U+1CC1B-U+1CC3F,
and U+1CE16-U+1CE19 in decorations.c with registration in fonts.c
and test coverage in kitty_tests/fonts.py.

Characters implemented:
- U+1FBCE-1FBCF: Left two-thirds and one-third blocks
- U+1FBD0-1FBDF: 16 diagonal box drawing characters
- U+1FBE0-1FBE3: Justified half white circles (outlines)
- U+1FBE4-1FBE5: Upper/lower centre quarter blocks
- U+1FBE8-1FBEB: Justified half black circles (filled)
- U+1FBEC-1FBEF: Justified quarter black circles (filled)
- U+1CC1B-1CC1E: Box drawing variants with offset junctions
- U+1CC1F-1CC20: Double diagonal lines
- U+1CC30-1CC3F: Twelfth and quarter circle arcs
- U+1CE16-1CE19: Box drawings light vertical T-junctions

Fixes #9851
This commit is contained in:
copilot-swe-agent[bot]
2026-04-11 05:09:26 +00:00
committed by Kovid Goyal
parent 26388c6bbf
commit 74c3bbe06d
3 changed files with 335 additions and 7 deletions

View File

@@ -1216,7 +1216,11 @@ box_chars = { # {{{
} # }}}
for ch in range(0x1cd00, 0x1cde5+1): # octants
box_chars.add(chr(ch))
for ch in range(0x1cc21, 0x1cc30): # separated block quadrants (supplement)
for ch in range(0x1fbce, 0x1fbf0): # blocks, diagonals, circles (legacy computing)
box_chars.add(chr(ch))
for ch in range(0x1cc1b, 0x1cc40): # box drawing variants, separated quadrants, circle arcs (supplement)
box_chars.add(chr(ch))
for ch in range(0x1ce16, 0x1ce1a): # box drawings light vertical T-junctions (supplement)
box_chars.add(chr(ch))
for ch in range(0x1ce51, 0x1ceb0): # separated block sextants, sixteenth blocks, quarter parts (supplement)
box_chars.add(chr(ch))