1 ////////////////////////////////////////////////////////
5 // Settting and Loading Options
8 // Maarten Bosma, 09.01.2004
9 // maarten.paul@bosma.de
11 ////////////////////////////////////////////////////////////////////
13 #include "package.hpp"
20 int PML_XmlDownload (pTree tree
, const char* url
, void* usrdata
,
21 XML_StartElementHandler start
, XML_EndElementHandler end
, XML_CharacterDataHandler text
) ;
24 // expat callback for start of a "node" tag
25 void opt_start (void* usrdata
, const char* tag
, const char** arg
)
27 TREE
* tree
= (TREE
*)usrdata
;
29 if (!strcmp(tag
, "source"))
31 tree
->sources
.push_back((char*)NULL
);
32 tree
->field
= &tree
->sources
.back();
36 // expat callback for end of a "node" tag
37 void opt_end (void* usrdata
, const char* tag
)
39 TREE
* tree
= (TREE
*)usrdata
;
44 // expat callback for end of a "node" tag
45 void opt_text (void* usrdata
, const char* data
, int len
)
47 TREE
* tree
= (TREE
*)usrdata
;
52 *tree
->field
= new char[len
+1];
53 strncpy(*tree
->field
, data
, len
);
54 (*tree
->field
)[len
] = '\0';
58 // ! ! ! F I X M E ! ! ! //
60 int CreateOptions (TREE* tree)
62 ofstream file ("options.xml");
64 Log("* Creating options.xml from Resources");
66 HRSRC hres = FindResource(GetModuleHandle(L"package"), MAKEINTRESOURCE(123), RT_RCDATA);
69 Log("! ERROR: Could not load it !");
73 MessageBox(0,(WCHAR*)LockResource(LoadResource(NULL, hres)), 0, 0); // is empty
74 //file << (WCHAR*)LockResource(LoadResource(NULL, hres));
80 char* PML_Download (pTree
, const char* url
, const char* server
, const char* filename
);
82 int CreateOptions (TREE
* tree
)
84 Log("* Load options.xml from the Internet (Temporary Hack)");
86 CopyFileA( PML_Download(tree
, "http://svn.reactos.org/svn/*checkout*/reactos/trunk/rosapps/packmgr/lib/options.xml", NULL
, "options.xml"), "options.xml", TRUE
);
91 int LoadOptions (TREE
* tree
)
95 error
= PML_XmlDownload(tree
, "file://options.xml", (void*)tree
, opt_start
, opt_end
, opt_text
);
100 return PML_XmlDownload(tree
, "file://options.xml", (void*)tree
, opt_start
, opt_end
, opt_text
);