Skip to content

Refuse a cluster tail on --structure - #1443

Merged
xroche merged 1 commit into
masterfrom
fix-structure-tails
Aug 25, 2026
Merged

Refuse a cluster tail on --structure#1443
xroche merged 1 commit into
masterfrom
fix-structure-tails

Conversation

@xroche

@xroche xroche commented Aug 25, 2026

Copy link
Copy Markdown
Owner

--structure=8I0 glued preset 8 onto -I0 and mirrored with no index files at exit 0. Nothing separates that from --structure=1L0, which was accepted on purpose and which the alias table's param comment advertises as cluster mixing. Sorting tails into wanted and unwanted needs a rule nobody can state, so --structure now refuses all of them.

This is a deliberate CLI break rather than a bug fix. --structure=1L0, =1c8, =1%c8, =8I0 and any other digits-then-tail value stop working, in both the = and the space-separated spelling; all were accepted since before #1418. Presets, on/off and templates are untouched, and the template test is unchanged: a path separator or an extension dot still marks one, so --structure=2col/%n.%t keeps working, and --user-structure takes a tail-shaped name verbatim.

-N1L0 still clusters. There the cluster is explicit and it is the generic short-option scanner walking characters, so refusing it would change short-option grammar instead of this one option. Test 370 covers the refusals against mirrored output; 359, 362 and 368 each pinned a tail case and now pin the refusal, keeping the coverage those cases carried besides the tail, including -N1L0 itself.

--structure=8I0 glued preset 8 onto -I0 and mirrored with no index files at
exit 0. No rule separated that from --structure=1L0, which was accepted on
purpose, so --structure now refuses every digits-then-tail value rather than
guessing which tails were meant.

This breaks 1L0, 1c8, 1%c8 and 8I0, accepted since before #1418. A path
separator or an extension dot still marks a template, so 2col/%n.%t is
unaffected, and --user-structure takes a tail-shaped name verbatim.

The short form -N1L0 is unchanged: there the cluster is explicit, and it is
the generic short-option scanner, not anything -N owns.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Xavier Roche <roche@httrack.com>
@xroche
xroche enabled auto-merge (squash) August 25, 2026 13:49
@xroche
xroche merged commit ed23d70 into master Aug 25, 2026
45 checks passed
@xroche
xroche deleted the fix-structure-tails branch August 25, 2026 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant