From 68d72f479288fc77436e4d7b4d64aa5f7d7d8218 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Thu, 7 Feb 2013 14:30:47 +0000 Subject: [PATCH] riched20: Move SplitRun to wrap.c and make it static. --- dlls/riched20/editor.h | 1 - dlls/riched20/run.c | 48 -------------------------------- dlls/riched20/wrap.c | 63 +++++++++++++++++++++++++++++++++++++----- 3 files changed, 56 insertions(+), 56 deletions(-) diff --git a/dlls/riched20/editor.h b/dlls/riched20/editor.h index 6562b8e123a..9722f366cf8 100644 --- a/dlls/riched20/editor.h +++ b/dlls/riched20/editor.h @@ -146,7 +146,6 @@ int ME_CharFromPointCursor(ME_TextEditor *editor, int cx, ME_Run *run) DECLSPEC_ int ME_PointFromChar(ME_TextEditor *editor, ME_Run *pRun, int nOffset) DECLSPEC_HIDDEN; int ME_CanJoinRuns(const ME_Run *run1, const ME_Run *run2) DECLSPEC_HIDDEN; void ME_JoinRuns(ME_TextEditor *editor, ME_DisplayItem *p) DECLSPEC_HIDDEN; -ME_DisplayItem *ME_SplitRun(ME_WrapContext *wc, ME_DisplayItem *item, int nChar) DECLSPEC_HIDDEN; ME_DisplayItem *ME_SplitRunSimple(ME_TextEditor *editor, ME_Cursor *cursor) DECLSPEC_HIDDEN; void ME_UpdateRunFlags(ME_TextEditor *editor, ME_Run *run) DECLSPEC_HIDDEN; void ME_CalcRunExtent(ME_Context *c, const ME_Paragraph *para, int startx, ME_Run *run) DECLSPEC_HIDDEN; diff --git a/dlls/riched20/run.c b/dlls/riched20/run.c index 54db370bcf7..aaa6300a893 100644 --- a/dlls/riched20/run.c +++ b/dlls/riched20/run.c @@ -242,54 +242,6 @@ void ME_JoinRuns(ME_TextEditor *editor, ME_DisplayItem *p) } } -/****************************************************************************** - * ME_SplitRun - * - * Splits a run into two in a given place. It also updates the screen position - * and size (extent) of the newly generated runs. - */ -ME_DisplayItem *ME_SplitRun(ME_WrapContext *wc, ME_DisplayItem *item, int nVChar) -{ - ME_TextEditor *editor = wc->context->editor; - ME_Run *run, *run2; - ME_Paragraph *para = &wc->pPara->member.para; - ME_Cursor cursor = {wc->pPara, item, nVChar}; - - assert(item->member.run.nCharOfs != -1); - if(TRACE_ON(richedit)) - { - TRACE("Before check before split\n"); - ME_CheckCharOffsets(editor); - TRACE("After check before split\n"); - } - - run = &item->member.run; - - TRACE("Before split: %s(%d, %d)\n", debugstr_run( run ), - run->pt.x, run->pt.y); - - ME_SplitRunSimple(editor, &cursor); - - run2 = &cursor.pRun->member.run; - - ME_CalcRunExtent(wc->context, para, wc->nRow ? wc->nLeftMargin : wc->nFirstMargin, run); - - run2->pt.x = run->pt.x+run->nWidth; - run2->pt.y = run->pt.y; - - if(TRACE_ON(richedit)) - { - TRACE("Before check after split\n"); - ME_CheckCharOffsets(editor); - TRACE("After check after split\n"); - TRACE("After split: %s(%d, %d), %s(%d, %d)\n", - debugstr_run( run ), run->pt.x, run->pt.y, - debugstr_run( run2 ), run2->pt.x, run2->pt.y); - } - - return cursor.pRun; -} - /****************************************************************************** * ME_SplitRunSimple * diff --git a/dlls/riched20/wrap.c b/dlls/riched20/wrap.c index b63697b5813..97598e78d61 100644 --- a/dlls/riched20/wrap.c +++ b/dlls/riched20/wrap.c @@ -32,6 +32,55 @@ WINE_DEFAULT_DEBUG_CHANNEL(richedit); * - no tabs */ +/****************************************************************************** + * split_run_extents + * + * Splits a run into two in a given place. It also updates the screen position + * and size (extent) of the newly generated runs. + */ +static ME_DisplayItem *split_run_extents(ME_WrapContext *wc, ME_DisplayItem *item, int nVChar) +{ + ME_TextEditor *editor = wc->context->editor; + ME_Run *run, *run2; + ME_Paragraph *para = &wc->pPara->member.para; + ME_Cursor cursor = {wc->pPara, item, nVChar}; + + assert(item->member.run.nCharOfs != -1); + if(TRACE_ON(richedit)) + { + TRACE("Before check before split\n"); + ME_CheckCharOffsets(editor); + TRACE("After check before split\n"); + } + + run = &item->member.run; + + TRACE("Before split: %s(%d, %d)\n", debugstr_run( run ), + run->pt.x, run->pt.y); + + ME_SplitRunSimple(editor, &cursor); + + run2 = &cursor.pRun->member.run; + + ME_CalcRunExtent(wc->context, para, wc->nRow ? wc->nLeftMargin : wc->nFirstMargin, run); + + run2->pt.x = run->pt.x+run->nWidth; + run2->pt.y = run->pt.y; + + if(TRACE_ON(richedit)) + { + TRACE("Before check after split\n"); + ME_CheckCharOffsets(editor); + TRACE("After check after split\n"); + TRACE("After split: %s(%d, %d), %s(%d, %d)\n", + debugstr_run( run ), run->pt.x, run->pt.y, + debugstr_run( run2 ), run2->pt.x, run2->pt.y); + } + + return cursor.pRun; +} + + static ME_DisplayItem *ME_MakeRow(int height, int baseline, int width) { ME_DisplayItem *item = ME_MakeDI(diStartRow); @@ -247,7 +296,7 @@ static ME_DisplayItem *ME_MaximizeSplit(ME_WrapContext *wc, ME_DisplayItem *p, i return NULL; j = reverse_find_non_whitespace( get_text( &p->member.run, 0 ), i); if (j>0) { - pp = ME_SplitRun(wc, piter, j); + pp = split_run_extents(wc, piter, j); wc->pt.x += piter->member.run.nWidth; return pp; } @@ -267,7 +316,7 @@ static ME_DisplayItem *ME_MaximizeSplit(ME_WrapContext *wc, ME_DisplayItem *p, i { i = reverse_find_non_whitespace( get_text( &piter->member.run, 0 ), piter->member.run.len ); - pp = ME_SplitRun(wc, piter, i); + pp = split_run_extents(wc, piter, i); wc->pt = pp->member.run.pt; return pp; } @@ -322,7 +371,7 @@ static ME_DisplayItem *ME_SplitByBacktracking(ME_WrapContext *wc, ME_DisplayItem if (i == len) i = reverse_find_non_whitespace( get_text( run, 0 ), len ); if (i) { - ME_DisplayItem *piter2 = ME_SplitRun(wc, piter, i); + ME_DisplayItem *piter2 = split_run_extents(wc, piter, i); wc->pt = piter2->member.run.pt; return piter2; } @@ -339,7 +388,7 @@ static ME_DisplayItem *ME_SplitByBacktracking(ME_WrapContext *wc, ME_DisplayItem TRACE("Backtracking failed, trying desperate: %s\n", debugstr_run( &p->member.run )); /* OK, no better idea, so assume we MAY split words if we can split at all*/ if (idesp) - return ME_SplitRun(wc, piter, idesp); + return split_run_extents(wc, piter, idesp); else if (wc->pRowStart && piter != wc->pRowStart) { @@ -353,7 +402,7 @@ static ME_DisplayItem *ME_SplitByBacktracking(ME_WrapContext *wc, ME_DisplayItem /* split point inside first character - no choice but split after that char */ if (len != 1) { /* the run is more than 1 char, so we may split */ - return ME_SplitRun(wc, piter, 1); + return split_run_extents(wc, piter, 1); } /* the run is one char, can't split it */ return piter; @@ -393,7 +442,7 @@ static ME_DisplayItem *ME_WrapHandleRun(ME_WrapContext *wc, ME_DisplayItem *p) black = find_non_whitespace( get_text( run, 0 ), run->len, 0 ); if (black) { wc->bOverflown = FALSE; - pp = ME_SplitRun(wc, p, black); + pp = split_run_extents(wc, p, black); ME_CalcRunExtent(wc->context, &wc->pPara->member.para, wc->nRow ? wc->nLeftMargin : wc->nFirstMargin, &pp->member.run); @@ -444,7 +493,7 @@ static ME_DisplayItem *ME_WrapHandleRun(ME_WrapContext *wc, ME_DisplayItem *p) { /* we aren't sure if it's *really* necessary, it's a good start however */ int black = reverse_find_non_whitespace( get_text( run, 0 ), len ); - ME_SplitRun(wc, p, black); + split_run_extents(wc, p, black); /* handle both parts again */ return p; }