1 /***************************************************************************/
2 /*    This code is part of WWW grabber called pavuk                        */
3 /*    Copyright (c) 1997 - 2001 Stefan Ondrejicka                          */
4 /*    Distributed under GPL 2 or later                                     */
5 /***************************************************************************/
6 
7 #ifndef _mopt_h_
8 #define _mopt_h_
9 
10 #include "dlhash.h"
11 #include "config.h"
12 
13 typedef struct
14 {
15   int argc;
16   char **argv;
17   int nparams;
18   cfg_param_t *params;
19   dlhash *short_hash;
20   dlhash *long_hash;
21   int current;
22   int short_offset;
23   int option_type;
24   char *args[4];
25 } mopt_t;
26 
27 #define MOPT_OK          0      /* on success              */
28 #define MOPT_END         1      /* on end                  */
29 #define MOPT_PARAM       2      /* on no option param      */
30 #define MOPT_MISSINGP   -1      /* on bad number of params */
31 #define MOPT_UNKNOWN    -2      /* on unknown param        */
32 #define MOPT_BAD        -3      /* on wrong formated param */
33 #define MOPT_ERR        -4      /* on parser error         */
34 
35 #define MOPT_OPT_NONE           0
36 #define MOPT_OPT_SHORT          1
37 #define MOPT_OPT_LONG           2
38 #define MOPT_OPT_COMPAT         3
39 
40 extern void mopt_init(mopt_t *, int, cfg_param_t *, int, char **);
41 extern void mopt_destroy(mopt_t *);
42 
43 extern int mopt_get_next_param(mopt_t *, cfg_param_t **);
44 
45 #endif
46