aboutsummaryrefslogtreecommitdiff
path: root/src/parsec/include/e_getopt.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/parsec/include/e_getopt.h')
-rw-r--r--src/parsec/include/e_getopt.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/parsec/include/e_getopt.h b/src/parsec/include/e_getopt.h
new file mode 100644
index 0000000..48b5121
--- /dev/null
+++ b/src/parsec/include/e_getopt.h
@@ -0,0 +1,55 @@
+/*
+ * PARSEC HEADER: e_getopt.h
+ */
+
+#ifndef _E_GETOPT_H_
+#define _E_GETOPT_H_
+
+
+// command line options table entry
+
+struct cli_option_s {
+
+ const char* opt_short;
+ const char* opt_long;
+
+ dword _mksiz32;
+
+ byte _dummy;
+ byte num_int;
+ byte num_float;
+ byte num_string;
+
+ int (*exec_set)();
+ int (*exec_int)(int*);
+ int (*exec_float)(float*);
+ int (*exec_string)(char**);
+};
+
+
+// application name option table entry
+
+struct app_option_s {
+
+ const char* appname;
+ void (*appmain)(int,char**);
+};
+
+
+// external functions
+
+int OPT_RegisterSetOption( const char *optshort, const char *optlong, int (*func)() );
+int OPT_RegisterIntOption( const char *optshort, const char *optlong, int (*func)(int*) );
+int OPT_RegisterFloatOption( const char *optshort, const char *optlong, int (*func)(float*) );
+int OPT_RegisterStringOption( const char *optshort, const char *optlong, int (*func)(char**) );
+int OPT_RegisterOption( cli_option_s *regopt );
+int OPT_RegisterApplication( const char *appname, void (*appmain)(int,char**) );
+
+void OPT_ClearOptions();
+
+int OPT_ExecRegisteredOptions( int argc, char **argv );
+
+
+#endif // _E_GETOPT_H_
+
+