diff options
| author | Michael Stahl <mstahl@redhat.com> | 2014-01-14 23:58:11 +0100 |
|---|---|---|
| committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-01-16 15:18:12 +0000 |
| commit | 1fd6ebac89a83e6ceecd69f0c6c807d8ee8b5c81 (patch) | |
| tree | 73c310aa5ee9af3130fedd1bb5391ce0b1c277a9 | |
| parent | 0501b81caf787ace5d2c8da65329d9f6adbace4e (diff) | |
fdo#73162: sw: un-break index entries that contain text separators
SwFormTokensHelper::SearchNextToken() does some check that the ">" token
terminator is not inside a pair of TOX_STYLE_DELIMITER; this check was
broken by commit f4fd558ac9d61fe06aa0f56d829916ef9e5ee7b9 and finds a
">" outside of TOX_STYLE_DELIMITER bracketing.
Change-Id: Ia8587d496999c561f57fd6f107ed8b9d1e3838d4
(cherry picked from commit c87f146a0cec31f080386d646bfb786ed6200280)
Reviewed-on: https://gerrit.libreoffice.org/7439
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
| -rw-r--r-- | sw/source/core/tox/tox.cxx | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sw/source/core/tox/tox.cxx b/sw/source/core/tox/tox.cxx index 43be3a534902..a8e2f1a0019d 100644 --- a/sw/source/core/tox/tox.cxx +++ b/sw/source/core/tox/tox.cxx @@ -823,8 +823,12 @@ OUString SwFormTokensHelper::SearchNextToken( const OUString & sPattern, } else { + // apparently the TOX_STYLE_DELIMITER act as a bracketing for + // TOKEN_TEXT tokens so that the user can have '>' inside the text... const sal_Int32 nTextSeparatorFirst = sPattern.indexOf( TOX_STYLE_DELIMITER, nStt ); - if( nTextSeparatorFirst>=0 && nTextSeparatorFirst+1<sPattern.getLength()) + if ( nTextSeparatorFirst >= 0 + && nTextSeparatorFirst + 1 < sPattern.getLength() + && nTextSeparatorFirst < nEnd) { const sal_Int32 nTextSeparatorSecond = sPattern.indexOf( TOX_STYLE_DELIMITER, nTextSeparatorFirst + 1 ); @@ -832,6 +836,7 @@ OUString SwFormTokensHelper::SearchNextToken( const OUString & sPattern, if( nEnd < nTextSeparatorSecond ) nEnd = sPattern.indexOf( '>', nTextSeparatorSecond ); // FIXME: No check to verify that nEnd is still >=0? + assert(nEnd >= 0); } ++nEnd; |
