chore: sync upstream (14 Commits) #22

Merged
alf merged 14 commits from chore/sync-upstream-20261108 into main 2026-11-08 11:46:14 +00:00
Owner

Upstream-Sync von upstream/main (14 Commits). Fast-Forward.

  • 19c98757 Merge pull request #2470 from Silvertree2010/fix/h11260-docx-xlsx-xml-parser-accepts-sig
  • 8e5e40d7 Drop signed numeric character references in DOCX XML parser
  • d848948b Merge pull request #2464 from Silvertree2010/fix/h10935-cross-reference-format-with-an-u
  • 88a45f5d Apply typographic quotes when xref format has an unterminated '<'
  • f9cfd99a Text: adjust hyperlink and placeholder source ranges on story edits (#1219) (#1229)
  • 1da6effd Release: refresh contributor credits for each release (#2424) (#2426)
  • 7e32b5ff Merge pull request #2412 from ZIDAN44/fix/2401-white-overprint-preflight
  • 894968ee Merge pull request #2442 from Silvertree2010/fix/h8179-lab-hue-can-return-360-although
  • 6365f98a Keep Lab::hue within 0..360 for tiny negative b
  • cd315908 Preflight: a frame with states is looked at as PDF export draws it (review)
  • ecf7e230 Merge the review fix pushed to fix/2401-white-overprint-preflight
  • 231ee6d4 Preflight: white overprint is looked for where PDF export prints (review)
  • 83d11697 Apply review fixes
  • 085a1206 Preflight: white or [Paper] set to overprint is reported (#2401)
Upstream-Sync von `upstream/main` (14 Commits). Fast-Forward. - 19c98757 Merge pull request #2470 from Silvertree2010/fix/h11260-docx-xlsx-xml-parser-accepts-sig - 8e5e40d7 Drop signed numeric character references in DOCX XML parser - d848948b Merge pull request #2464 from Silvertree2010/fix/h10935-cross-reference-format-with-an-u - 88a45f5d Apply typographic quotes when xref format has an unterminated '<' - f9cfd99a Text: adjust hyperlink and placeholder source ranges on story edits (#1219) (#1229) - 1da6effd Release: refresh contributor credits for each release (#2424) (#2426) - 7e32b5ff Merge pull request #2412 from ZIDAN44/fix/2401-white-overprint-preflight - 894968ee Merge pull request #2442 from Silvertree2010/fix/h8179-lab-hue-can-return-360-although - 6365f98a Keep Lab::hue within 0..360 for tiny negative b - cd315908 Preflight: a frame with states is looked at as PDF export draws it (review) - ecf7e230 Merge the review fix pushed to fix/2401-white-overprint-preflight - 231ee6d4 Preflight: white overprint is looked for where PDF export prints (review) - 83d11697 Apply review fixes - 085a1206 Preflight: white or [Paper] set to overprint is reported (#2401)
alf added 14 commits 2026-11-08 11:46:13 +00:00
A fill, stroke or stroke gap set to overprint in [Paper] or in a process
colour that lays down no ink (C=0 M=0 Y=0 K=0, gray 0, RGB white, a 0%
tint) disappears on press. Preflight now reports it as whiteOverprint, and
ruby and kenten set to overprint in such a colour too. A spot ink (a white
ink or a varnish) prints whatever colour stands in for it, so it isn't
reported. Text has no overprint of its own, so white text knocks out and
prints, and isn't reported. The old Preflight note that PDF export drops
ruby and kenten overprint is gone: export writes it.
- crates/engine/src/cmd/preflight.rs
Ruby and kenten in a threaded story were reported against the story's
first frame, on its page, wherever the text was; they are now reported
against the frame that shows them, and text no frame has room for isn't.
Parent pages' items and anchored objects print too and weren't looked
at; items on a hidden or nonprintable layer, or in a hidden or
nonprinting group, don't print and were reported. The check now walks
the items as PDF export draws them, with its rules (the parent page
items a page shows now come from one function both use), and a frame
PDF export leaves out reports none of its ruby and kenten.
83d11697 reported white ruby and kenten on the frame that shows the run's
first character. The review commit before this merge does the same through
white_overprint::frames_showing, and also reports a run on every frame it
spans, leaves overset text out, and reads the composition cache only when a
story has white ruby or kenten. preflight.rs keeps that version; the tree
is unchanged by this merge.
Flex Layout's convert turns a multi-state group into a frame that keeps
its states. PDF export draws every object pasted into a frame, but the
white overprint check walked only the active state, so a white
overprint in another state printed unreported. Which children export
draws is now one function, drawn_children, used by both.
Found while testing crates/color/src/cms/lab.rs:25-27 (Lab::hue)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Keep Lab::hue within 0..360 for tiny negative b
Preflight: white or [Paper] set to overprint is reported (#2401)
About > Contributors still showed an old snapshot, because nothing
regenerated contributors/contributors.json before a release. Opt in to
the shared refresh from craft-common-actions: a read-only credits job
regenerates the snapshot for the release commit, and the shared release
workflow installs it before every source build. The snapshot is not
committed back.
* Text: adjust hyperlink and placeholder source ranges on story edits (#1219)

Text-anchored hyperlinks and data-merge placeholders store byte ranges
(`start..end`) pointing into story text. When text earlier in the story is
inserted or deleted, these offsets remained unchanged, causing hyperlink
targets and data-merge placeholders to drift across unrelated text or
point to invalid UTF-8 boundaries.

This change:
- Implements `Document::adjust_text_ranges` in `designcraft-doc` to shift
  or resize text hyperlinks and placeholders when story text is edited.
  Pure insertions at or before the link shift it forward; insertions
  inside expand the link's span; deletions before shift it back; deletions
  consuming or overlapping the link clamp to surviving text or prune it if
  entirely consumed.
- Cleans up obsolete hyperlinks and placeholders in `set_story_text`.
- Wires range adjustment into engine text commands: typing, deleting,
  selection replacement, autocorrect, `story.replaceRange`, find/change,
  and spelling change.
- Adds comprehensive unit tests in `designcraft-doc` and 7 integration
  regression tests in `crates/engine/tests/hyperlink_offsets.rs`.

* fix(engine): adjust hyperlink and placeholder ranges for physically removed text under track changes

* fix(engine): adjust text ranges for formatted paste, case change, and drag move

* fix(engine): record change case adjustments per character to preserve enclosed hyperlinks

* fix(engine): adjust text ranges for track changes, inline markers, and preserve zero-length ranges

- Route Track Changes accept/reject deletions through adjust_text_ranges, and transfer replaced text hyperlinks to inserted text so links survive accept.
- Hook inline marker operations to adjust_text_ranges (notes, endnotes, xref, anchored objects, index markers, tables, editorial notes, unvar, and place text).
- Replace datamerge::shift_after with adjust_text_ranges.
- Only prune ranges that the edit emptied (s < e && s_new >= e_new), preserving zero-length ranges.
- Drop inverted ranges first and use saturating arithmetic in remap_range.
- Preserve doc.hyperlinks and placeholders ordering in move_text_ranges by mutating in place.
- Remove dead wrapper mark_deleted and call mark_deleted_reporting.
- Fix changes.track invocation parameter to 'on'.
- Add comprehensive regression tests in doc and engine covering all review items.

* fix(text): guard cell find/change, pre-record tracked replaces, shift para xref anchors

* fix(text): record stable IDs for tracked replacement redirects

* fix(text): reconcile range adjustments for review feedback

* fix(text): adjust ranges on delete surrounding and clean up dead auto edit

* Prune text ranges on TOC index and live caption regeneration

* test(engine): format regenerating_index_prunes_story_hyperlinks line wrap
Found while testing crates/doc/src/xref.rs:~100 (expand, early `return out` in the `tag_end` None branch)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Apply typographic quotes when xref format has an unterminated '<'
Found while testing crates/textimport/src/docx.rs:132-133 (parse, Event::GeneralRef branch)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Merge pull request #2470 from Silvertree2010/fix/h11260-docx-xlsx-xml-parser-accepts-sig
Some checks failed
ci.yml / Merge pull request #2470 from Silvertree2010/fix/h11260-docx-xlsx-xml-parser-accepts-sig (pull_request) Failing after 0s
packaging-lint.yml / Merge pull request #2470 from Silvertree2010/fix/h11260-docx-xlsx-xml-parser-accepts-sig (pull_request) Failing after 0s
sonarcloud.yml / Merge pull request #2470 from Silvertree2010/fix/h11260-docx-xlsx-xml-parser-accepts-sig (pull_request) Failing after 0s
ci.yml / Merge pull request #2470 from Silvertree2010/fix/h11260-docx-xlsx-xml-parser-accepts-sig (push) Failing after 0s
packaging-lint.yml / Merge pull request #2470 from Silvertree2010/fix/h11260-docx-xlsx-xml-parser-accepts-sig (push) Failing after 0s
sonarcloud.yml / Merge pull request #2470 from Silvertree2010/fix/h11260-docx-xlsx-xml-parser-accepts-sig (push) Failing after 0s
19c9875770
Drop signed numeric character references in DOCX XML parser
alf merged commit 19c9875770 into main 2026-11-08 11:46:14 +00:00
alf deleted branch chore/sync-upstream-20261108 2026-11-08 11:46:14 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
iris/designcraft!22
No description provided.