diff --git a/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp b/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp index 9f21107a48c895eb54281f28fb9adf732ec36294..d438e4969e6e8773254ee07d40aa249a522d9998 100644 --- a/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp +++ b/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.12 2003/02/20 20:20:11 peiyongz + * Allow set user specified error message file location in PlatformUtils::Initialize(). + * * Revision 1.11 2002/12/12 16:46:18 peiyongz * MsgCatalog file name changed. * @@ -154,35 +157,45 @@ MsgCatalogLoader::MsgCatalogLoader(const XMLCh* const msgDomain) } // Prepare the path info - char catpath[1024]; - memset(catpath, 0, sizeof catpath); - char *nlsHome = getenv("XERCESC_NLS_HOME"); + char locationBuf[1024]; + memset(locationBuf, 0, sizeof locationBuf); + const char *nlsHome = XMLMsgLoader::getNLSHome(); + if (nlsHome) { - strcpy(catpath, nlsHome); - strcat(catpath, "/"); + strcpy(locationBuf, nlsHome); + strcat(locationBuf, "/"); } else { - char *altHome = getenv("XERCESCROOT"); - if (altHome) + nlsHome = getenv("XERCESC_NLS_HOME"); + if (nlsHome) { - strcpy(catpath, altHome); - strcat(catpath, "/msg/"); + strcpy(locationBuf, nlsHome); + strcat(locationBuf, "/"); } + else + { + nlsHome = getenv("XERCESCROOT"); + if (nlsHome) + { + strcpy(locationBuf, nlsHome); + strcat(locationBuf, "/msg/"); + } + } } - + // Prepare user-specified locale specific cat file char catuser[1024]; memset(catuser, 0, sizeof catuser); - strcpy(catuser, catpath); + strcpy(catuser, locationBuf); strcat(catuser, "XercesMessages_"); strcat(catuser, XMLMsgLoader::getLocale()); strcat(catuser, ".cat"); char catdefault[1024]; memset(catdefault, 0, sizeof catdefault); - strcpy(catdefault, catpath); + strcpy(catdefault, locationBuf); strcat(catdefault, "XercesMessages_en_US.cat"); /**