mirror of
https://github.com/storytold/wordcraft.git
synced 2026-10-25 10:57:14 -06:00
* DOCX: read VML freeforms (v:shape with a path) as freeform shapes Legacy VML shapes with their own `path` (ECMA-376 Part 4), such as rule lines in headers, were dropped on open and lost on save. They are now read as freeforms: m/t/l/r/c/v/x/e commands in the coordsize/coordorigin space, nf/ns, v:fill and v:stroke opacity; arcs drawn straight, formula references read as 0. Saved as DrawingML custom geometry. Tests: header rule read and round-tripped; hostile paths and coordinate spaces stay finite and never panic. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * DOCX: VML freeforms whose path uses formulas aren't drawn Formulas (@n, from v:formulas) aren't evaluated; reading them as 0 drew stray lines. Parity row states the fill-opacity limit (none at 0, otherwise opaque, as for DrawingML fills). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * DOCX: VML freeforms reuse the watermark's vml_fraction The watermark reader (#1328, now on main) brought its own vml_fraction; the freeform reader had an identical copy, which no longer compiles after the merge. Keep one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>