Index: ut_string.cpp
===================================================================
RCS file: /usr/local/cvsroot/abicn/src/af/util/xp/ut_string.cpp,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -c -r1.1.1.2 -r1.2
*** ut_string.cpp	2000/07/07 14:21:57	1.1.1.2
--- ut_string.cpp	2000/07/10 11:40:53	1.2
***************
*** 28,33 ****
--- 28,35 ----
  #include "ut_string.h"
  #include "ut_debugmsg.h"
  #include "ut_growbuf.h"
+ #include "ut_mbtowc.h"
+ #include "ut_wctomb.h"
  
  //////////////////////////////////////////////////////////////////
  // char * UT_catPathname(const char * szPath, const char * szFile);
***************
*** 578,585 ****
  	UT_UCSChar * d 		= dest;
  	unsigned char * s	= (unsigned char *) src;
  
  	while (*s != NULL)
! 		*d++ = *s++;
  	*d = NULL;
  
  	return dest;
--- 580,592 ----
  	UT_UCSChar * d 		= dest;
  	unsigned char * s	= (unsigned char *) src;
  
+ 	UT_Mbtowc m;
+ 	wchar_t wc;
  	while (*s != NULL)
! 	  {
! 		if(m.mbtowc(wc,*s))*d++=wc;
! 		s++;
! 	  }
  	*d = NULL;
  
  	return dest;
***************
*** 593,600 ****
  	char * 			d = dest;
  	UT_UCSChar * 	s = (UT_UCSChar *) src;
  
  	while (*s != NULL)
! 	    *d++ = *s++;
  	*d = NULL;
  	
  	return dest;
--- 600,612 ----
  	char * 			d = dest;
  	UT_UCSChar * 	s = (UT_UCSChar *) src;
  
+ 	UT_Wctomb w;
  	while (*s != NULL)
! 	  {
! 		int length;
! 		if(w.wctomb(d,length,*s++))
! 		  d+=length;
! 	  }
  	*d = NULL;
  	
  	return dest;
***************
*** 613,625 ****
  
  UT_Bool UT_UCS_cloneString_char(UT_UCSChar ** dest, const char * src)
  {
! 	UT_uint32 length = strlen(src) + 1;
! 	*dest = (UT_UCSChar *)calloc(length,sizeof(UT_UCSChar));
! 	if (!*dest)
! 		return UT_FALSE;
! 	UT_UCS_strcpy_char(*dest, src);
  
! 	return UT_TRUE;
  }
  
  // convert each character in a string to ASCII uppercase
--- 625,648 ----
  
  UT_Bool UT_UCS_cloneString_char(UT_UCSChar ** dest, const char * src)
  {
!   UT_uint32 length = MB_LEN_MAX*strlen(src) + 1;
!   *dest = (UT_UCSChar *)calloc(length,sizeof(UT_UCSChar));
!   if (!*dest)
! 	return UT_FALSE;
!   UT_UCSChar * d= *dest;
!   unsigned char * s	= (unsigned char *) src;
!   
!   UT_Mbtowc m;
!   wchar_t wc;
  
!   while (*s != NULL)
! 	{
! 	  if(m.mbtowc(wc,*s))*d++=wc;
! 	  s++;
! 	}
!   *d = NULL;  
!   
!   return UT_TRUE;
  }
  
  // convert each character in a string to ASCII uppercase
