2e0f66a07e
字库扩充(批2页面预置, task-4/道B): - ui_cn_chars.txt 119→179 字(CJK 176 + 符号 ▶/,/:),含 ASCII 共 274 字形 - +60 字: Ⅰ Ⅱ Ⅲ 段 延 投 退 跳 闸 零 频 荷 负 低 过 电 一 二 次 位 公 出 回 外 部 度 温 态 状 总 接 显 示 最 近 未 标 欠 闭 锁 长 间 障 配 道 重 载 返 年 月 分 秒 合 已 请 求 确 取 消 越 依据 = 页面补齐规划/页面扩充详细方案两篇规划中出现的页面显示串; 待拍板的厂家设置支用字(厂/家/恢/调/试)不入 - Ⅰ/Ⅱ/Ⅲ 宋体有字形(simsun face0 cmap 实测 HAS)且正常入字体,罗马数字 无需任何工具链兜底 make_font.py 修复(本次扩字暴露的真缺陷): - LVGL get_glyph_dsc_id() 线性扫描 cmaps[]、首个包含码位的 range 即返回: Ⅰ(U+2160) 使稀疏 range 起点 0x4E09→0x2160,把 U+25B6 ▶ 单码位补回条目 吞进宽 range → 模拟器箭头全变方框(菜单 658 px 差异);旧 verify_coverage 按"进了任一 range 即覆盖"判定,全绿照不出解析路径倒置 - 修复: _insert_cmap_entry() 把补回条目插到包含它的 range 之前; _cmap_lookup_gid() 可达性守卫,可达即跳合并(全角逗号走稀疏列表,不再 追加永远不可达的死条目); verify_coverage() 改按首命中语义 验证(全绿): - font-regen 四步(extract→并回 KEEP_EXTRA→make_font→diff);仓库外沙箱 dry-run + 确定性: 沙箱/仓库产物 sha256 一致(26e519db…) - 逐码位结构对账: added=60 / removed=0 / 保留字形位图字节零差异 / 度量一致(multiset 差 = 新字身) - font-charset PASS(60 未知冗余 WARN = 预置字,批2接线后自然转在用) - 模拟器菜单 8 状态 + 内容页 11 页黄金参考与旧字体逐字节一致(箭头恢复); ref/ 基线无变化,故无黄金参考更新提交 - @build 0 Error 0 Warning; A/B 同树构建: RO-data +1528 B, RW/ZI(RAM) 0 gate: only mem-budget/mem-numbers pending lead ledger backfill - pre-commit --all-files 实测: 仅这两条失败(台账受管区/内存文档数字 vs .map 漂移; 根因是 RO-data +1528 B 的 Flash 增量, RAM 无变化); 其余 38 钩子全绿(font-charset/ui-golden/cppcheck/编码规范/单测族均过) - 修复手段 ram_baseline.py --write / check_mem_numbers.py --write 均写 docs/内存管理/**(Lead 单写者域), 本分支按裁决不代跑, 请合并后回填 - 手工自查: 改动 8 文件 BOM/CR/U+FFFD 与各自原状一致(全 LF 无 BOM), 字体产物纯 ASCII, make_font.py 中文仅在注释与打印, 无字面量改动