When image resource 1050 declared more bytes than the image resources
hold, the lookup stopped as if the file stored no slices, and Open and
Place brought the artwork in without the warning that the slices were
left out. The new psdread::resource tells a cut-short resource 1050
apart from one that is absent or that follows another block cut short,
and the slices reader passes that error on, so the warning names it.
Other resource readers keep their behavior.
#7774's Georgian catalog and #7532's script.run answers rows landed in the same batch with
twelve of the same messages, so bundled_catalogs_are_consistent fails on a duplicate. The
first of each pair stays.
An envelope record that lies in an outer envelope's AIDeformArtKey
block (X= ... X+) with no group around it now opens as a live envelope
inside the live outer one, and an object's own dictionary there (its
name) applies to it. Each envelope is still compared with its own drawn
art: an inner one that doesn't match keeps its drawn art as the outer
envelope's contents, and an outer one that doesn't match keeps its own.
- An envelope record in an opacity mask's art reads as part of the
mask; its block's X+ no longer ends the mask's art, which failed the
import.
- Envelopes still waiting for their XP when a dictionary ends keep
their drawn art, so a stray XP in a later container cannot take them.
#7532's script.run answers rows and the Russian message rows landed in the same batch with
the same ten messages, so bundled_catalogs_are_consistent fails on a duplicate. The first
of each pair stays.
#7814 made SubPath::anchors an Anchors, and #7810's seam fills, merged in the same batch,
passed it to SubPath::new, which takes a Vec, so vectorcraft-trace doesn't compile on main.
A closed subpath whose every segment is marked is its own run: clone it.
The unpainted rectangle that carries the text wrap options of a symbol
instance, blend, mesh, repeat, placed document, intertwine or envelope
written as a group of its art is now the group's first member. Area type
below the object still wraps by its bounds after reopening, and area type
in the art itself is not wrapped by the rectangle, so art that holds area
type no longer keeps the options on its group and wraps by its members.
A click or marquee outside a symbol instance's box walks the instance's
art. An instance nested in that art was hit or touched anywhere in its
own box, so empty space inside the nested box, where a moved clipping
path reaches past the outer box, selected the outer instance. In that
walk a nested instance now counts only where its own art is, by the
same rule at every level. Inside the outer box nothing changes.
A test exports a knockout group that does not isolate, whose top element
overprints, and checks that its /K group carries no /I true, that the
overprinting graphics state (/OP, /op, /OPM 1) is written, and that the
overprint and the knockout group read back. An isolated group keeps
/I true.
A click or marquee outside a symbol instance's box walks the instance's
placed art, and an instance nested in that art walked its own art with
no shared limit, so deeply nested or widely repeated instances could
make one click walk far more objects than the canvas draws.
Clicks, Select Behind, the locked-object and hidden-selection lookups,
Direct Selection's part lookup and marquees now share one limit of
MAX_SYMBOL_NODES objects across every level of nested art. Once it is
used up, an instance is no longer hit or touched outside its box;
inside its box it still is. The art walk also checks the instance's
reach before starting.