CLI args: reorganize parsing
commit827258f32ee898ed5422bc9219d9a42bd9bd2360
authorJakob Gruber <jakob.gruber@gmail.com>
Fri, 8 Oct 2010 20:34:17 +0000 (8 22:34 +0200)
committerDan McGee <dan@archlinux.org>
Tue, 12 Oct 2010 01:57:26 +0000 (11 20:57 -0500)
treeaf282868e81343ecf5a859b3084e13d1a1a7eda0
parent0ff2a9149711b9179d288f579c792890cd81d79b
CLI args: reorganize parsing

Split parsing of CLI arguments into separate functions:

parsearg_op (operations)
parsearg_global (global options)
parsearg_{database,query,remove,sync,deptest,upgrade}

Organization strictly follows the manpage (even where the manpage is
incorrect) - these cases will be fixed in the following commits.

Switch cases are copy/pasted and statements unrelated to chosen
operation are deleted.

Parsing logic adjusted as follows:

1) Parse operation
2) If we can bail out early (duplicate op, help/version requested) do so
3) Parse arguments again:
    foreach arg:
        if arg is operation:
            continue
        tryparse_args_specific_to_op
        if unsuccessful tryparse_args_global
        if unsuccessful print error message and exit

Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
src/pacman/pacman.c
test/pacman/tests/pacman005.py