tree a3833eed5cf275739692501a5a3b0715356b83c0
parent eb2deca5b4489709acd001a5c7fd2df4f1eed19d
author Nate Bosch <nbosch@google.com> 1615425363 -0800
committer Nate Bosch <nbosch@google.com> 1615426662 -0800

Add --undefok support

Some other arg parsing libraries support an `--undefok` option which
suppresses the error that would normally surface if an unknown flag or
option is passed.
For example: https://gflags.github.io/gflags/#special

Add built in support, unconditionally, for `--undefok` in the parser.
The `undefok` option always supports multiple values and comma separated
values.

If an option named `undefok` is added to the `ArgParser` it will
override this behavior. It isn't possible to implement this behavior in
the calling code because the `callback` for when an option is parsed is
not triggered until after all arguments are parsed. Allowing the calling
code to override the `undefok` option, even though it can't implement
the expected semantics, retains backwards compatibility in the unlikely
case there are existing uses of that name.

- Add an `_undefok` field to `Parser` to track the names that suppressed
  as options are parsed. Only the top level parser in a `parent` chain
  will handle `undefok`.
- When parsing an otherwise unknown option named `undefok`, parse the
  value and store in the allowed `_undefok` set.
- When parsing an otherwise unknown option with any other name already
  in `_undefok`, silently drop it, along with any `=value` portion.

This implementation has the following limitations:
- The `--undefok` option must be passed _before_ the unknown option. If
  the arguments come in the other order it will still fail.
- The unknown option must either be a flag, or must use the
  `--name=value` syntax. If it is passed as `--name value` then the
  value will show in `argResults.rest`. This could cause the argument to
  get misinterpreted by the app.
