I don't see how to solve this without parsing the argument list twice (scanning for -C first), or somehow deferring the setting of the variables which are passed on the command line.
Setting a variable with the (escaped, semicolon-separated) command line arguments and then eval'ing it should work.
Paolo
