From 547dbf2cc50ff9d3fd874c636674b8c339ecaae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Fri, 9 Oct 2026 22:51:33 -0400 Subject: [PATCH] Reviews for P-07 --- tasks/reviews/P-07-r1.md | 3 +++ tasks/reviews/P-07-r2.md | 3 +++ tasks/reviews/P-07-r3.md | 1 + 3 files changed, 7 insertions(+) create mode 100644 tasks/reviews/P-07-r1.md create mode 100644 tasks/reviews/P-07-r2.md create mode 100644 tasks/reviews/P-07-r3.md diff --git a/tasks/reviews/P-07-r1.md b/tasks/reviews/P-07-r1.md new file mode 100644 index 0000000..3189f8a --- /dev/null +++ b/tasks/reviews/P-07-r1.md @@ -0,0 +1,3 @@ +FAIL + +crates/ely-pdf-engine/shim/ely_text.c:85 — Unicode 连字码点仍无法编辑,违反 PRD PDF-03。复现:将新增测试 a_ligature_block_edits_like_any_other 的 ToUnicode 映射 `<01> <00660069>` 改为 `<01> `,其余内容保持原样;实际读取的文字块仍为 `find`,但 `editable` 为 false,调用 put_text 返回 `this text is not in the page's own content`。U+FB02(fl)与 U+FB03(ffi)同样复现,已独立运行并重复验证。stext 会展开这些码点,而 take_glyph 用原始 Unicode 值匹配目标字符;匹配失败后跳过 spelled,且 spelled 的 ucslen < 2 分支也无法计入展开后的字符。修复方向:在匹配与命中计数前按 stext 的规则展开 Unicode 连字,让整页判定、单块检查与删除使用一致的字符序列,并补充单码点连字的编辑回归测试。 diff --git a/tasks/reviews/P-07-r2.md b/tasks/reviews/P-07-r2.md new file mode 100644 index 0000000..c8a00e7 --- /dev/null +++ b/tasks/reviews/P-07-r2.md @@ -0,0 +1,3 @@ +FAIL + +crates/ely-pdf-engine/shim/ely_text.c:104 — 新增的展开循环静默截断较长的 ToUnicode 一对多映射,违反 PRD PDF-03。`spelt[64]` 配合每次预留 18 个位置的条件,使普通字符最多处理 47 个。具体复现:沿用 `a_ligature_block_edits_like_any_other` 的 PDF,将 `<01>` 的 ToUnicode 目标改为 48 次 `0066`;文字块完整读取为 48 个 `f` 加 `nd`,但 `editable=false`,`put_text` 报 `this text is not in the page's own content`;47 次映射可以编辑。目标改为 17 次 `FB03` 时同样失败,16 次可以编辑。独立副本中移除新增展开逻辑后,48、64 个普通字符的映射均能替换并保存重开;仅将展开缓冲区扩大为 `18 * PDF_MRANGE_CAP` 后,全部 27 个扩展用例通过替换与保存重开验证;恢复当前代码后再次复现截断失败。原有 fonts、content、redact、independent 共 41 项测试通过,FB01 回归测试在移除展开逻辑后按预期失败。修复方向:按 MuPDF 支持的完整映射长度及最大展开长度容纳所有字符,确保整页判定、单块检查与删除均处理完整序列,并加入容量边界回归测试。 diff --git a/tasks/reviews/P-07-r3.md b/tasks/reviews/P-07-r3.md new file mode 100644 index 0000000..7ef22e9 --- /dev/null +++ b/tasks/reviews/P-07-r3.md @@ -0,0 +1 @@ +PASS