The Graph Data window's Import Data read UTF-16 only after a byte-order
mark, so a UTF-16 file without one filled the cells with NUL characters.
It now reads such a file in the byte order Import Data Sets' rule (#7348)
gives it: at least half of the two-byte units hold a NUL byte, and the
byte order is the one that reads the line breaks. The text is then read
as after a byte-order mark: an odd last byte is dropped and an unpaired
surrogate reads as U+FFFD. A file the rule refuses is read as UTF-8, as
before.
The rule now also gives a byte order to a one-line file, which reads a
line break in neither order: big-endian when more of its units start
with a NUL byte than end with one, else little-endian as before. Import
Data Sets still refuses a one-line file, which has no data rows; read in
the new order, such a file can be refused with a different error first.
When an arriving box that joins everything it overlaps covers an open
box to the right and below, and starts lower than it, the open box now
keeps only its part above the arriving box's top in the sweep's tree.
Any later box that would have met the removed part meets the arriving
box instead, which is open at least as long and in the same set, so
the groups stay the same. A box held by an open box is not opened and
cuts nothing short.
512 boxes, each 1 pt right of and below the one before, now meet 511
open boxes in the sweep instead of 130,816, with and without
transparency. Staggering right and up in sweep order still meets every
earlier open box.
The every-pair test oracle skips boxes that aren't finite, as the
sweep does.
Object > Live Paint > Make gave each new face and edge one fresh row
built from only the source's topmost fill or stroke paint and the top
stroke's weight. A lower row that draws was lost, a hidden top row
became visible, and the rows' opacity, blending mode, effects and
stroke settings were dropped.
- A face takes every fill row that draws (shown, with paint and an
opacity above 0) of its front-most covering source that has one and
an opacity above 0, in order with their settings. A source in front
whose fill does not draw no longer hides the fill behind it.
- An edge takes every stroke row of its source that draws (also with a
weight above 0). Faces and edges take the source's opacity and
blending mode; gradients keep their fit on the source, and pen
pressure stays with the source.
- Where a path is cut into several edges, each edge runs the way the
path does, its dashes go on from where it starts along the path, the
arrowheads stay at the path's own ends, and a width profile or brush
stays only on an edge that runs the whole path.
- Rows that draw nothing stay with the stored sources, which Release
returns unchanged. Merge and Gap Options build their new parts the
same way.
Docs: livePaint.make params, docs/mcp.md, docs/target-app-parity.md.
Add a test that Remove Breaks leaves type on a locked artboard as it is
when ids names it, with no undo step. Rewrap the Text tools paragraph
in docs/mcp.md and name the tests in docs/target-app-parity.md.
untranslated_report lists status and error messages that no
complete-message catalog translates. cs.tsv gains 114 @msg rows for the
ones no open pull request covers: 3D and Revolve limits, image export
and encoding errors, color profiles, color books and swatch exchange
files, binary DXF and DWG import, path operations, swatch, graphic style
and action set libraries, and zip, script and regular expression errors.
Placeholders, backticked names, command ids and listed values stay as the
English writes them.
The report still lists 54 messages for every language: 53 composite
font, SVG filter, read root and graph design errors left to #7211, #7378
and #7405, and "`index` must be a whole number". The Czech row of
docs/localization-parity.md gets the new counts, and
docs/target-app-parity.md lists the change.