Files
ElyOffice/tasks/reviews/R8.2-r1.md
T
ZacharyZhang-NYandClaude 2ca53ef585 R8.2: Word EQ fields open as formulas; inline objects follow their run
Gitea #9. Patch 0049 moves inline pictures and OLE objects with
their run's w:position. Patches 0050 and 0051 turn EQ fields into
Math objects; unreadable fields show their code. Round 3 findings
(lowercase \s\do tail, split subscripts, \ai/\di, italics through
OMML) fixed and covered by word.rs; no fourth review.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-18 21:39:17 -04:00

2.7 KiB
Raw Blame History

FAIL

  • patches/libreoffice/0050-writer-eq-fields-as-formulas.patch:92 — [P1] Trimming the command without trimming its character-format vector shifts every formatting index. Reproduced against the rebuilt Windows worker by prepending one space to the EQ instruction in word.docx: the expected italic a₁₀/a₃ becomes a1₀/a3, with the wrong characters italicized and the denominator's subscript lost. The parser already skips leading spaces; pass the original command, or adjust both inputs identically, and add this regression. Evidence: .work/r82-r1/probe.log and regression.log.

  • patches/libreoffice/0050-writer-eq-fields-as-formulas.patch:395 — [P1] Secondary switch names remain case-sensitive, although Word field switches are case-insensitive (field syntax §2.16.1). Reproduced: EQ \I\SU(1,5,x) imports as an integral, whereas EQ \i\su(1,5,x) imports as a sum; \A\CO2(a,b,c,d) becomes a four-row column instead of a two-by-two array. This silently changes mathematical meaning. Normalize secondary switch names before interpreting them and test uppercase and mixed-case spellings. Evidence: .work/r82-r1/probe.log.

  • patches/libreoffice/0050-writer-eq-fields-as-formulas.patch:266 — [P2] Parse failures disappear without the promised diagnostic in the shipped kernel. fail() only uses SAL_WARN, which this Windows release build compiles out (ENABLE_SAL_LOG is empty); the empty result is then discarded at lines 93–94. Reproduced with EQ \f(a): loading and saving both succeed, the field disappears, and worker stderr contains no EQ diagnostic even with SAL_LOG=+INFO.writerfilter.dmapper. This violates the error-exposure rule and the R8.2 documentation's logging claim. Propagate failure through an import warning/error observable in release builds and add a failure-path test. Evidence: .work/r82-r1/regression.log, worker.log, and review.log.

  • patches/libreoffice/0050-writer-eq-fields-as-formulas.patch:95 — [P2] The new SAL_INFO statement logs the complete formula, including document text. With a logging-enabled kernel and SAL_LOG=+INFO.writerfilter.dmapper or a corresponding SAL_LOG_FILE, opening a field such as EQ \f(PrivateAmount,PrivateDivisor) writes both operands into the native diagnostic log. This violates rule 4's prohibition on logging document contents. Remove the formula payload from the diagnostic.

  • patches/libreoffice/0050-writer-eq-fields-as-formulas.patch:517 — [P3] This newly added file has 517 lines, exceeding the explicit 500-line file limit. Split the diff into smaller ordered patches while preserving all changes and their application order.