Blame argp/bug-argp2.c

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