summaryrefslogtreecommitdiff
path: root/ext/rpc/com
diff options
context:
space:
mode:
authorDerick Rethans <derick@php.net>2002-04-25 06:37:22 +0000
committerDerick Rethans <derick@php.net>2002-04-25 06:37:22 +0000
commit4ec1a0365311f1253faaeedefc1eddceae5bfc20 (patch)
treeecfdbd0bc70788fde991c567b20320fcd8797631 /ext/rpc/com
parent4a834dfa4497153a2289363311b6c98108757fea (diff)
downloadphp-git-4ec1a0365311f1253faaeedefc1eddceae5bfc20.tar.gz
- Fix for bug #14353
Diffstat (limited to 'ext/rpc/com')
-rw-r--r--ext/rpc/com/conversion.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ext/rpc/com/conversion.c b/ext/rpc/com/conversion.c
index ddb6dfbca4..e18c464e81 100644
--- a/ext/rpc/com/conversion.c
+++ b/ext/rpc/com/conversion.c
@@ -770,7 +770,7 @@ PHPAPI OLECHAR *php_char_to_OLECHAR(char *C_str, uint strlen, int codepage TSRML
if (strlen == -1) {
/* request needed buffersize */
- strlen = MultiByteToWideChar(codepage, MB_PRECOMPOSED | MB_ERR_INVALID_CHARS, C_str, -1, NULL, 0);
+ strlen = MultiByteToWideChar(codepage, (codepage == CP_UTF8 ? 0 : MB_PRECOMPOSED) | MB_ERR_INVALID_CHARS, C_str, -1, NULL, 0);
} else {
/* \0 terminator */
strlen++;
@@ -780,7 +780,7 @@ PHPAPI OLECHAR *php_char_to_OLECHAR(char *C_str, uint strlen, int codepage TSRML
unicode_str = (OLECHAR *) emalloc(sizeof(OLECHAR) * strlen);
/* convert string */
- error = !MultiByteToWideChar(codepage, MB_PRECOMPOSED | MB_ERR_INVALID_CHARS, C_str, strlen, unicode_str, strlen);
+ error = !MultiByteToWideChar(codepage, (codepage == CP_UTF8 ? 0 : MB_PRECOMPOSED) | MB_ERR_INVALID_CHARS, C_str, strlen, unicode_str, strlen);
} else {
/* return a zero-length string */
unicode_str = (OLECHAR *) emalloc(sizeof(OLECHAR));
@@ -812,13 +812,13 @@ PHPAPI char *php_OLECHAR_to_char(OLECHAR *unicode_str, uint *out_length, int cod
uint length = 0;
/* request needed buffersize */
- uint reqSize = WideCharToMultiByte(codepage, WC_COMPOSITECHECK, unicode_str, -1, NULL, 0, NULL, NULL);
+ uint reqSize = WideCharToMultiByte(codepage, codepage == CP_UTF8 ? 0 : WC_COMPOSITECHECK, unicode_str, -1, NULL, 0, NULL, NULL);
if (reqSize) {
C_str = (char *) emalloc(sizeof(char) * reqSize);
/* convert string */
- length = WideCharToMultiByte(codepage, WC_COMPOSITECHECK, unicode_str, -1, C_str, reqSize, NULL, NULL) - 1;
+ length = WideCharToMultiByte(codepage, codepage == CP_UTF8 ? 0 : WC_COMPOSITECHECK, unicode_str, -1, C_str, reqSize, NULL, NULL) - 1;
} else {
C_str = (char *) emalloc(sizeof(char));
*C_str = 0;