native: add unifont Unicode subset + UTF-8 decoding in font_draw_6x10
Pixel-font parity with web (step 1): ship a compact pre-compiled
subset of GNU Unifont (1403 glyphs, ~222KB header) alongside the
existing ASCII-only 6x10 and MatrixChunky8 fonts.
Added:
- fedac/native/scripts/bdf-unicode-to-c.py — build-time extractor that
pulls selected Unicode ranges from a BDF into a sorted, C-accessible
glyph table. Ranges cover Latin-1 Supplement, Latin Extended-A, Greek,
General Punctuation, Arrows, Math Operators, Box Drawing, Block
Elements, Geometric Shapes, Misc Symbols, and Dingbats.
- fedac/native/src/font-unicode.h — generated header (do not edit).
- UTF-8 decoder + Unicode fallback path in font.c. font_draw_6x10 now
consumes UTF-8, renders ASCII from the 6x10 bitmap, and falls back
to the unifont glyph for codepoints > 126. Unknown codepoints render
as "?" from 6x10 so the layout stays monospace.
notepat:
- Restored Unicode glyphs in the help panel: arrows (← → ↑ ↓), en-dash
(–), arrow-to (→), star (★), minus (−), multiplication sign (×).
All of these now render from unifont via the fallback path.
Future step: ship the BDF itself + runtime parser so we have full
Unicode coverage (not just the selected subset).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>