Files
craft-libs/vendor/hayro-postscript
aiongg 2eca9b3a53 pdf: vendor hayro-postscript and skip << and >> runs without recursion (#263)
hayro-postscript 0.1.0 is the token scanner hayro-cmap uses for the
CMap streams PDFs embed. Its object reader skipped each `<<` or `>>`
by calling itself again, so a stream holding a long run of `<` or `>`
bytes recursed once per pair and aborted the process with a stack
overflow.

Vendor the crates.io package unchanged and patch `object::read` to
skip those runs in a loop, returning the same next object as before.
Wire it in like the other Hayro crates: workspace exclude,
[patch.crates-io] entry, SOURCE.json with registry and local hashes,
the backend test script, NOTICE, ATTRIBUTION.md and the reader README.

Tests cover a million `<` and a million `>` bytes, `<< /A 1 >>` and
nested `<<<< /X >>>>` runs.
2026-10-23 23:31:35 -04:00
..

hayro-postscript

Crates.io Documentation

A lightweight PostScript scanner.

This crate provides a scanner for tokenizing PostScript programs into typed objects. It currently only implements a very small subset of the PostScript language, with the main goal of being enough to parse CMAP files, but the scope might be expanded upon in the future.

The supported types include integers and real numbers, name objects, strings and arrays. Unsupported is anything else, including dictionaries, procedures, etc. An error will be returned in case any of these is encountered.

Safety

This crate forbids unsafe code via a crate-level attribute.

License

Licensed under either of

at your option.