vectorcraft/crates
bflatastic 2048084396 #1027: PostScript-form .ai files open through their layers
A .ai in PostScript form went only to the PostScript interpreter, which
stopped on the first operator its missing prolog would define
(`Adobe_packedarray`, `Lb`, `Np`): files from Rhino and other CAD apps name
the procsets without including them.

- Such a program is its own editing data: when it has layers
  (`%AI5_BeginLayer`) and no private data, the editing-data reader reads it,
  compared with the page when the program runs, from the layers alone when
  it can't be run. If the layers can't be read either, the error says why.
- The reader takes the legacy ten-operand `Lb`, ignores flatness `i`, and
  uses the bounding box as the page when nothing else says where it is.
- Tests on synthetic files; fuzz fixture and hostile-program layers added.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

# Conflicts:
#	ROADMAP.md
#	docs/file-format-parity.md
#	docs/gaps.md
2026-10-11 06:04:48 +07:00
..
affinity Clippy 1.99: as_chunks in the Affinity raster tests 2026-10-09 23:15:36 +07:00
brush Part of gap 5: Scatter, Art and Pattern Brush Options 2026-10-10 17:48:05 +07:00
cad #1011: DXF US survey inches, yards and miles import at their size 2026-10-11 03:51:47 +07:00
color #1007: Reverse Gradient mirrors off-centre midpoints 2026-10-11 03:51:31 +07:00
doc Review: guides on hidden or locked layers, and through layer commands 2026-10-11 06:03:48 +07:00
effects Part of gap 2: Effect › Brush Strokes (Accented Edges, Angled Strokes, Crosshatch, Dark Strokes, Ink Outlines, Spatter, Sprayed Strokes, Sumi-e) 2026-10-11 01:19:26 +07:00
engine #1027: PostScript-form .ai files open through their layers 2026-10-11 06:04:48 +07:00
eps #1027: PostScript-form .ai files open through their layers 2026-10-11 06:04:48 +07:00
format Fonts: missing fonts are listed when a document opens, with Find Fonts and a folder search 2026-10-10 08:42:32 +07:00
geom #1026: open filled paths are hit by their fill on every side 2026-10-11 05:30:24 +07:00
mcp #1003: MCP add_text colours type made on or in a path 2026-10-11 03:51:15 +07:00
metafile Part of #637: the editing data's structure read whole, colours, gradients, transparency, names, images and artboards included 2026-10-09 16:02:36 +07:00
pathops Review: rustfmt; ROADMAP progress log (#1028) 2026-10-11 05:30:41 +07:00
pdf PDF import: a font the file doesn't carry keeps the style its name says 2026-10-11 04:34:52 +07:00
plugins Fix #832: --automation-read-root and --automation-write-root confine the MCP server's files 2026-10-10 14:27:24 +07:00
render #983: supersample Art Optimized edges in exports 2026-10-11 03:48:03 +07:00
svg #1010: SVGs with one absolute and one unitless root side import unstretched 2026-10-11 03:51:43 +07:00
testkit variables: fix binding lifetime, dataset editing and the missing UI to define 2026-10-10 23:34:21 +07:00
text Part of #394: Show Font Names in English labels the font menus. 2026-10-10 14:10:31 +07:00
three-d M9: add live Revolve with artboard rotation and lighting controls 2026-10-10 23:44:46 +07:00
tools Guides: ruler guides as layer objects 2026-10-11 06:03:47 +07:00
trace Image Trace: Flat Logo mode (sub-pixel edges, restored corners, true lines and circles) 2026-10-09 17:57:04 +11:00
ui-egui #1027: PostScript-form .ai files open through their layers 2026-10-11 06:04:48 +07:00