
I have an application, which spawns off other applications. As input, it takes in environment variables and arguments to pass to the resultant application. For instance: mutate -E "env_var1=val" -a "." ls This will run: ls . and the environment will only have "env_var1" equal to "val" So. Something funny comes along when I try to pass "-e" as an argument. So, in the above would be: mutate -a "-e" -a "foo" xterm The program options parser attempts to parse the "-e", and says "I don't know what it is". Any thoughts on having it skip that option? Code Snippits: po::options_description visible("Program options. Usage %1%"); visible.add_options() ("env,E", po::value<string_vector_t>(), "Specify an environment variable to run the executable with. In the form of foo=bar") ("arg,a", po::value<string_vector_t>(), "Specify a command line argument to pass to the executable") ; // Set up some hidden options po::options_description hidden("Hidden options"); hidden.add_options() ("executable", po::value < std::string>(), "the executable to run") ; // Set up positional arguments. They are going to be execute po::positional_options_description pos; pos.add("executable", 1); // There can only be 1 item executed // Consolidate all the options into a single one po::options_description all_options("All Options"); all_options.add(visible); all_options.add(hidden); // Parse the command line options po::store(po::command_line_parser(argc, argv).options(all_options).positional(pos).run(), vm); po::notify(vm);