Module: wine Branch: master Commit: 820de0bd595656d2f27863232d96104224d6e158 URL: http://source.winehq.org/git/wine.git/?a=commit;h=820de0bd595656d2f27863232d...
Author: Alex Villacís Lasso a_villacis@palosanto.com Date: Mon Apr 21 10:10:05 2008 -0500
riched32: Implement a portion of suggested interpretation of CRLF handling for richedit 1.0 emulation.
Fixes a few todos introduced by previous patch.
---
dlls/riched20/caret.c | 23 +++++++++++++++++++---- dlls/riched32/tests/editor.c | 6 +++--- 2 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/dlls/riched20/caret.c b/dlls/riched20/caret.c index a6a6217..7d50460 100644 --- a/dlls/riched20/caret.c +++ b/dlls/riched20/caret.c @@ -537,10 +537,25 @@ void ME_InsertTextFromCursor(ME_TextEditor *editor, int nCursor, ME_ReleaseStyle(end_run->member.run.style); end_run->member.run.style = tmp_style; p->nOffset = 0; - if(pos-str < len && *pos =='\r') - pos++; - if(pos-str < len && *pos =='\n') - pos++; + if (editor->bEmulateVersion10) { + const WCHAR * tpos; + + tpos = pos; + while (tpos-str < len && *tpos == '\r') { + tpos++; + } + if (tpos-str >= len) { + if (tpos != pos) pos++; + } else if (*tpos == '\n') + pos = tpos + 1; + else + pos++; + } else { + if(pos-str < len && *pos =='\r') + pos++; + if(pos-str < len && *pos =='\n') + pos++; + } if(pos-str <= len) { len -= pos - str; str = pos; diff --git a/dlls/riched32/tests/editor.c b/dlls/riched32/tests/editor.c index f6f04af..906623f 100644 --- a/dlls/riched32/tests/editor.c +++ b/dlls/riched32/tests/editor.c @@ -113,9 +113,9 @@ static void test_WM_SETTEXT() TEST_SETTEXT(TestItem2, TestItem2, 1, 1, 1) TEST_SETTEXT(TestItem3, TestItem3, 2, 1, 1) TEST_SETTEXT(TestItem4, TestItem4, 3, 1, 0) - TEST_SETTEXT(TestItem5, TestItem5, 2, 1, 1) - TEST_SETTEXT(TestItem6, TestItem6, 3, 1, 1) - TEST_SETTEXT(TestItem7, TestItem7, 4, 1, 1) + TEST_SETTEXT(TestItem5, TestItem5, 2, 1, 0) + TEST_SETTEXT(TestItem6, TestItem6, 3, 1, 0) + TEST_SETTEXT(TestItem7, TestItem7, 4, 1, 0) TEST_SETTEXT(TestItem8, TestItem8, 2, 0, 0) TEST_SETTEXT(TestItem9, TestItem9, 3, 0, 0) TEST_SETTEXT(TestItem10, TestItem10, 3, 0, 0)