Three --structure spellings are accepted, mirror something wrong, and exit 0. All three were measured while reviewing #1427 and #1418, stated in #1427's body as known gaps, and left unfixed there because that PR exempts --structure (it is the one paramn row, and #1418 owns its value rules).
--structure=I0 is byte-identical to -I0: exit 0 with index.html, backblue.gif and fade.gif silently missing. The value glues onto the short form and its characters are re-parsed as further short options — the same mechanism #1426 fixed for the 27 param rows, which --structure is exempt from. #1418's %-free rule does not catch it either, because 8I0 and I0 are deliberately allowed to glue.
--structure=on <URL> maps to a bare -N, which consumes the next argv word. Exit 0, nothing mirrored, the URL swallowed as the structure value.
--long-names= (an empty value) still lands on DOS 8.3 names. This is the headline symptom of #1426 surviving by another spelling: sscanf converts nothing from an empty string, savename_83 keeps its default, and case 0 maps that to DOS.
The first two are --structure-specific and want a rule on the paramn class, alongside the digit and on/off glue rules #1418 added. The third is the param class and wants the empty value refused or defaulted deliberately rather than silently reaching 8.3 — decide which, since an empty value is a plausible way to mean "leave it alone".
None is a regression; all three predate tonight's work.
Three
--structurespellings are accepted, mirror something wrong, and exit 0. All three were measured while reviewing #1427 and #1418, stated in #1427's body as known gaps, and left unfixed there because that PR exempts--structure(it is the oneparamnrow, and #1418 owns its value rules).--structure=I0is byte-identical to-I0: exit 0 withindex.html,backblue.gifandfade.gifsilently missing. The value glues onto the short form and its characters are re-parsed as further short options — the same mechanism #1426 fixed for the 27paramrows, which--structureis exempt from. #1418's%-free rule does not catch it either, because8I0andI0are deliberately allowed to glue.--structure=on <URL>maps to a bare-N, which consumes the next argv word. Exit 0, nothing mirrored, the URL swallowed as the structure value.--long-names=(an empty value) still lands on DOS 8.3 names. This is the headline symptom of #1426 surviving by another spelling:sscanfconverts nothing from an empty string,savename_83keeps its default, andcase 0maps that to DOS.The first two are
--structure-specific and want a rule on theparamnclass, alongside the digit andon/offglue rules #1418 added. The third is theparamclass and wants the empty value refused or defaulted deliberately rather than silently reaching 8.3 — decide which, since an empty value is a plausible way to mean "leave it alone".None is a regression; all three predate tonight's work.