Module: wine Branch: master Commit: 04f75040ec0da9b3992d68790e60bfd5893a306f URL: https://source.winehq.org/git/wine.git/?a=commit;h=04f75040ec0da9b3992d68790...
Author: Fabian Maurer dark.shadow4@web.de Date: Sun Sep 1 15:23:36 2019 +0200
comctl32/syslink: Properly handle '\r'.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46421 Signed-off-by: Fabian Maurer dark.shadow4@web.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/comctl32/syslink.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/dlls/comctl32/syslink.c b/dlls/comctl32/syslink.c index b2d3682..78d0fd0 100644 --- a/dlls/comctl32/syslink.c +++ b/dlls/comctl32/syslink.c @@ -565,12 +565,12 @@ static BOOL SYSLINK_WrapLine (LPWSTR Text, WCHAR BreakChar, int x, int *LineLen, { int i;
- for (i = 0; i < nFit; i++) if (Text[i] == '\n') break; + for (i = 0; i < nFit; i++) if (Text[i] == '\r' || Text[i] == '\n') break;
if (i == *LineLen) return FALSE;
/* check if we're in the middle of a word */ - if (Text[i] != '\n' && Text[i] != BreakChar) + if (Text[i] != '\r' && Text[i] != '\n' && Text[i] != BreakChar) { /* search for the beginning of the word */ while (i && Text[i - 1] != BreakChar) i--; @@ -653,6 +653,12 @@ static VOID SYSLINK_Render (const SYSLINK_INFO *infoPtr, HDC hdc, PRECT pRect) /* skip break characters unless they're the first of the doc item */ if(tx != Current->Text || x == SL_LEFTMARGIN) { + if (n && *tx == '\r') + { + tx++; + SkipChars++; + n--; + } if (n && *tx == '\n') { tx++;