--- /dev/null
+////////////////////////////////////////////////////////\r
+//\r
+// options.cpp\r
+// \r
+// Settting and Loading Options \r
+//\r
+//\r
+// Maarten Bosma, 09.01.2004\r
+// maarten.paul@bosma.de\r
+//\r
+////////////////////////////////////////////////////////////////////\r
+\r
+#include "package.hpp"\r
+#include "log.h"\r
+#include "expat.h"\r
+\r
+\r
+int PML_XmlDownload (pTree tree, const char* url, void* usrdata,\r
+ XML_StartElementHandler start, XML_EndElementHandler end, XML_CharacterDataHandler text) ;\r
+\r
+\r
+// expat callback for start of a "node" tag\r
+void opt_start (void* usrdata, const char* tag, const char** arg)\r
+{\r
+ TREE* tree = (TREE*)usrdata;\r
+\r
+ if (!strcmp(tag, "source"))\r
+ {\r
+ tree->sources.push_back((char*)NULL);\r
+ tree->field = &tree->sources.back();\r
+ }\r
+}\r
+\r
+// expat callback for end of a "node" tag\r
+void opt_end (void* usrdata, const char* tag)\r
+{\r
+ TREE* tree = (TREE*)usrdata;\r
+\r
+ tree->field = NULL;\r
+}\r
+\r
+// expat callback for end of a "node" tag\r
+void opt_text (void* usrdata, const char* data, int len)\r
+{\r
+ TREE* tree = (TREE*)usrdata;\r
+\r
+ if(!tree->field)\r
+ return;\r
+\r
+ *tree->field = new char[len+1];\r
+ strncpy(*tree->field, data, len);\r
+ (*tree->field)[len] = '\0';\r
+}\r
+\r
+\r
+int CreateOptions (TREE* tree)\r
+{\r
+// string source;\r
+\r
+// ifstream file ("help.txt", ios_base::in);\r
+ Log("* Creating options,xml");\r
+\r
+ return ERR_OK;\r
+}\r
+\r
+int LoadOptions (TREE* tree)\r
+{\r
+ int error;\r
+\r
+ error = PML_XmlDownload(tree, "file://options.xml", (void*)tree, opt_start, opt_end, opt_text);\r
+ if(!error)\r
+ return ERR_OK;\r
+\r
+ CreateOptions(tree);\r
+ return PML_XmlDownload(tree, "file://options.xml", (void*)tree, opt_start, opt_end, opt_text);\r
+}\r