amassari    2004/01/06 13:52:28

  Modified:    c/src/xercesc/util/Transcoders/Win32 Win32TransService.cpp
  Log:
  Replaced the call to wcstombs using a NULL target buffer with the equivalent call to 
WideCharToMultiByte (bug# 25768)
  
  Revision  Changes    Path
  1.17      +4 -24     
xml-xerces/c/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp
  
  Index: Win32TransService.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- Win32TransService.cpp     24 Dec 2003 15:24:15 -0000      1.16
  +++ Win32TransService.cpp     6 Jan 2004 21:52:28 -0000       1.17
  @@ -867,15 +867,7 @@
       if (!srcText)
           return 0;
   
  -    unsigned int retVal = -1;
  -    
  -    #if defined(XML_METROWERKS)
  -     const unsigned int srcLen = ::wcslen(srcText);
  -     retVal = ::wcsmbslen(srcText, srcLen);
  -    #else
  -             retVal = ::wcstombs(0, srcText, 0);
  -    #endif
  -    
  +    const unsigned int retVal = ::WideCharToMultiByte(CP_ACP, 0, srcText, -1, NULL, 
0, NULL, NULL);
       if (retVal == (unsigned int)-1)
           return 0;
       return retVal;
  @@ -892,17 +884,7 @@
       if (*toTranscode)
       {
           // Calc the needed size
  -        unsigned int neededLen;
  -        
  -       #if defined(XML_METROWERKS)
  -             const unsigned int srcLen = ::wcslen(toTranscode);
  -             neededLen = ::wcsmbslen(toTranscode, srcLen);
  -         #else
  -             neededLen = ::wcstombs(0, toTranscode, 0);
  -         #endif
  -
  -        if (neededLen == (unsigned int)-1)
  -            return 0;
  +        const unsigned int neededLen = calcRequiredSize(toTranscode);
   
           // Allocate a buffer of that size plus one for the null and transcode
           retVal = new char[neededLen + 1];
  @@ -929,9 +911,7 @@
       if (*toTranscode)
       {
           // Calc the needed size
  -        const unsigned int neededLen = ::wcstombs(0, toTranscode, 0);
  -        if (neededLen == (unsigned int)-1)
  -            return 0;
  +        const unsigned int neededLen = calcRequiredSize(toTranscode, manager);
   
           // Allocate a buffer of that size plus one for the null and transcode
           retVal = (char*) manager->allocate((neededLen + 1) * sizeof(char)); //new 
char[neededLen + 1];
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to