Return correct length for Authority token
Regression from f4fd558ac9d61fe06aa0f56d829916ef9e5ee7b9
Take the chance to calculate token prefix just once.
Change-Id: I19ce5cb037198cb918e79c760a92b285f9b725f1
diff --git a/sw/source/core/tox/tox.cxx b/sw/source/core/tox/tox.cxx
index ed47165..c86b4c9 100644
--- a/sw/source/core/tox/tox.cxx
+++ b/sw/source/core/tox/tox.cxx
@@ -745,30 +745,29 @@ static FormTokenType lcl_GetTokenType(const OUString & sToken,
{
static struct
{
OUString sNm;
sal_uInt16 nOffset;
FormTokenType eToken;
OUString sTokenStart;
sal_Int16 nTokenLength;
FormTokenType eTokenType;
} const aTokenArr[] = {
{ SwForm::GetFormTab(), 1, TOKEN_TAB_STOP },
{ SwForm::GetFormPageNums(), 1, TOKEN_PAGE_NUMS },
{ SwForm::GetFormLinkStt(), 1, TOKEN_LINK_START },
{ SwForm::GetFormLinkEnd(), 1, TOKEN_LINK_END },
{ SwForm::GetFormEntryNum(), 1, TOKEN_ENTRY_NO },
{ SwForm::GetFormEntryText(), 1, TOKEN_ENTRY_TEXT },
{ SwForm::GetFormChapterMark(), 1, TOKEN_CHAPTER_INFO },
{ SwForm::GetFormText(), 1, TOKEN_TEXT },
{ SwForm::GetFormEntry(), 1, TOKEN_ENTRY },
{ SwForm::GetFormAuth(), 3, TOKEN_AUTHORITY }
{ SwForm::GetFormTab().copy(0, 2), 3, TOKEN_TAB_STOP },
{ SwForm::GetFormPageNums().copy(0, 2), 3, TOKEN_PAGE_NUMS },
{ SwForm::GetFormLinkStt().copy(0, 3), 4, TOKEN_LINK_START },
{ SwForm::GetFormLinkEnd().copy(0, 3), 4, TOKEN_LINK_END },
{ SwForm::GetFormEntryNum().copy(0, 3), 4, TOKEN_ENTRY_NO },
{ SwForm::GetFormEntryText().copy(0, 3), 4, TOKEN_ENTRY_TEXT },
{ SwForm::GetFormChapterMark().copy(0, 2), 3, TOKEN_CHAPTER_INFO },
{ SwForm::GetFormText().copy(0, 2), 3, TOKEN_TEXT },
{ SwForm::GetFormEntry().copy(0, 2), 3, TOKEN_ENTRY },
{ SwForm::GetFormAuth().copy(0, 2), 5, TOKEN_AUTHORITY }
};
for(const auto & i : aTokenArr)
{
const sal_Int32 nLen(i.sNm.getLength());
if( sToken.startsWith( i.sNm.copy(0, nLen - i.nOffset) ))
if( sToken.startsWith( i.sTokenStart ) )
{
if (pTokenLen)
*pTokenLen = nLen;
return i.eToken;
*pTokenLen = i.nTokenLength;
return i.eTokenType;
}
}