int parse_setenv_args(int argc, char *argv[]) { int c; parse_common_args(argc, argv); while ((c = getopt_long(argc, argv, "a:c:ns:h", long_options, NULL)) != EOF) { switch (c) { case 's': script_file = optarg; break; case 'a': case 'c': case 'h': /* ignore common options */ break; default: /* '?' */ usage_setenv(); exit(EXIT_FAILURE); break; } } return 0; }
static void parse_common_args(int argc, char *argv[]) { int c; #ifdef CONFIG_FILE env_opts.config_file = CONFIG_FILE; #endif while ((c = getopt_long(argc, argv, ":a:c:l:h", long_options, NULL)) != EOF) { switch (c) { case 'a': if (parse_aes_key(optarg, env_opts.aes_key)) { fprintf(stderr, "AES key parse error\n"); exit(EXIT_FAILURE); } env_opts.aes_flag = 1; break; #ifdef CONFIG_FILE case 'c': env_opts.config_file = optarg; break; #endif case 'l': env_opts.lockname = optarg; break; case 'h': do_printenv ? usage_printenv() : usage_setenv(); exit(EXIT_SUCCESS); break; default: /* ignore unknown options */ break; } } /* Reset getopt for the next pass. */ opterr = 1; optind = 1; }