visionmedia/commander.c — pull request #5 by deltheil (2012-12-16 01:51:15+00:00)
Title: Support multiple options (-vo as -v -o)

To keep things simple I've retained the following design:

There is a first pass (a.k.a normalize) whose job is to create a clone of the input argument vector with multiple options properly exploded, e.g:

```
(input) foo -abc --scm git
(output) foo -a -b -c --scm git
```

This *normalized* input vector is then parsed in a second pass. This is done as usual, with the former function that has been kept untouched [1].

Note that in my own fork (master branch) I've included the additional arguments deletion at `command_clean` time.

[1] except that the additional arguments are now copied. This is required since:
* we no more reference the original argument vector,
* the normalized `argv` is flushed out after `command_parse`.