mlang: Improve IMLangLineBreakConsole::BreakLineA for the ASCII codepage.
Hans Leidekker
hans at codeweavers.com
Wed Nov 27 03:59:23 CST 2013
---
dlls/mlang/mlang.c | 25 +++++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/dlls/mlang/mlang.c b/dlls/mlang/mlang.c
index 96ccbf7..f4a689c 100644
--- a/dlls/mlang/mlang.c
+++ b/dlls/mlang/mlang.c
@@ -36,6 +36,7 @@
#include "objbase.h"
#include "rpcproxy.h"
#include "mlang.h"
+#include "mimeole.h"
#include "wine/unicode.h"
#include "wine/debug.h"
@@ -44,8 +45,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(mlang);
#include "initguid.h"
-#define CP_UNICODE 1200
-
static HRESULT MultiLanguage_create(IUnknown *pUnkOuter, LPVOID *ppObj);
static HRESULT MLangConvertCharset_create(IUnknown *outer, void **obj);
static HRESULT EnumRfc1766_create(LANGID LangId, IEnumRfc1766 **ppEnum);
@@ -3484,10 +3483,28 @@ static HRESULT WINAPI fnIMLangLineBreakConsole_BreakLineA(
LONG* pcchLine,
LONG* pcchSkip)
{
+ LONG i, line = cchSrc, skip = 0;
+
FIXME("(%p)->%i %i %s %i %i %p %p\n", iface, locale, uCodePage, debugstr_an(pszSrc,cchSrc), cchSrc, cMaxColumns, pcchLine, pcchSkip);
- *pcchLine = cchSrc;
- *pcchSkip = 0;
+ if (uCodePage == CP_USASCII && cchSrc > cMaxColumns)
+ {
+ for (line = cMaxColumns, i = cMaxColumns - 1; i >= 0; i--)
+ {
+ if (pszSrc[i] == ' ')
+ {
+ while (i >= 0 && pszSrc[i] == ' ')
+ {
+ i--;
+ line--;
+ skip++;
+ }
+ break;
+ }
+ }
+ }
+ *pcchLine = line;
+ *pcchSkip = skip;
return S_OK;
}
--
1.8.4.3
More information about the wine-patches
mailing list