/[mailutils]/mailutils/mh/mh_argp.c
ViewVC logotype

Diff of /mailutils/mh/mh_argp.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.16 by gray, Wed Jan 15 17:30:46 2003 UTC revision 1.17 by gray, Thu Jan 16 13:42:31 2003 UTC
# Line 26  Line 26 
26  #include <string.h>  #include <string.h>
27  #include <mailutils/argcv.h>  #include <mailutils/argcv.h>
28    
 struct mh_argp_data  
 {  
   struct mh_option *mh_option;  
   int (*handler)();  
   void *closure;  
   char *doc;  
 };  
   
29  static error_t  static error_t
30  parse_opt (int key, char *arg, struct argp_state *state)  parse_opt (int key, char *arg, struct argp_state *state)
31  {  {
# Line 41  parse_opt (int key, char *arg, struct ar Line 33  parse_opt (int key, char *arg, struct ar
33    switch (key)    switch (key)
34      {      {
35      case ARGP_KEY_INIT:      case ARGP_KEY_INIT:
       while ((key = mh_getopt (state->argc, state->argv, data->mh_option,  
                                data->doc))  
              != EOF  
              && key != '?')  
         {  
           data->handler (key, mh_optarg, data->closure);  
         }  
       state->next = mh_optind;  
36        break;        break;
37    
38      case ARGP_KEY_ARG:      case ARGP_KEY_ARG:
# Line 125  mh_argp_parse (int argc, char **argv, Line 109  mh_argp_parse (int argc, char **argv,
109        for (j = 1; i < _argc; i++, j++)        for (j = 1; i < _argc; i++, j++)
110          _argv[i] = argv[j];          _argv[i] = argv[j];
111        _argv[i] = NULL;        _argv[i] = NULL;
112          mh_argv_preproc (_argc, _argv, &data);
113        argp_parse (&argp, _argc, _argv, 0, &index, &data);        argp_parse (&argp, _argc, _argv, 0, &index, &data);
114        free (_argv);        free (_argv);
115        extra = index < _argc;        extra = index < _argc;
# Line 134  mh_argp_parse (int argc, char **argv, Line 119  mh_argp_parse (int argc, char **argv,
119      }      }
120    else    else
121      {      {
122          mh_argv_preproc (argc, argv, &data);
123        argp_parse (&argp, argc, argv, 0, &index, &data);        argp_parse (&argp, argc, argv, 0, &index, &data);
124        extra = index < argc;        extra = index < argc;
125      }      }

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26