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]