build_lp_args per docs/11 — spools each gallery TIFF through /usr/bin/lp:
lp -d <queue> -t "ICCery Target - <file>"
-o AP_ColorMatchingMode=AP_ApplicationColorMatching
-o AP.ColorMatchingMode=AP_ApplicationColorMatching
<captured cups_options> ← replayed, lowercased-key dedup
<media_type via detected key> ← only if no media key captured
<driver colour bypass> ← only if no bypass key captured; never gated
<orientation-requested=3|4> ← unless captured
<PageSize> ← unless captured
<tiff> ← always last
Never -o raw (#92): raw is dropped by the capture filter and skipped again at build — -o raw bypasses the raster filter that honours AP_ApplicationColorMatching.
Captured options sanitised (;, newlines, shell metachars → LpArgsError); argv is a Process array, never a shell string.
CupsService.printTarget: TIFF existence check, optionKeys fetch for media/bypass detection, runCaptured spawn with ProcessID.lp(queue, page).
Tests: 9 argv-golden suites — both AP_* always first, captured wins, sanitise rejects ;, TIFF last.
`build_lp_args` per docs/11 — spools each gallery TIFF through `/usr/bin/lp`:
```
lp -d <queue> -t "ICCery Target - <file>"
-o AP_ColorMatchingMode=AP_ApplicationColorMatching
-o AP.ColorMatchingMode=AP_ApplicationColorMatching
<captured cups_options> ← replayed, lowercased-key dedup
<media_type via detected key> ← only if no media key captured
<driver colour bypass> ← only if no bypass key captured; never gated
<orientation-requested=3|4> ← unless captured
<PageSize> ← unless captured
<tiff> ← always last
```
- **Never `-o raw`** (#92): `raw` is dropped by the capture filter and skipped again at build — `-o raw` bypasses the raster filter that honours `AP_ApplicationColorMatching`.
- Captured options sanitised (`;`, newlines, shell metachars → `LpArgsError`); argv is a `Process` array, never a shell string.
- `CupsService.printTarget`: TIFF existence check, `optionKeys` fetch for media/bypass detection, `runCaptured` spawn with `ProcessID.lp(queue, page)`.
Tests: 9 argv-golden suites — both `AP_*` always first, captured wins, sanitise rejects `;`, TIFF last.
Closes #15.
Generated with [Devin](https://devin.ai)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
build_lp_argsper docs/11 — spools each gallery TIFF through/usr/bin/lp:-o raw(#92):rawis dropped by the capture filter and skipped again at build —-o rawbypasses the raster filter that honoursAP_ApplicationColorMatching.;, newlines, shell metachars →LpArgsError); argv is aProcessarray, never a shell string.CupsService.printTarget: TIFF existence check,optionKeysfetch for media/bypass detection,runCapturedspawn withProcessID.lp(queue, page).Tests: 9 argv-golden suites — both
AP_*always first, captured wins, sanitise rejects;, TIFF last.Closes #15.
Generated with Devin