state->argv[0] = program_invocation_short_name;
state->argv[0] = program_invocation_name;
argp_default_parser (int key, char *arg, struct argp_state *state){  switch (key)    {    case '?':      __argp_state_help (state, state->out_stream, ARGP_HELP_STD_HELP);      break;    case OPT_USAGE:      __argp_state_help (state, state->out_stream,		       ARGP_HELP_USAGE | ARGP_HELP_EXIT_OK);      break;    case OPT_PROGNAME:		/* Set the program name.  */      program_invocation_short_name = arg;      /* [Note that some systems only have PROGRAM_INVOCATION_SHORT_NAME (aka	 __PROGNAME), in which case, PROGRAM_INVOCATION_NAME is just defined	 to be that, so we have to be a bit careful here.]  */      arg = strrchr (arg, '/');      if (arg)	program_invocation_short_name = arg + 1;      else	program_invocation_short_name = program_invocation_name;      if ((state->flags & (ARGP_PARSE_ARGV0 | ARGP_NO_ERRS))	  == ARGP_PARSE_ARGV0)	/* Update what getopt uses too.  */	state->argv[0] = program_invocation_short_name;      break;    case OPT_HANG:      _argp_hang = atoi (arg ? arg : "3600");      while (_argp_hang-- > 0)	__sleep (1);      break;    default:      return EBADKEY;    }  return 0;}