richedit: Removed ME_StrLen and ME_StrVLen field access functions.

These functions were probably previously needed because of some wierd
special handling of backspace characters, but currently there is no
reason why the nLen field can't be accessed directly.

Having to functions that just access the string length field just causes
slightly more effort for someone to look at the code, because they need
to enter the function to find out what it actually is doing.
This commit is contained in:
Dylan Smith 2009-02-07 13:21:17 -05:00 committed by Alexandre Julliard
parent f148d82093
commit 5f15de0690
8 changed files with 34 additions and 56 deletions

View File

@ -204,7 +204,7 @@ ME_GetCursorCoordinates(ME_TextEditor *editor, ME_Cursor *pCursor,
assert(run); assert(run);
assert(run->type == diRun); assert(run->type == diRun);
sz = ME_GetRunSize(&c, &para->member.para, sz = ME_GetRunSize(&c, &para->member.para,
&run->member.run, ME_StrLen(run->member.run.strText), &run->member.run, run->member.run.strText->nLen,
row->member.row.nLMargin); row->member.row.nLMargin);
} }
} }
@ -347,7 +347,7 @@ BOOL ME_InternalDeleteText(ME_TextEditor *editor, int nOfs, int nChars,
nCharsToDelete, nChars, c.nOffset, nCharsToDelete, nChars, c.nOffset,
debugstr_w(run->strText->szData), run->strText->nLen); debugstr_w(run->strText->szData), run->strText->nLen);
if (!c.nOffset && ME_StrVLen(run->strText) == nCharsToDelete) if (!c.nOffset && run->strText->nLen == nCharsToDelete)
{ {
/* undo = reinsert whole run */ /* undo = reinsert whole run */
/* nOfs is a character offset (from the start of the document /* nOfs is a character offset (from the start of the document
@ -381,9 +381,9 @@ BOOL ME_InternalDeleteText(ME_TextEditor *editor, int nOfs, int nChars,
else else
pThisCur->nOffset -= nCharsToDelete; pThisCur->nOffset -= nCharsToDelete;
assert(pThisCur->nOffset >= 0); assert(pThisCur->nOffset >= 0);
assert(pThisCur->nOffset <= ME_StrVLen(run->strText)); assert(pThisCur->nOffset <= run->strText->nLen);
} }
if (pThisCur->nOffset == ME_StrVLen(run->strText)) if (pThisCur->nOffset == run->strText->nLen)
{ {
pThisCur->pRun = ME_FindItemFwd(pThisCur->pRun, diRunOrParagraphOrEnd); pThisCur->pRun = ME_FindItemFwd(pThisCur->pRun, diRunOrParagraphOrEnd);
assert(pThisCur->pRun->type == diRun); assert(pThisCur->pRun->type == diRun);
@ -399,7 +399,7 @@ BOOL ME_InternalDeleteText(ME_TextEditor *editor, int nOfs, int nChars,
else else
ME_PropagateCharOffset(c.pRun, shift); ME_PropagateCharOffset(c.pRun, shift);
if (!ME_StrVLen(cursor.pRun->member.run.strText)) if (!cursor.pRun->member.run.strText->nLen)
{ {
TRACE("Removing useless run\n"); TRACE("Removing useless run\n");
ME_Remove(cursor.pRun); ME_Remove(cursor.pRun);

View File

@ -1721,7 +1721,7 @@ ME_FindText(ME_TextEditor *editor, DWORD flags, const CHARRANGE *chrg, const WCH
/* Check to see if next character is a whitespace */ /* Check to see if next character is a whitespace */
if (flags & FR_WHOLEWORD) if (flags & FR_WHOLEWORD)
{ {
if (nCurStart + nMatched == ME_StrLen(pCurItem->member.run.strText)) if (nCurStart + nMatched == pCurItem->member.run.strText->nLen)
{ {
pNextItem = ME_FindItemFwd(pCurItem, diRun); pNextItem = ME_FindItemFwd(pCurItem, diRun);
nNextStart = -nMatched; nNextStart = -nMatched;
@ -1745,7 +1745,7 @@ ME_FindText(ME_TextEditor *editor, DWORD flags, const CHARRANGE *chrg, const WCH
TRACE("found at %d-%d\n", nStart, nStart + nLen); TRACE("found at %d-%d\n", nStart, nStart + nLen);
return nStart; return nStart;
} }
if (nCurStart + nMatched == ME_StrLen(pCurItem->member.run.strText)) if (nCurStart + nMatched == pCurItem->member.run.strText->nLen)
{ {
pCurItem = ME_FindItemFwd(pCurItem, diRun); pCurItem = ME_FindItemFwd(pCurItem, diRun);
nCurStart = -nMatched; nCurStart = -nMatched;
@ -1757,7 +1757,7 @@ ME_FindText(ME_TextEditor *editor, DWORD flags, const CHARRANGE *chrg, const WCH
wLastChar = ' '; wLastChar = ' ';
nStart++; nStart++;
if (nStart == ME_StrLen(item->member.run.strText)) if (nStart == item->member.run.strText->nLen)
{ {
item = ME_FindItemFwd(item, diRun); item = ME_FindItemFwd(item, diRun);
para = ME_GetParagraph(item); para = ME_GetParagraph(item);
@ -1786,7 +1786,7 @@ ME_FindText(ME_TextEditor *editor, DWORD flags, const CHARRANGE *chrg, const WCH
if (nCurEnd == 0) if (nCurEnd == 0)
{ {
pCurItem = ME_FindItemBack(pCurItem, diRun); pCurItem = ME_FindItemBack(pCurItem, diRun);
nCurEnd = ME_StrLen(pCurItem->member.run.strText) + nMatched; nCurEnd = pCurItem->member.run.strText->nLen + nMatched;
} }
while (pCurItem && ME_CharCompare(pCurItem->member.run.strText->szData[nCurEnd - nMatched - 1], text[nLen - nMatched - 1], (flags & FR_MATCHCASE))) while (pCurItem && ME_CharCompare(pCurItem->member.run.strText->szData[nCurEnd - nMatched - 1], text[nLen - nMatched - 1], (flags & FR_MATCHCASE)))
@ -1808,7 +1808,7 @@ ME_FindText(ME_TextEditor *editor, DWORD flags, const CHARRANGE *chrg, const WCH
{ {
pPrevItem = ME_FindItemBack(pCurItem, diRun); pPrevItem = ME_FindItemBack(pCurItem, diRun);
if (pPrevItem) if (pPrevItem)
nPrevEnd = ME_StrLen(pPrevItem->member.run.strText) + nMatched; nPrevEnd = pPrevItem->member.run.strText->nLen + nMatched;
} }
if (pPrevItem) if (pPrevItem)
@ -1835,7 +1835,7 @@ ME_FindText(ME_TextEditor *editor, DWORD flags, const CHARRANGE *chrg, const WCH
pCurItem = ME_FindItemBack(pCurItem, diRun); pCurItem = ME_FindItemBack(pCurItem, diRun);
/* Don't care about pCurItem becoming NULL here; it's already taken /* Don't care about pCurItem becoming NULL here; it's already taken
* care of in the exterior loop condition */ * care of in the exterior loop condition */
nCurEnd = ME_StrLen(pCurItem->member.run.strText) + nMatched; nCurEnd = pCurItem->member.run.strText->nLen + nMatched;
} }
} }
if (pCurItem) if (pCurItem)
@ -1848,7 +1848,7 @@ ME_FindText(ME_TextEditor *editor, DWORD flags, const CHARRANGE *chrg, const WCH
{ {
item = ME_FindItemBack(item, diRun); item = ME_FindItemBack(item, diRun);
para = ME_GetParagraph(item); para = ME_GetParagraph(item);
nEnd = ME_StrLen(item->member.run.strText); nEnd = item->member.run.strText->nLen;
} }
} }
} }
@ -4687,12 +4687,12 @@ static BOOL ME_FindNextURLCandidate(ME_TextEditor *editor, int sel_min, int sel_
if (!(item->member.run.nFlags & MERF_ENDPARA)) { if (!(item->member.run.nFlags & MERF_ENDPARA)) {
/* Find start of candidate */ /* Find start of candidate */
if (*candidate_min == -1) { if (*candidate_min == -1) {
while (nStart < ME_StrLen(item->member.run.strText) && while (nStart < item->member.run.strText->nLen &&
!(isalnumW(item->member.run.strText->szData[nStart]) || !(isalnumW(item->member.run.strText->szData[nStart]) ||
isurlspecial(item->member.run.strText->szData[nStart]))) { isurlspecial(item->member.run.strText->szData[nStart]))) {
nStart++; nStart++;
} }
if (nStart < ME_StrLen(item->member.run.strText) && if (nStart < item->member.run.strText->nLen &&
(isalnumW(item->member.run.strText->szData[nStart]) || (isalnumW(item->member.run.strText->szData[nStart]) ||
isurlspecial(item->member.run.strText->szData[nStart]))) { isurlspecial(item->member.run.strText->szData[nStart]))) {
*candidate_min = para->member.para.nCharOfs + item->member.run.nCharOfs + nStart; *candidate_min = para->member.para.nCharOfs + item->member.run.nCharOfs + nStart;
@ -4703,7 +4703,7 @@ static BOOL ME_FindNextURLCandidate(ME_TextEditor *editor, int sel_min, int sel_
/* Find end of candidate */ /* Find end of candidate */
if (*candidate_min >= 0) { if (*candidate_min >= 0) {
while (nStart < ME_StrLen(item->member.run.strText) && while (nStart < item->member.run.strText->nLen &&
(isalnumW(item->member.run.strText->szData[nStart]) || (isalnumW(item->member.run.strText->szData[nStart]) ||
isurlspecial(item->member.run.strText->szData[nStart]) || isurlspecial(item->member.run.strText->szData[nStart]) ||
(!foundColon && item->member.run.strText->szData[nStart] == ':') )) { (!foundColon && item->member.run.strText->szData[nStart] == ':') )) {
@ -4711,7 +4711,7 @@ static BOOL ME_FindNextURLCandidate(ME_TextEditor *editor, int sel_min, int sel_
lastAcceptedChar = item->member.run.strText->szData[nStart]; lastAcceptedChar = item->member.run.strText->szData[nStart];
nStart++; nStart++;
} }
if (nStart < ME_StrLen(item->member.run.strText) && if (nStart < item->member.run.strText->nLen &&
!(isalnumW(item->member.run.strText->szData[nStart]) || !(isalnumW(item->member.run.strText->szData[nStart]) ||
isurlspecial(item->member.run.strText->szData[nStart]) )) { isurlspecial(item->member.run.strText->szData[nStart]) )) {
*candidate_max = para->member.para.nCharOfs + item->member.run.nCharOfs + nStart; *candidate_max = para->member.para.nCharOfs + item->member.run.nCharOfs + nStart;

View File

@ -97,9 +97,6 @@ void ME_AppendString(ME_String *s1, const ME_String *s2);
ME_String *ME_VSplitString(ME_String *orig, int nVPos); ME_String *ME_VSplitString(ME_String *orig, int nVPos);
int ME_IsWhitespaces(const ME_String *s); int ME_IsWhitespaces(const ME_String *s);
int ME_IsSplitable(const ME_String *s); int ME_IsSplitable(const ME_String *s);
/* int ME_CalcSkipChars(ME_String *s); */
int ME_StrLen(const ME_String *s);
int ME_StrVLen(const ME_String *s);
int ME_FindNonWhitespaceV(const ME_String *s, int nVChar); int ME_FindNonWhitespaceV(const ME_String *s, int nVChar);
int ME_FindWhitespaceV(ME_String *s, int nVChar); int ME_FindWhitespaceV(ME_String *s, int nVChar);
int ME_CallWordBreakProc(ME_TextEditor *editor, ME_String *str, INT start, INT code); int ME_CallWordBreakProc(ME_TextEditor *editor, ME_String *str, INT start, INT code);

View File

@ -446,9 +446,9 @@ static void ME_DrawRun(ME_Context *c, int x, int y, ME_DisplayItem *rundi, ME_Pa
{ {
if (c->editor->cPasswordMask) if (c->editor->cPasswordMask)
{ {
ME_String *szMasked = ME_MakeStringR(c->editor->cPasswordMask,ME_StrVLen(run->strText)); ME_String *szMasked = ME_MakeStringR(c->editor->cPasswordMask, run->strText->nLen);
ME_DrawTextWithStyle(c, x, y, ME_DrawTextWithStyle(c, x, y,
szMasked->szData, ME_StrVLen(szMasked), run->style, run->nWidth, szMasked->szData, szMasked->nLen, run->style, run->nWidth,
nSelFrom-runofs,nSelTo-runofs, nSelFrom-runofs,nSelTo-runofs,
c->pt.y + para->pt.y + start->member.row.pt.y, c->pt.y + para->pt.y + start->member.row.pt.y,
start->member.row.nHeight); start->member.row.nHeight);
@ -456,7 +456,7 @@ static void ME_DrawRun(ME_Context *c, int x, int y, ME_DisplayItem *rundi, ME_Pa
} }
else else
ME_DrawTextWithStyle(c, x, y, ME_DrawTextWithStyle(c, x, y,
run->strText->szData, ME_StrVLen(run->strText), run->style, run->nWidth, run->strText->szData, run->strText->nLen, run->style, run->nWidth,
nSelFrom-runofs,nSelTo-runofs, nSelFrom-runofs,nSelTo-runofs,
c->pt.y + para->pt.y + start->member.row.pt.y, c->pt.y + para->pt.y + start->member.row.pt.y,
start->member.row.nHeight); start->member.row.nHeight);

View File

@ -225,7 +225,7 @@ void ME_JoinRuns(ME_TextEditor *editor, ME_DisplayItem *p)
for (i=0; i<editor->nCursors; i++) { for (i=0; i<editor->nCursors; i++) {
if (editor->pCursors[i].pRun == pNext) { if (editor->pCursors[i].pRun == pNext) {
editor->pCursors[i].pRun = p; editor->pCursors[i].pRun = p;
editor->pCursors[i].nOffset += ME_StrVLen(p->member.run.strText); editor->pCursors[i].nOffset += p->member.run.strText->nLen;
} }
} }
@ -302,7 +302,7 @@ ME_DisplayItem *ME_SplitRunSimple(ME_TextEditor *editor, ME_DisplayItem *item, i
ME_DisplayItem *item2; ME_DisplayItem *item2;
ME_Run *run2; ME_Run *run2;
int i; int i;
assert(nVChar > 0 && nVChar < ME_StrVLen(run->strText)); assert(nVChar > 0 && nVChar < run->strText->nLen);
assert(item->type == diRun); assert(item->type == diRun);
assert(!(item->member.run.nFlags & MERF_NONTEXT)); assert(!(item->member.run.nFlags & MERF_NONTEXT));
assert(item->member.run.nCharOfs != -1); assert(item->member.run.nCharOfs != -1);
@ -481,7 +481,7 @@ int ME_CharFromPoint(ME_Context *c, int cx, ME_Run *run)
if (c->editor->cPasswordMask) if (c->editor->cPasswordMask)
{ {
ME_String *strMasked = ME_MakeStringR(c->editor->cPasswordMask,ME_StrVLen(run->strText)); ME_String *strMasked = ME_MakeStringR(c->editor->cPasswordMask, run->strText->nLen);
GetTextExtentExPointW(c->hDC, strMasked->szData, run->strText->nLen, GetTextExtentExPointW(c->hDC, strMasked->szData, run->strText->nLen,
cx, &fit, NULL, &sz); cx, &fit, NULL, &sz);
ME_DestroyString(strMasked); ME_DestroyString(strMasked);
@ -538,7 +538,7 @@ int ME_CharFromPointCursor(ME_TextEditor *editor, int cx, ME_Run *run)
} }
if (editor->cPasswordMask) if (editor->cPasswordMask)
strRunText = ME_MakeStringR(editor->cPasswordMask,ME_StrVLen(run->strText)); strRunText = ME_MakeStringR(editor->cPasswordMask, run->strText->nLen);
else else
strRunText = run->strText; strRunText = run->strText;
@ -602,7 +602,7 @@ int ME_PointFromChar(ME_TextEditor *editor, ME_Run *pRun, int nOffset)
} }
if (editor->cPasswordMask) if (editor->cPasswordMask)
strRunText = ME_MakeStringR(editor->cPasswordMask,ME_StrVLen(pRun->strText)); strRunText = ME_MakeStringR(editor->cPasswordMask, pRun->strText->nLen);
else else
strRunText = pRun->strText; strRunText = pRun->strText;
@ -623,7 +623,7 @@ static SIZE ME_GetRunSizeCommon(ME_Context *c, const ME_Paragraph *para, ME_Run
int startx, int *pAscent, int *pDescent) int startx, int *pAscent, int *pDescent)
{ {
SIZE size; SIZE size;
int nMaxLen = ME_StrVLen(run->strText); int nMaxLen = run->strText->nLen;
if (nLen>nMaxLen) if (nLen>nMaxLen)
nLen = nMaxLen; nLen = nMaxLen;
@ -716,7 +716,7 @@ void ME_CalcRunExtent(ME_Context *c, const ME_Paragraph *para, int startx, ME_Ru
run->nWidth = 0; run->nWidth = 0;
else else
{ {
int nEnd = ME_StrVLen(run->strText); int nEnd = run->strText->nLen;
SIZE size = ME_GetRunSizeCommon(c, para, run, nEnd, startx, SIZE size = ME_GetRunSizeCommon(c, para, run, nEnd, startx,
&run->nAscent, &run->nDescent); &run->nAscent, &run->nDescent);
run->nWidth = size.cx; run->nWidth = size.cx;

View File

@ -141,25 +141,6 @@ int ME_IsSplitable(const ME_String *s)
return 0; return 0;
} }
/* FIXME multibyte */
/*
int ME_CalcSkipChars(ME_String *s)
{
int cnt = 0;
while(cnt < s->nLen && s->szData[s->nLen-1-cnt]==' ')
cnt++;
return cnt;
}
*/
int ME_StrLen(const ME_String *s) {
return s->nLen;
}
int ME_StrVLen(const ME_String *s) {
return s->nLen;
}
int ME_StrRelPos(const ME_String *s, int nVChar, int *pRelChars) int ME_StrRelPos(const ME_String *s, int nVChar, int *pRelChars)
{ {
int nRelChars = *pRelChars; int nRelChars = *pRelChars;
@ -209,7 +190,7 @@ int ME_GetCharFwd(const ME_String *s, int nPos)
{ {
int nVPos = 0; int nVPos = 0;
assert(nPos < ME_StrLen(s)); assert(nPos < s->nLen);
if (nPos) if (nPos)
nVPos = ME_StrRelPos2(s, nVPos, nPos); nVPos = ME_StrRelPos2(s, nVPos, nPos);
@ -220,9 +201,9 @@ int ME_GetCharFwd(const ME_String *s, int nPos)
int ME_GetCharBack(const ME_String *s, int nPos) int ME_GetCharBack(const ME_String *s, int nPos)
{ {
int nVPos = ME_StrVLen(s); int nVPos = s->nLen;
assert(nPos < ME_StrLen(s)); assert(nPos < s->nLen);
if (nPos) if (nPos)
nVPos = ME_StrRelPos2(s, nVPos, -nPos); nVPos = ME_StrRelPos2(s, nVPos, -nPos);

View File

@ -254,7 +254,7 @@ static ME_DisplayItem *ME_SplitByBacktracking(ME_WrapContext *wc, ME_DisplayItem
ME_Run *run = &p->member.run; ME_Run *run = &p->member.run;
idesp = i = ME_CharFromPoint(wc->context, loc, run); idesp = i = ME_CharFromPoint(wc->context, loc, run);
len = ME_StrVLen(run->strText); len = run->strText->nLen;
assert(len>0); assert(len>0);
assert(i<len); assert(i<len);
if (i) { if (i) {
@ -281,7 +281,7 @@ static ME_DisplayItem *ME_SplitByBacktracking(ME_WrapContext *wc, ME_DisplayItem
piter = wc->pLastSplittableRun; piter = wc->pLastSplittableRun;
run = &piter->member.run; run = &piter->member.run;
len = ME_StrVLen(run->strText); len = run->strText->nLen;
/* don't split words */ /* don't split words */
i = ME_ReverseFindWhitespaceV(run->strText, len); i = ME_ReverseFindWhitespaceV(run->strText, len);
if (i == len) if (i == len)
@ -340,7 +340,7 @@ static ME_DisplayItem *ME_WrapHandleRun(ME_WrapContext *wc, ME_DisplayItem *p)
run->pt.x = wc->pt.x; run->pt.x = wc->pt.x;
run->pt.y = wc->pt.y; run->pt.y = wc->pt.y;
ME_WrapSizeRun(wc, p); ME_WrapSizeRun(wc, p);
len = ME_StrVLen(run->strText); len = run->strText->nLen;
if (wc->bOverflown) /* just skipping final whitespaces */ if (wc->bOverflown) /* just skipping final whitespaces */
{ {

View File

@ -889,7 +889,7 @@ ME_StreamOutRTF(ME_TextEditor *editor, ME_OutStream *pStream, int nStart, int nC
if (!ME_StreamOutRTFCharProps(pStream, &p->member.run.style->fmt)) if (!ME_StreamOutRTFCharProps(pStream, &p->member.run.style->fmt))
return FALSE; return FALSE;
nEnd = (p == pEnd) ? nEndLen : ME_StrLen(p->member.run.strText); nEnd = (p == pEnd) ? nEndLen : p->member.run.strText->nLen;
if (!ME_StreamOutRTFText(pStream, p->member.run.strText->szData + nOffset, nEnd - nOffset)) if (!ME_StreamOutRTFText(pStream, p->member.run.strText->szData + nOffset, nEnd - nOffset))
return FALSE; return FALSE;
nOffset = 0; nOffset = 0;
@ -931,7 +931,7 @@ ME_StreamOutText(ME_TextEditor *editor, ME_OutStream *pStream, int nStart, int n
/* TODO: Handle SF_TEXTIZED */ /* TODO: Handle SF_TEXTIZED */
while (success && nChars && item) { while (success && nChars && item) {
nLen = min(nChars, ME_StrLen(item->member.run.strText) - nStart); nLen = min(nChars, item->member.run.strText->nLen - nStart);
if (!editor->bEmulateVersion10 && item->member.run.nFlags & MERF_ENDPARA) if (!editor->bEmulateVersion10 && item->member.run.nFlags & MERF_ENDPARA)
{ {