#define PXML_TAGHEAD "<PXML" /* case insensitive; allow for trailing attributes */
#define PXML_TAGFOOT "</PXML>" /* case insensitive */
#define PXML_TAGHEAD "<PXML" /* case insensitive; allow for trailing attributes */
#define PXML_TAGFOOT "</PXML>" /* case insensitive */
+#define PXML_MAXAPPS 50 /* max number of <application>'s within a single PXML */ /* TODO: make this realloc() and dynamicly grow instead.. */
+
+// for DaveC, we will support same-path-as-.pnd file override, that is simple format and not XML
+#define PXML_SAMEPATH_OVERRIDE_FILEEXT ".ovr" /* ./foo/bar.pnd could have overrides in ./foo/bar.ovr */
+
// use this handle to interact with PXML; this hides the mechanics of parsing a PXML file so that
// it can be upgraded with impacting applications
typedef void* pnd_pxml_handle;
/* pxml_fetch() will return NULL on fail, otherwise a valid handle which may be further queried
*/
// use this handle to interact with PXML; this hides the mechanics of parsing a PXML file so that
// it can be upgraded with impacting applications
typedef void* pnd_pxml_handle;
/* pxml_fetch() will return NULL on fail, otherwise a valid handle which may be further queried
*/
-pnd_pxml_handle pnd_pxml_fetch ( char *fullpath );
-pnd_pxml_handle pnd_pxml_fetch_buffer ( char *filename, char *buffer );
+pnd_pxml_handle *pnd_pxml_fetch ( char *fullpath ); // fetch from file
+pnd_pxml_handle *pnd_pxml_fetch_buffer ( char *filename, char *buffer ); // fetch from a buffer
void pnd_pxml_delete ( pnd_pxml_handle h );
/* overrides() allow for customization of a PXML that persists; ie: An application might be sitting
void pnd_pxml_delete ( pnd_pxml_handle h );
/* overrides() allow for customization of a PXML that persists; ie: An application might be sitting
char *pnd_pxml_get_app_name_en ( pnd_pxml_handle h );
char *pnd_pxml_get_app_name_de ( pnd_pxml_handle h );
char *pnd_pxml_get_app_name_it ( pnd_pxml_handle h );
char *pnd_pxml_get_app_name_fr ( pnd_pxml_handle h );
char *pnd_pxml_get_app_name ( pnd_pxml_handle h, char *iso_lang );
char *pnd_pxml_get_unique_id ( pnd_pxml_handle h );
char *pnd_pxml_get_app_name_en ( pnd_pxml_handle h );
char *pnd_pxml_get_app_name_de ( pnd_pxml_handle h );
char *pnd_pxml_get_app_name_it ( pnd_pxml_handle h );
char *pnd_pxml_get_app_name_fr ( pnd_pxml_handle h );
char *pnd_pxml_get_app_name ( pnd_pxml_handle h, char *iso_lang );
char *pnd_pxml_get_unique_id ( pnd_pxml_handle h );
char *pnd_pxml_get_standalone ( pnd_pxml_handle h );
char *pnd_pxml_get_icon ( pnd_pxml_handle h );
char *pnd_pxml_get_description_en ( pnd_pxml_handle h );
char *pnd_pxml_get_standalone ( pnd_pxml_handle h );
char *pnd_pxml_get_icon ( pnd_pxml_handle h );
char *pnd_pxml_get_description_en ( pnd_pxml_handle h );
char *pnd_pxml_get_version_release ( pnd_pxml_handle h );
char *pnd_pxml_get_version_build ( pnd_pxml_handle h );
char *pnd_pxml_get_exec ( pnd_pxml_handle h );
char *pnd_pxml_get_version_release ( pnd_pxml_handle h );
char *pnd_pxml_get_version_build ( pnd_pxml_handle h );
char *pnd_pxml_get_exec ( pnd_pxml_handle h );
char *pnd_pxml_get_main_category ( pnd_pxml_handle h );
char *pnd_pxml_get_subcategory1 ( pnd_pxml_handle h );
char *pnd_pxml_get_subcategory2 ( pnd_pxml_handle h );
char *pnd_pxml_get_main_category ( pnd_pxml_handle h );
char *pnd_pxml_get_subcategory1 ( pnd_pxml_handle h );
char *pnd_pxml_get_subcategory2 ( pnd_pxml_handle h );
char *pnd_pxml_get_clockspeed ( pnd_pxml_handle h );
char *pnd_pxml_get_background ( pnd_pxml_handle h );
char *pnd_pxml_get_startdir ( pnd_pxml_handle h );
char *pnd_pxml_get_clockspeed ( pnd_pxml_handle h );
char *pnd_pxml_get_background ( pnd_pxml_handle h );
char *pnd_pxml_get_startdir ( pnd_pxml_handle h );
+char *pnd_pxml_get_mkdir ( pnd_pxml_handle h );
+char *pnd_pxml_get_info_name ( pnd_pxml_handle h );
+char *pnd_pxml_get_info_type ( pnd_pxml_handle h );
+char *pnd_pxml_get_info_src ( pnd_pxml_handle h );
// for 'set' functions, pass NULL value to delete existing value without setting new one
void pnd_pxml_set_app_name ( pnd_pxml_handle h, char *v );
/* utilities
*/
// for 'set' functions, pass NULL value to delete existing value without setting new one
void pnd_pxml_set_app_name ( pnd_pxml_handle h, char *v );
/* utilities
*/