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