diff options
Diffstat (limited to 'eurephiadm/argparser.h')
-rw-r--r-- | eurephiadm/argparser.h | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/eurephiadm/argparser.h b/eurephiadm/argparser.h index ceef749..76c8d0b 100644 --- a/eurephiadm/argparser.h +++ b/eurephiadm/argparser.h @@ -19,6 +19,15 @@ * */ +/** + * @file argparser.h + * @author David Sommerseth <dazo@users.sourceforge.net> + * @date 2008-12-04 + * + * @brief A simple argument parser, inspired by getopt. + * + */ + #ifndef EUREPHIA__ARGPARSE_H #define EUREPHIA__ARGPARSE_H @@ -28,17 +37,29 @@ # endif #endif -#define MAX_ARGUMENTS 64 +#define MAX_ARGUMENTS 64 /**< Defines the maximum arguments the parsers handles */ typedef struct { - char *longarg; - char *shortarg; - int param; -} e_options; + char *longarg; /**< char* containing the valid long argument */ + char *shortarg; /**< char* containing the short argument */ + int param; /**< int containing the number of parameters this argument takes */ +} e_options; /**< The long and short arguments must contain the leading '-' character(s) */ -extern char *optargs[MAX_ARGUMENTS]; +extern char *optargs[MAX_ARGUMENTS]; /**< Contains the parameters of an argument, if param > 0 */ int _eurephia_getopt(const char *module, int *curarg, int argc, char **argv, e_options *argopts); +/** + * Parses an argument and prepares the char **optargs array with parameters to the arguments. + * Macro for the internal _eurephia_getopt(), which automatically sets the const char *module + * parameter. + * + * @param ca pointer to the argument index counter which gets updated during parsing. + * @param ac Input argument counter + * @param av Input argument array (char **) + * @param opts e_options struct array containing valid argument + * + * @return returns the short arg value on success, or -1 on failure. + */ #define eurephia_getopt(ca, ac, av, opts) _eurephia_getopt(MODULE, ca, ac, av, opts) size_t eurephia_arraycp(int stidx, int inargc, char **inargv, char **outargv, size_t outsize); |