summaryrefslogtreecommitdiffstats
path: root/eurephiadm/argparser.h
diff options
context:
space:
mode:
Diffstat (limited to 'eurephiadm/argparser.h')
-rw-r--r--eurephiadm/argparser.h33
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);