\r
// defines\r
\r
-#define VarNb 16\r
-#define XBOARD (1<<0)\r
-#define UCI (1<<1)\r
-#define PG (1<<2)\r
+#define VarNb 16\r
+#define XBOARD (1<<0)\r
+#define UCI (1<<1)\r
+#define PG (1<<2)\r
+#define OptionNb 256\r
\r
// types\r
\r
int mode;\r
} option_t;\r
\r
+// all non NULL data in an option_list_t should be malloc'ed\r
+// use "my_string_set" to fill it. \r
+\r
+typedef struct {\r
+ option_t options[OptionNb];\r
+ int option_nb;\r
+ int iter;\r
+} option_list_t;\r
+\r
// variables\r
\r
-extern option_t Option[];\r
+extern option_list_t Option[1];\r
\r
// functions\r
\r
-extern void option_init ();\r
\r
-extern bool option_set (const char var[], const char val[]);\r
-extern bool option_set_default(const char var[], const char val[]);\r
-extern const char * option_get (const char var[]);\r
-extern const char * option_get_default(const char var[]);\r
+extern void option_init (option_list_t *option);\r
+\r
+extern void option_init_pg ();\r
+\r
+extern bool option_set (option_list_t *option,\r
+ const char var[],\r
+ const char val[]);\r
+extern bool option_set_default (option_list_t *option,\r
+ const char var[],\r
+ const char val[]);\r
+\r
+extern const char * option_get (option_list_t *option, const char var[]);\r
+extern const char * option_get_default (option_list_t *option, const char var[]);\r
+\r
+extern bool option_get_bool (option_list_t *option, const char var[]);\r
+extern double option_get_double (option_list_t *option, const char var[]);\r
+extern int option_get_int (option_list_t *option, const char var[]);\r
+extern const char * option_get_string (option_list_t *option, const char var[]);\r
+\r
+extern bool option_is_ok (const option_list_t *option);\r
+extern option_t * option_find (option_list_t *option, const char var[]);\r
+extern void option_clear (option_list_t *option);\r
+extern void option_insert (option_list_t *option, option_t *new_option);\r
+\r
+extern void option_start_iter (option_list_t *option);\r
+extern option_t * option_next (option_list_t *option);\r
\r
-extern bool option_get_bool (const char var[]);\r
-extern double option_get_double (const char var[]);\r
-extern int option_get_int (const char var[]);\r
-extern const char * option_get_string (const char var[]);\r
+extern void option_free (option_t *option);\r
\r
#endif // !defined OPTION_H\r
\r