DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9154>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9154 Requesting Xerces Version Macro ------- Additional Comments From [EMAIL PROTECTED] 2002-05-17 14:55 ------- This looks great, FOR UNIX. It just does not work for Windows. Could you modify XercesDefs.hpp to do the following instead (much more useful): /** DO NOT MODIFY BELOW THIS LINE */ // --------------------------------------------------------------------------- // T W O A R G U M E N T C O N C A T E N A T I O N M A C R O S // two argument concatenation routines #define CAT2_SEP_UNDERSCORE(a, b) #a "_" #b #define CAT2_SEP_PERIOD(a, b) #a "." #b #define CAT2_SEP_NIL(a, b) #a #b #define CAT2_RAW_NUMERIC(a, b) a ## b // two argument macro invokers #define INVK_CAT2_SEP_UNDERSCORE(a,b) CAT2_SEP_UNDERSCORE(a,b) #define INVK_CAT2_SEP_PERIOD(a,b) CAT2_SEP_PERIOD(a,b) #define INVK_CAT2_STR_SEP_NIL(a,b) CAT2_SEP_NIL(a,b) #define INVK_CAT2_RAW_NUMERIC(a,b) CAT2_RAW_NUMERIC(a,b) // --------------------------------------------------------------------------- // T H R E E A R G U M E N T C O N C A T E N A T I O N M A C R O S // three argument concatenation routines #define CAT3_SEP_UNDERSCORE(a, b, c) #a "_" #b "_" #c #define CAT3_SEP_PERIOD(a, b, c) #a "." #b "." #c #define CAT3_SEP_NIL(a, b, c) #a #b #c #define CAT3_RAW_NUMERIC(a, b, c) a ## b ## c // three argument macro invokers #define INVK_CAT3_SEP_UNDERSCORE(a,b,c) CAT3_SEP_UNDERSCORE(a,b,c) #define INVK_CAT3_SEP_PERIOD(a,b,c) CAT3_SEP_PERIOD(a,b,c) #define INVK_CAT3_SEP_NIL(a,b,c) CAT3_SEP_NIL(a,b,c) #define INVK_CAT3_RAW_NUMERIC(a,b,c) CAT3_RAW_NUMERIC(a,b,c) // --------------------------------------------------------------------------- // X E R C E S V E R S I O N S P E C I F I C A T I O N /** * MODIFY THESE NUMERIC VALUES TO COINCIDE WITH XERCES VERSION * AND DO NOT MODIFY ANYTHING ELSE IN THIS VERSION HEADER FILE */ #define XERCES_VERSION_MAJOR 1 #define XERCES_VERSION_MINOR 7 #define XERCES_VERSION_REVSN 0 // --------------------------------------------------------------------------- // X E R C E S V E R S I O N I N F O R M A T I O N // Xerces version strings; these particular macros cannot be used for // conditional compilation as they are not numeric constants #define XERCES_FULLVERSIONSTR INVK_CAT3_SEP_UNDERSCORE (XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVSN) #define XERCES_FULLVERSIONDOT INVK_CAT3_SEP_PERIOD (XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVSN) #define XERCES_FULLVERSIONNUM INVK_CAT3_SEP_NIL (XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVSN) #define XERCES_VERSIONSTR INVK_CAT2_SEP_UNDERSCORE (XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR) // original from Xerces header #define Xerces_DLLVersionStr XERCES_FULLVERSIONSTR const char* const gXercesVersionStr = XERCES_VERSIONSTR; const char* const gXercesFullVersionStr = XERCES_FULLVERSIONSTR; const unsigned int gXercesMajVersion = XERCES_VERSION_MAJOR; const unsigned int gXercesMinVersion = XERCES_VERSION_MINOR; const unsigned int gXercesRevision = XERCES_VERSION_REVSN; // Xerces version numeric constants that can be used for conditional // compilation purposes. #define _XERCES_VERSION INVK_CAT3_RAW_NUMERIC (XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVSN) // to enable test harness #define TEST_HARNESS 1 // features of test harness #define TEST_CONDITIONAL_COMPILATION 1 #ifdef TEST_HARNESS int main(int argc, char* argv[]) { // test getting full version information, in various flavors printf("Full Version Information:\n"); printf("\tXERCES_FULLVERSIONSTR: %s\n", XERCES_FULLVERSIONSTR ); printf("\tXERCES_FULLVERSIONDOT: %s\n", XERCES_FULLVERSIONDOT ); printf("\tXERCES_FULLVERSIONNUM: %s\n", XERCES_FULLVERSIONNUM ); printf("\tXerces_DLLVersionStr: %s\n", Xerces_DLLVersionStr ); printf("\tgXercesFullVersionStr: %s\n", gXercesFullVersionStr ); printf("\t_XERCES_VERSION: %D\n", _XERCES_VERSION ); // test getting basic version information, in various flavors printf("Basic Version Information:\n"); printf("\tXERCES_VERSIONSTR: %D\n", XERCES_VERSIONSTR ); printf("\tgXercesVersionStr: %s\n", gXercesVersionStr ); #ifdef TEST_CONDITIONAL_COMPILATION // test conditional compilation here #if _XERCES_VERSION > 160 printf("detected version 1.7.0\n"); #else printf("did not detect version 1.7.0\n"); #endif // _XERCES_VERSION == 170 #endif return 0; } #endif // TEST_HARNESS --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
