Hello, Your proposed solution makes a lot more sense. I have actually considered a solution similar to this (the third solution from [1]), but found it more complicated. I did not account for the fact that once a callback is called, the user is already aware of the available options and the user only supplied an invalid argument value. I also have to make sure that all parsers (all callbacks and standard ones, for integer, filename, etc.) are already printing errors appropriately. Otherwise, some commands may fail and the user will not be aware of it because nothing will be shown (no usage is shown and no errors either). I will be implementing this solution and come back with another patch. Thank you for your review. I really appreciate it! [1] https://public-inbox.org/git/20160118215433.GB24136@xxxxxxxxxxxxxxx ff.net/ Best regards, Paul Ungureanu