char *info_name; // should be a struct..
char *info_filename;
char *info_type;
+ char *version_major;
+ char *version_minor;
+ char *version_release;
+ char *version_build;
+ char *package_version_major;
+ char *package_version_minor;
+ char *package_version_release;
+ char *package_version_build;
} pnd_disco_t;
void pnd_disco_destroy ( pnd_disco_t *p ); // a function name that simply could not be avoided
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 );
+char *pnd_pxml_get_package_version_major ( pnd_pxml_handle h );
+char *pnd_pxml_get_package_version_minor ( pnd_pxml_handle h );
+char *pnd_pxml_get_package_version_release ( pnd_pxml_handle h );
+char *pnd_pxml_get_package_version_build ( 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 );
char *info_name; // should be a struct..
char *info_filename;
char *info_type;
+ char *package_version_major;
+ char *package_version_minor;
+ char *package_version_release;
+ char *package_version_build;
} pnd_pxml_t;
if ( p -> info_filename ) { free ( p -> info_filename ); }
if ( p -> preview_pic1 ) { free ( p -> preview_pic1 ); }
if ( p -> preview_pic2 ) { free ( p -> preview_pic2 ); }
+ if ( p -> version_major ) { free ( p -> version_major ); }
+ if ( p -> version_minor ) { free ( p -> version_minor ); }
+ if ( p -> version_release ) {free ( p -> version_release ); }
+ if ( p -> version_build ) { free ( p -> version_build ); }
+ if ( p -> package_version_major ) { free ( p -> package_version_major ); }
+ if ( p -> package_version_minor ) { free ( p -> package_version_minor ); }
+ if ( p -> package_version_release ) { free ( p -> package_version_release ); }
+ if ( p -> package_version_build ) { free ( p -> package_version_build ); }
return;
}
if ( pnd_pxml_get_info_type ( pxmlh ) ) {
p -> info_type = strdup ( pnd_pxml_get_info_type ( pxmlh ) );
}
+ if ( pnd_pxml_get_version_major ( pxmlh ) ) {
+ p -> version_major = strdup ( pnd_pxml_get_version_major ( pxmlh ) );
+ }
+ if ( pnd_pxml_get_version_minor ( pxmlh ) ) {
+ p -> version_minor = strdup ( pnd_pxml_get_version_minor ( pxmlh ) );
+ }
+ if ( pnd_pxml_get_version_release ( pxmlh ) ) {
+ p -> version_release = strdup ( pnd_pxml_get_version_release ( pxmlh ) );
+ }
+ if ( pnd_pxml_get_version_build ( pxmlh ) ) {
+ p -> version_build = strdup ( pnd_pxml_get_version_build ( pxmlh ) );
+ }
+ if ( pnd_pxml_get_package_version_major ( pxmlh ) ) {
+ p -> package_version_major = strdup ( pnd_pxml_get_package_version_major ( pxmlh ) );
+ }
+ if ( pnd_pxml_get_package_version_minor ( pxmlh ) ) {
+ p -> package_version_minor = strdup ( pnd_pxml_get_package_version_minor ( pxmlh ) );
+ }
+ if ( pnd_pxml_get_package_version_release ( pxmlh ) ) {
+ p -> package_version_release = strdup ( pnd_pxml_get_package_version_release ( pxmlh ) );
+ }
+ if ( pnd_pxml_get_package_version_build ( pxmlh ) ) {
+ p -> package_version_build = strdup ( pnd_pxml_get_package_version_build ( pxmlh ) );
+ }
// look for any PXML overrides, if requested
if ( disco_overrides ) {
if ( p -> execargs ) {
free ( p -> execargs );
}
+ if ( p -> package_version_major ) {
+ free ( p -> package_version_major );
+ }
+ if ( p -> package_version_minor ) {
+ free ( p -> package_version_minor );
+ }
+ if ( p -> package_version_release ) {
+ free ( p -> package_version_release );
+ }
+ if ( p -> package_version_build ) {
+ free ( p -> package_version_build );
+ }
free(p); /*very important!*/
return ( p -> mkdir_sp );
}
+char *pnd_pxml_get_package_version_major ( pnd_pxml_handle h ) {
+ pnd_pxml_t *p = (pnd_pxml_t*) h;
+ return ( p -> package_version_major );
+}
+
+char *pnd_pxml_get_package_version_minor ( pnd_pxml_handle h ) {
+ pnd_pxml_t *p = (pnd_pxml_t*) h;
+ return ( p -> package_version_minor );
+}
+
+char *pnd_pxml_get_package_version_release ( pnd_pxml_handle h ) {
+ pnd_pxml_t *p = (pnd_pxml_t*) h;
+ return ( p -> package_version_release );
+}
+
+char *pnd_pxml_get_package_version_build ( pnd_pxml_handle h ) {
+ pnd_pxml_t *p = (pnd_pxml_t*) h;
+ return ( p -> package_version_build );
+}
+
unsigned char pnd_pxml_is_affirmative ( char *v ) {
if ( ! v ) {
// workaround for package ID's used by some package managers
// get the package ID and store it for each application
char* package_id = NULL;
+ char* package_version_major = NULL;
+ char* package_version_minor = NULL;
+ char* package_version_release = NULL;
+ char* package_version_build = NULL;
pElem = hRoot.FirstChild ( PND_PXML_ENAME_PACKAGE ).Element();
if ( pElem ) {
package_id = pnd_pxml_get_attribute ( pElem, PND_PXML_ATTRNAME_PACKAGE_ID );
+ TiXmlHandle pRoot = TiXmlHandle( pElem );
+ if ( (pElem = pRoot.FirstChild(PND_PXML_ENAME_VERSION).Element()) )
+ {
+ package_version_major = pnd_pxml_get_attribute(pElem, PND_PXML_ATTRNAME_VERMAJOR);
+ package_version_minor = pnd_pxml_get_attribute(pElem, PND_PXML_ATTRNAME_VERMINOR);
+ package_version_release = pnd_pxml_get_attribute(pElem, PND_PXML_ATTRNAME_VERREL);
+ package_version_build = pnd_pxml_get_attribute(pElem, PND_PXML_ATTRNAME_VERBUILD);
+ }
}
// move to applications element then
// give application the package id, if there is one
if( package_id )
app -> package_id = strdup(package_id);
+ if( package_version_major )
+ app -> package_version_major = strdup(package_version_major);
+ if( package_version_minor )
+ app -> package_version_minor = strdup(package_version_minor);
+ if( package_version_release )
+ app -> package_version_release = strdup(package_version_release);
+ if( package_version_build )
+ app -> package_version_build = strdup(package_version_build);
//Get unique ID first.
if ( appwrappermode ) {
if( package_id )
free(package_id);
+ if( package_version_major )
+ free(package_version_major);
+ if( package_version_minor )
+ free(package_version_minor);
+ if( package_version_release )
+ free(package_version_release);
+ if( package_version_build )
+ free(package_version_build);
return (1);
}