Jactry Zeng : riched20: Use codepage in ME_ToUnicode.
Alexandre Julliard
julliard at winehq.org
Mon Jan 27 13:32:54 CST 2014
Module: wine
Branch: master
Commit: eb8f47518eae395ea10cd5defd744dfe54e83fbe
URL: http://source.winehq.org/git/wine.git/?a=commit;h=eb8f47518eae395ea10cd5defd744dfe54e83fbe
Author: Jactry Zeng <jactry92 at gmail.com>
Date: Tue Jan 21 08:42:58 2014 +0800
riched20: Use codepage in ME_ToUnicode.
---
dlls/riched20/editor.c | 21 +++++++++++----------
dlls/riched20/editor.h | 4 ++--
dlls/riched20/string.c | 12 ++++++------
3 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index 119061f..85848bc 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -3364,10 +3364,9 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
len = lParam ? strlen((char *)lParam) : 0;
}
} else {
- /* FIXME: make use of pStruct->codepage in the to unicode translation */
- wszText = ME_ToUnicode(bUnicode, (void *)lParam, &len);
+ wszText = ME_ToUnicode(pStruct->codepage, (void *)lParam, &len);
ME_InsertTextFromCursor(editor, 0, wszText, len, style);
- ME_EndToUnicode(bUnicode, wszText);
+ ME_EndToUnicode(pStruct->codepage, wszText);
}
if (bSelection) {
@@ -3555,7 +3554,8 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
int from, to, nStartCursor;
ME_Style *style;
int len = 0;
- LPWSTR wszText = ME_ToUnicode(unicode, (void *)lParam, &len);
+ LONG codepage = unicode ? CP_UNICODE : CP_ACP;
+ LPWSTR wszText = ME_ToUnicode(codepage, (void *)lParam, &len);
TRACE("EM_REPLACESEL - %s\n", debugstr_w(wszText));
nStartCursor = ME_GetSelectionOfs(editor, &from, &to);
@@ -3570,7 +3570,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
*/
if (len>0 && wszText[len-1] == '\n')
ME_ClearTempStyle(editor);
- ME_EndToUnicode(unicode, wszText);
+ ME_EndToUnicode(codepage, wszText);
ME_CommitUndo(editor);
ME_UpdateSelectionLinkAttribute(editor);
if (!wParam)
@@ -3626,7 +3626,8 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
else
{
int textLen;
- LPWSTR wszText = ME_ToUnicode(unicode, (void *)lParam, &textLen);
+ LONG codepage = unicode ? CP_UNICODE : CP_ACP;
+ LPWSTR wszText = ME_ToUnicode(codepage, (void *)lParam, &textLen);
TRACE("WM_SETTEXT - %s\n", debugstr_w(wszText)); /* debugstr_w() */
if (textLen > 0)
{
@@ -3643,7 +3644,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
}
ME_InsertTextFromCursor(editor, 0, wszText, len, editor->pBuffer->pDefaultStyle);
}
- ME_EndToUnicode(unicode, wszText);
+ ME_EndToUnicode(codepage, wszText);
}
}
else
@@ -4035,8 +4036,8 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
{
WCHAR *textW;
int len;
-
- textW = ME_ToUnicode(unicode, text, &len);
+ LONG codepage = unicode ? CP_UNICODE : CP_ACP;
+ textW = ME_ToUnicode(codepage, text, &len);
if (!(editor->styleFlags & ES_MULTILINE))
{
len = 0;
@@ -4044,7 +4045,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
len++;
}
ME_InsertTextFromCursor(editor, 0, textW, len, editor->pBuffer->pDefaultStyle);
- ME_EndToUnicode(unicode, textW);
+ ME_EndToUnicode(codepage, textW);
ME_SetCursorToStart(editor, &editor->pCursors[0]);
ME_SetCursorToStart(editor, &editor->pCursors[1]);
}
diff --git a/dlls/riched20/editor.h b/dlls/riched20/editor.h
index ae8b81a..af7291f 100644
--- a/dlls/riched20/editor.h
+++ b/dlls/riched20/editor.h
@@ -110,8 +110,8 @@ BOOL ME_InsertString(ME_String *s, int ofs, const WCHAR *insert, int len) DECLSP
#define CP_UNICODE 1200
/* smart helpers for A<->W conversions, they reserve/free memory and call MultiByte<->WideChar functions */
-LPWSTR ME_ToUnicode(BOOL unicode, LPVOID psz, INT *len) DECLSPEC_HIDDEN;
-void ME_EndToUnicode(BOOL unicode, LPVOID psz) DECLSPEC_HIDDEN;
+LPWSTR ME_ToUnicode(LONG codepage, LPVOID psz, INT *len) DECLSPEC_HIDDEN;
+void ME_EndToUnicode(LONG codepage, LPVOID psz) DECLSPEC_HIDDEN;
static inline int ME_IsWSpace(WCHAR ch)
{
diff --git a/dlls/riched20/string.c b/dlls/riched20/string.c
index f4cd320..12e4ad7 100644
--- a/dlls/riched20/string.c
+++ b/dlls/riched20/string.c
@@ -172,30 +172,30 @@ ME_CallWordBreakProc(ME_TextEditor *editor, WCHAR *str, INT len, INT start, INT
}
}
-LPWSTR ME_ToUnicode(BOOL unicode, LPVOID psz, INT *len)
+LPWSTR ME_ToUnicode(LONG codepage, LPVOID psz, INT *len)
{
*len = 0;
if (!psz) return NULL;
- if (unicode)
+ if (codepage == CP_UNICODE)
{
*len = lstrlenW(psz);
return psz;
}
else {
WCHAR *tmp;
- int nChars = MultiByteToWideChar(CP_ACP, 0, psz, -1, NULL, 0);
+ int nChars = MultiByteToWideChar(codepage, 0, psz, -1, NULL, 0);
if(!nChars) return NULL;
if((tmp = ALLOC_N_OBJ(WCHAR, nChars)) != NULL)
- *len = MultiByteToWideChar(CP_ACP, 0, psz, -1, tmp, nChars) - 1;
+ *len = MultiByteToWideChar(codepage, 0, psz, -1, tmp, nChars) - 1;
return tmp;
}
}
-void ME_EndToUnicode(BOOL unicode, LPVOID psz)
+void ME_EndToUnicode(LONG codepage, LPVOID psz)
{
- if (!unicode)
+ if (codepage != CP_UNICODE)
FREE_OBJ(psz);
}
More information about the wine-cvs
mailing list