On Sat, Dec 09, 2017 at 09:40:07PM +0100, Christian Couder wrote: > The changes compared to v2 are: > > - s/_val/_arg/ in the name of the functions > - s/val/arg/ in the name of the third argument of the functions > - works with NULL as third argument of the functions This whole series looks OK to me, but this third point made me wonder: what would be the use of allowing NULL for the "arg" parameter? I didn't see any use of this in the series, and I'm having trouble figuring out how it would be useful. E.g., if I do: if (skip_to_optional_arg(arg, "--foo", NULL)) ... what can I do in "..."? I know we matched _some_ type of "--foo", but I cannot know whether it was "--foo" or "--foo=bar", nor what "bar" is. It could only be used by some kind of vague validator to say "well, at least this looks like an option that I _could_ parse if I wanted to". So I guess I don't mind it, as it does the most reasonable thing it can when passed NULL, but I would be surprised if we ever actually exercise the code path. -Peff