peiyongz 2002/09/23 14:03:06 Modified: c/src/xercesc/util/MsgLoaders/MsgCatalog MsgCatalogLoader.hpp MsgCatalogLoader.cpp Log: Build MsgCatalog on Solaris Revision Changes Path 1.2 +9 -5 xml-xerces/c/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.hpp Index: MsgCatalogLoader.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MsgCatalogLoader.hpp 1 Feb 2002 22:22:21 -0000 1.1 +++ MsgCatalogLoader.hpp 23 Sep 2002 21:03:06 -0000 1.2 @@ -56,8 +56,11 @@ /* * $Log$ - * Revision 1.1 2002/02/01 22:22:21 peiyongz - * Initial revision + * Revision 1.2 2002/09/23 21:03:06 peiyongz + * Build MsgCatalog on Solaris + * + * Revision 1.1.1.1 2002/02/01 22:22:21 peiyongz + * sane_include * * Revision 1.3 2000/03/02 19:55:16 roddey * This checkin includes many changes done while waiting for the @@ -103,14 +106,14 @@ ( const XMLMsgLoader::XMLMsgId msgToLoad , XMLCh* const toFill - , const unsigned long maxChars + , const unsigned int maxChars ); virtual bool loadMsg ( const XMLMsgLoader::XMLMsgId msgToLoad , XMLCh* const toFill - , const unsigned long maxChars + , const unsigned int maxChars , const XMLCh* const repText1 , const XMLCh* const repText2 = 0 , const XMLCh* const repText3 = 0 @@ -121,7 +124,7 @@ ( const XMLMsgLoader::XMLMsgId msgToLoad , XMLCh* const toFill - , const unsigned long maxChars + , const unsigned int maxChars , const char* const repText1 , const char* const repText2 = 0 , const char* const repText3 = 0 @@ -148,8 +151,9 @@ // fMsgDomain // This is the name of the error domain that this loader is for. // ----------------------------------------------------------------------- - nl_catd fCatalogHandle; - XMLCh* fMsgDomain; + nl_catd fCatalogHandle; + XMLCh* fMsgDomain; + unsigned int fMsgSet; }; 1.2 +49 -34 xml-xerces/c/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp Index: MsgCatalogLoader.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MsgCatalogLoader.cpp 1 Feb 2002 22:22:21 -0000 1.1 +++ MsgCatalogLoader.cpp 23 Sep 2002 21:03:06 -0000 1.2 @@ -56,8 +56,11 @@ /* * $Log$ - * Revision 1.1 2002/02/01 22:22:21 peiyongz - * Initial revision + * Revision 1.2 2002/09/23 21:03:06 peiyongz + * Build MsgCatalog on Solaris + * + * Revision 1.1.1.1 2002/02/01 22:22:21 peiyongz + * sane_include * * Revision 1.7 2001/10/09 12:19:44 tng * Leak fix: can call transcode directly instead of using copyString. @@ -108,36 +111,49 @@ // --------------------------------------------------------------------------- // Public Constructors and Destructor // --------------------------------------------------------------------------- -MsgCatalogLoader::MsgCatalogLoader(const XMLCh* const msgDomain) : - - fCatalogHandle(0) - , fMsgDomain(0) +MsgCatalogLoader::MsgCatalogLoader(const XMLCh* const msgDomain) +:fCatalogHandle(0) +,fMsgDomain(0) +,fMsgSet(0) { + if (XMLString::compareString(msgDomain, XMLUni::fgXMLErrDomain) + && XMLString::compareString(msgDomain, XMLUni::fgExceptDomain) + && XMLString::compareString(msgDomain, XMLUni::fgValidityDomain)) + { + char* msgDom = XMLString::transcode(msgDomain); + XMLPlatformUtils::panic(XMLPlatformUtils::Panic_UnknownMsgDomain); + } + // Try to get the module handle - char* tempLoc = setlocale(LC_ALL, ""); + char* tempLoc = setlocale(LC_ALL, ""); char catfile[256]; - if (XMLPlatformUtils::fgLibLocation) { - strcpy(catfile, XMLPlatformUtils::fgLibLocation); - strcat(catfile, "/msg/"); - strcat(catfile, "XMLMessages.cat"); - } - fCatalogHandle = catopen(catfile , 0); + + strcpy(catfile, getenv("XERCESCROOT")); + strcat(catfile, "/lib/msg/XMLMessages.cat"); + + fCatalogHandle = catopen(catfile , 0); if ((int)fCatalogHandle == -1) { // Probably have to call panic here - printf("Could not open catalog XMLMessages\n"); - // TBD: Tell user what the locale is - exit(1); + printf("Could not open catalog XMLMessages\n"); + // TBD: Tell user what the locale is + exit(1); } fMsgDomain = XMLString::replicate(msgDomain); + + if (!XMLString::compareString(fMsgDomain, XMLUni::fgXMLErrDomain)) + fMsgSet = CatId_XMLErrs; + else if (!XMLString::compareString(fMsgDomain, XMLUni::fgExceptDomain)) + fMsgSet = CatId_XMLExcepts; + else if (!XMLString::compareString(fMsgDomain, XMLUni::fgValidityDomain)) + fMsgSet = CatId_XMLValid; } MsgCatalogLoader::~MsgCatalogLoader() { - if (fCatalogHandle) - catclose( fCatalogHandle ); - delete fMsgDomain; + catclose(fCatalogHandle); + delete [] fMsgDomain; } @@ -145,29 +161,28 @@ // Implementation of the virtual message loader API // --------------------------------------------------------------------------- bool MsgCatalogLoader::loadMsg(const XMLMsgLoader::XMLMsgId msgToLoad - , XMLCh* const toFill - , const unsigned long maxChars) + , XMLCh* const toFill + , const unsigned int maxChars) { - int msgSet = CatId_XMLErrs; - if (!XMLString::compareString(fMsgDomain, XMLUni::fgXMLErrDomain)) - msgSet = CatId_XMLErrs; - else if (!XMLString::compareString(fMsgDomain, XMLUni::fgExceptDomain)) - msgSet = CatId_XMLExcepts; - else if (!XMLString::compareString(fMsgDomain, XMLUni::fgValidityDomain)) - msgSet = CatId_XMLValid; - char msgString[100]; - sprintf(msgString, "Could not find message ID %d from message set %d\n", msgToLoad, msgSet); - char* catMessage = catgets( fCatalogHandle, msgSet, (int)msgToLoad, msgString); - XMLString::transcode(catMessage, toFill, maxChars); + sprintf(msgString, "Could not find message ID %d from message set %d\n", msgToLoad, fMsgSet); + char* catMessage = catgets( fCatalogHandle, fMsgSet, (int)msgToLoad, msgString); + + // catgets returns a pointer to msgString if it fails to locate the message + // from the message catalog + if (XMLString::compareString(catMessage, msgString) == 0) + return false; + else + { + XMLString::transcode(catMessage, toFill, maxChars); + return true; + } - return true; } - bool MsgCatalogLoader::loadMsg(const XMLMsgLoader::XMLMsgId msgToLoad , XMLCh* const toFill - , const unsigned long maxChars + , const unsigned int maxChars , const XMLCh* const repText1 , const XMLCh* const repText2 , const XMLCh* const repText3 @@ -185,7 +200,7 @@ bool MsgCatalogLoader::loadMsg(const XMLMsgLoader::XMLMsgId msgToLoad , XMLCh* const toFill - , const unsigned long maxChars + , const unsigned int maxChars , const char* const repText1 , const char* const repText2 , const char* const repText3
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]