From: <ny...@us...> - 2006-06-23 15:30:32
|
Revision: 60 Author: nyaochi Date: 2006-06-23 08:30:22 -0700 (Fri, 23 Jun 2006) ViewCVS: http://svn.sourceforge.net/pmplib/?rev=60&view=rev Log Message: ----------- [Win32 only] added wchar_t <--> ucs2char_t conversion routines in libucs2. Modified Paths: -------------- branches/branch_0.12/include/ucs2char.h branches/branch_0.12/lib/ucs2/ucs2char_win32.c Modified: branches/branch_0.12/include/ucs2char.h =================================================================== --- branches/branch_0.12/include/ucs2char.h 2006-06-23 15:17:37 UTC (rev 59) +++ branches/branch_0.12/include/ucs2char.h 2006-06-23 15:30:22 UTC (rev 60) @@ -103,15 +103,19 @@ UCS2API ucs2char_t* itoucs2(int value, ucs2char_t *string, int radix); -UCS2API size_t ucs2tombs(char *mbstr, size_t mbs_size, const ucs2char_t *ucs2str, size_t ucs_size); +UCS2API size_t ucs2tombs(char *mbstr, size_t mbs_size, const ucs2char_t *ucs2str, size_t ucs_len); +UCS2API size_t ucs2towcs(wchar_t *wcstr, size_t wcs_len, const ucs2char_t *ucs2str, size_t ucs_len); UCS2API size_t mbstoucs2(ucs2char_t *ucs2str, size_t ucs_size, const char *mbstr, size_t mbs_size); UCS2API size_t mbstoucs2_music(ucs2char_t *ucs2str, size_t ucs_size, const char *mbstr, size_t mbs_size); +UCS2API size_t wcstoucs2(ucs2char_t *ucs2str, size_t ucs_len, const wchar_t *wcstr, size_t wcs_len); UCS2API size_t utf8toucs2(ucs2char_t *ucs2str, size_t ucs_size, const char *mbstr, size_t mbs_size); UCS2API ucs2char_t* mbsdupucs2(const char *mbstr); +UCS2API ucs2char_t* wcsdupucs2(const wchar_t *wcstr); UCS2API ucs2char_t* utf8dupucs2(const char *utf8str); UCS2API ucs2char_t* mbsdupucs2_music(const char *mbstr); UCS2API char *ucs2dupmbs(const ucs2char_t *ucs2str); +UCS2API wchar_t *ucs2dupwcs(const ucs2char_t *ucs2str); UCS2API time_t ucs2stat_mtime(const ucs2char_t *filename); UCS2API uint32_t ucs2stat_size(const ucs2char_t *filename); Modified: branches/branch_0.12/lib/ucs2/ucs2char_win32.c =================================================================== --- branches/branch_0.12/lib/ucs2/ucs2char_win32.c 2006-06-23 15:17:37 UTC (rev 59) +++ branches/branch_0.12/lib/ucs2/ucs2char_win32.c 2006-06-23 15:30:22 UTC (rev 60) @@ -68,11 +68,32 @@ return WideCharToMultiByte(g_codepage, 0, ucs2str, (int)ucs_len, mbstr, (int)mbs_len, NULL, NULL); } +size_t ucs2towcs(wchar_t *wcstr, size_t wcs_len, const ucs2char_t *ucs2str, size_t ucs_len) +{ + if (!wcstr || !wcs_len) { + return ucs_len; + } else { + wcsncpy(wcstr, ucs2str, wcs_len); + return wcs_len; + } +} + size_t mbstoucs2(ucs2char_t *ucs2str, size_t ucs_len, const char *mbstr, size_t mbs_len) { return MultiByteToWideChar(g_codepage, 0, mbstr, (int)mbs_len, ucs2str, (int)ucs_len); } +size_t wcstoucs2(ucs2char_t *ucs2str, size_t ucs_len, const wchar_t *wcstr, size_t wcs_len) +{ + if (!ucs2str || !ucs2str) { + return wcs_len; + } else { + wcsncpy(ucs2str, wcstr, ucs_len); + return ucs_len; + } +} + + size_t mbstoucs2_music(ucs2char_t *ucs2str, size_t ucs_len, const char *mbstr, size_t mbs_len) { return MultiByteToWideChar(g_codepage, 0, mbstr, (int)mbs_len, ucs2str, (int)ucs_len); @@ -91,17 +112,14 @@ return mbsdupucs2(mbstr); } - -ucs2char_t* wcsdupucs2(const wchar_t *wstr) +ucs2char_t* wcsdupucs2(const wchar_t *wcstr) { - /* Just call ucs2dup. */ - return ucs2dup(wstr); + return ucs2dup((const ucs2char_t*)wcstr); } -wchar_t* ucs2dupwcs(const ucs2char_t *ucs2str) +wchar_t *ucs2dupwcs(const ucs2char_t *ucs2str) { - /* Just call ucs2dup. */ - return ucs2dup(ucs2str); + return wcsdup((const wchar_t*)ucs2str); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |