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]

Reply via email to