MCPcopy Create free account
hub / github.com/1a1a11a/libCacheSim / parse_opt

Function parse_opt

libCacheSim/bin/distUtil/cli.c:49–84  ·  view source on GitHub ↗

PARSER. Field 2 in ARGP. Order of parameters: KEY, ARG, STATE. */

Source from the content-addressed store, hash-verified

47 Order of parameters: KEY, ARG, STATE.
48*/
49static error_t parse_opt(int key, char *arg, struct argp_state *state) {
50 struct arguments *arguments = state->input;
51
52 switch (key) {
53 case OPTION_TRACE_TYPE_PARAMS:
54 arguments->trace_type_params = arg;
55 break;
56 // case OPTION_OUTPUT_PATH:
57 // strncpy(arguments->ofilepath, arg, OFILEPATH_LEN);
58 // break;
59 case OPTION_NUM_REQ:
60 arguments->n_req = atoi(arg);
61 break;
62 case OPTION_VERBOSE:
63 arguments->verbose = is_true(arg) ? true : false;
64 break;
65 case ARGP_KEY_ARG:
66 if (state->arg_num >= N_ARGS) {
67 printf("found too many arguments, current %s\n", arg);
68 argp_usage(state);
69 exit(1);
70 }
71 arguments->args[state->arg_num] = arg;
72 break;
73 case ARGP_KEY_END:
74 if (state->arg_num < N_ARGS) {
75 printf("not enough arguments found\n");
76 argp_usage(state);
77 exit(1);
78 }
79 break;
80 default:
81 return ARGP_ERR_UNKNOWN;
82 }
83 return 0;
84}
85
86/*
87 ARGS_DOC. Field 3 in ARGP.

Callers

nothing calls this directly

Calls 2

atoiFunction · 0.85
is_trueFunction · 0.85

Tested by

no test coverage detected