Refuse a cluster tail on --structure - #1443
Merged
Merged
Conversation
--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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
--structure=8I0glued preset 8 onto-I0and mirrored with no index files at exit 0. Nothing separates that from--structure=1L0, which was accepted on purpose and which the alias table'sparamcomment advertises as cluster mixing. Sorting tails into wanted and unwanted needs a rule nobody can state, so--structurenow refuses all of them.This is a deliberate CLI break rather than a bug fix.
--structure=1L0,=1c8,=1%c8,=8I0and any other digits-then-tail value stop working, in both the=and the space-separated spelling; all were accepted since before #1418. Presets,on/offand templates are untouched, and the template test is unchanged: a path separator or an extension dot still marks one, so--structure=2col/%n.%tkeeps working, and--user-structuretakes a tail-shaped name verbatim.-N1L0still 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-N1L0itself.