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.
|