12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #include <argp.h>
- #include <stdio.h>
- #include <stdlib.h>
- static struct argp_option argp_options[] = {
- { "dstaddr", 'd', "ADDR", 0,
- "set destination (peer) address to ADDR" },
- { "peer", 'p', "ADDR", OPTION_ALIAS },
- { NULL }
- };
- static error_t parse_opt (int key, char *arg, struct argp_state *state);
- static struct argp argp =
- {
- argp_options, parse_opt
- };
- static int cnt;
- static int
- do_test (int argc, char *argv[])
- {
- int remaining;
- argp_parse (&argp, argc, argv, 0, &remaining, NULL);
- return cnt != 4;
- }
- static error_t
- parse_opt (int key, char *arg, struct argp_state *state)
- {
- switch (key)
- {
- case 'd':
- case 'p':
- printf ("got '%c' with argument '%s'\n", key, arg);
- ++cnt;
- break;
- case 0:
- case ARGP_KEY_END:
- case ARGP_KEY_NO_ARGS:
- case ARGP_KEY_INIT:
- case ARGP_KEY_SUCCESS:
- case ARGP_KEY_FINI:
- // Ignore.
- return ARGP_ERR_UNKNOWN;
- default:
- printf ("invalid key '%x'\n", key);
- exit (1);
- }
- return 0;
- }
- #define TEST_FUNCTION do_test (argc, argv)
- #include "../test-skeleton.c"
|