mirror of
https://github.com/guillaumemeyer/watermarks-remover.git
synced 2026-08-22 13:11:57 +02:00
* fix: keep the truncated tail instead of dropping it in png/isobmff strips strip_png stopped walking at the first chunk it could not parse and never copied the remainder; strip_isobmff rebuilt only the boxes that parsed. A truncated IDAT/mdat — the actual coded image — was dropped from the output, the run reported "already clean", the exit code was 0: a user with a recoverable (viewable) image ended with an unopenable husk and the tool saying it was fine (#170). Both strippers now keep the unparseable tail verbatim and append a "kept N bytes of truncated ... tail" action — a real report, so the run is never mistaken for a no-op clean and every original byte survives (truncated-image-capable readers can still open the output). * refactor: surface parser walk end; stop false truncation reports - _parse_isobmff_boxes returns (boxes, scanned_end), so strip_isobmff no longer re-walks parsed boxes to recover the stop offset. - Fewer than 8 trailing bytes is trailing junk, not truncation: kept verbatim without a 'file truncated' action. - Tests: drop unused noqa (RUF100) and unpack (RUF059), simplify the PNG tail assertion to byte-equality, cover the trailing-junk case. --------- Co-authored-by: yzxcj797 <yzxcj797@users.noreply.github.com> Co-authored-by: Guillaume Meyer (The Opinionated Man) <1385518+guillaumemeyer@users.noreply.github.com>