You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
An unquoted path with a space, or any stray argument, is silently dropped: -o my icons writes to ./my and exits 0 #167
Arguments (IconHelper/Arguments.cs) declares only [Option] properties and no [Value] property. CommandLineParser 2.9.1, called through Parser.Default.ParseArguments<Arguments>(args) in IconHelper/IconHelper.cs:36, silently discards any token that no option or value binds. It raises no parse error for it. An extra token therefore never reaches Validate.
Done. 1 file(s) written., exit 0, output in ./my; icons is dropped
exit 1, error naming the unexpected argument icons
iconhelper -i w -o x -s 64 32
exit 0 at size 64; 32 is dropped
exit 1
iconhelper -i w -o x extra
exit 0
exit 1
Why it matters
Forgetting to quote a path that contains a space is the most common shell mistake. Here it sends the icons to a different folder, which may already exist and hold other files, and reports success. A script then picks up nothing from the folder it expected. The tool already treats silent misconfiguration as a failure with exit 1 (#125, #148), and this case slips past all of that.
Priority: Medium. A forgotten quote around a path with a space sends output to a different folder and exits 0, so a script carries on as if it succeeded. That folder may already exist and hold other files. It's easy to hit, but the files land somewhere visible, not lost.
Area / suggested assignment: CLI argument handling: IconHelper/Arguments.cs (add a hidden [Value] catch-all) and Validate, with cases in ArgumentsTests.
Next step: Mechanical fix as described. Bind leftover tokens, then fail in Validate before any output folder is created, with a message that names the tokens and points at quoting.
Activity
matt-edmondson commentedon Nov 6, 2026
Triage
IconHelper/Arguments.cs(add a hidden[Value]catch-all) andValidate, with cases inArgumentsTests.Padding * 2overflows, and every icon comes out as 1–2 pixels of content with exit 0 #153, --output that is a symlink to the --input folder passes validation and overwrites the source icons (exit 0) #157,--color transparentis accepted and listed as a known name, but produces solid black icons #158 and An existing but read-only output folder exits 2 and fails every file one by one, while an uncreatable one exits 1 #162. Those each have open PRs (Reject a padding whose double overflows instead of letting it pass validation [patch] #156, Refuse an --output that reaches --input through a symlink [patch] #160, Reject a fully transparent --color instead of painting icons black [patch] #159, Exit 1 for an existing output folder that can't be written to [patch] #165), none of which touches unbound arguments.Validatebefore any output folder is created, with a message that names the tokens and points at quoting.Generated by Claude Code