diff options
Diffstat (limited to 'tools/test/perform/sio_standalone.c')
-rw-r--r-- | tools/test/perform/sio_standalone.c | 57 |
1 files changed, 31 insertions, 26 deletions
diff --git a/tools/test/perform/sio_standalone.c b/tools/test/perform/sio_standalone.c index ace6b7e..21a2fb5 100644 --- a/tools/test/perform/sio_standalone.c +++ b/tools/test/perform/sio_standalone.c @@ -22,26 +22,31 @@ /* global variables */ int nCols = 80; +/* ``get_option'' variables */ +int opt_err = 1; /*get_option prints errors if this is on */ +int opt_ind = 1; /*token pointer */ +const char *opt_arg; /*flag argument (or value) */ + int -get_option(int argc, char **argv, const char *opts, const struct h5_long_options *l_opts) +get_option(int argc, const char *const *argv, const char *opts, const struct long_options *l_opts) { static int sp = 1; /* character index in current token */ int opt_opt = '?'; /* option character passed back to user */ if (sp == 1) { /* check for more flag-like tokens */ - if (H5_optind >= argc || argv[H5_optind][0] != '-' || argv[H5_optind][1] == '\0') { + if (opt_ind >= argc || argv[opt_ind][0] != '-' || argv[opt_ind][1] == '\0') { return EOF; } - else if (HDstrcmp(argv[H5_optind], "--") == 0) { - H5_optind++; + else if (HDstrcmp(argv[opt_ind], "--") == 0) { + opt_ind++; return EOF; } } - if (sp == 1 && argv[H5_optind][0] == '-' && argv[H5_optind][1] == '-') { + if (sp == 1 && argv[opt_ind][0] == '-' && argv[opt_ind][1] == '-') { /* long command line option */ - const char *arg = &argv[H5_optind][2]; + const char *arg = &argv[opt_ind][2]; int i; for (i = 0; l_opts && l_opts[i].name; i++) { @@ -53,13 +58,13 @@ get_option(int argc, char **argv, const char *opts, const struct h5_long_options if (l_opts[i].has_arg != no_arg) { if (arg[len] == '=') { - H5_optarg = &arg[len + 1]; + opt_arg = &arg[len + 1]; } - else if (H5_optind < (argc - 1) && argv[H5_optind + 1][0] != '-') { - H5_optarg = argv[++H5_optind]; + else if (opt_ind < (argc - 1) && argv[opt_ind + 1][0] != '-') { + opt_arg = argv[++opt_ind]; } else if (l_opts[i].has_arg == require_arg) { - if (H5_opterr) + if (opt_err) HDfprintf(stderr, "%s: option required for \"--%s\" flag\n", argv[0], arg); opt_opt = '?'; @@ -67,13 +72,13 @@ get_option(int argc, char **argv, const char *opts, const struct h5_long_options } else { if (arg[len] == '=') { - if (H5_opterr) + if (opt_err) HDfprintf(stderr, "%s: no option required for \"%s\" flag\n", argv[0], arg); opt_opt = '?'; } - H5_optarg = NULL; + opt_arg = NULL; } break; @@ -82,29 +87,29 @@ get_option(int argc, char **argv, const char *opts, const struct h5_long_options if (l_opts[i].name == NULL) { /* exhausted all of the l_opts we have and still didn't match */ - if (H5_opterr) + if (opt_err) HDfprintf(stderr, "%s: unknown option \"%s\"\n", argv[0], arg); opt_opt = '?'; } - H5_optind++; + opt_ind++; sp = 1; } else { register char *cp; /* pointer into current token */ /* short command line option */ - opt_opt = argv[H5_optind][sp]; + opt_opt = argv[opt_ind][sp]; if (opt_opt == ':' || (cp = strchr(opts, opt_opt)) == 0) { - if (H5_opterr) + if (opt_err) HDfprintf(stderr, "%s: unknown option \"%c\"\n", argv[0], opt_opt); /* if no chars left in this token, move to next token */ - if (argv[H5_optind][++sp] == '\0') { - H5_optind++; + if (argv[opt_ind][++sp] == '\0') { + opt_ind++; sp = 1; } @@ -113,32 +118,32 @@ get_option(int argc, char **argv, const char *opts, const struct h5_long_options if (*++cp == ':') { /* if a value is expected, get it */ - if (argv[H5_optind][sp + 1] != '\0') { + if (argv[opt_ind][sp + 1] != '\0') { /* flag value is rest of current token */ - H5_optarg = &argv[H5_optind++][sp + 1]; + opt_arg = &argv[opt_ind++][sp + 1]; } - else if (++H5_optind >= argc) { - if (H5_opterr) + else if (++opt_ind >= argc) { + if (opt_err) HDfprintf(stderr, "%s: value expected for option \"%c\"\n", argv[0], opt_opt); opt_opt = '?'; } else { /* flag value is next token */ - H5_optarg = argv[H5_optind++]; + opt_arg = argv[opt_ind++]; } sp = 1; } else { /* set up to look at next char in token, next time */ - if (argv[H5_optind][++sp] == '\0') { + if (argv[opt_ind][++sp] == '\0') { /* no more in current token, so setup next token */ - H5_optind++; + opt_ind++; sp = 1; } - H5_optarg = NULL; + opt_arg = NULL; } } |