summaryrefslogtreecommitdiff
path: root/editeng/source
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-12-08 10:36:10 +0000
committerAndras Timar <andras.timar@collabora.com>2014-12-13 16:01:16 +0100
commit50ef3803c4bdf97a26135d5d3b0efc60785e4975 (patch)
tree147a629afca558f3f71ba1275611d60916b2732e /editeng/source
parent8137d215606d8334344b5f11a1c03e65635a73c5 (diff)
Resolves: fdo#86931 wrong offsets used to set language
after Chinese conversion. the _aOldSel is the one that has the start and end index set to the end of the replacement text and so the calculation only makes sense on that selection Change-Id: I152067550d7741579bfc6ca026072b16ac7c2dd6 (cherry picked from commit 6d10a42d5b1690b3b1ed81d99a3a1bc9b65c30d9) Reviewed-on: https://gerrit.libreoffice.org/13373 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'editeng/source')
-rw-r--r--editeng/source/editeng/impedit2.cxx2
-rw-r--r--editeng/source/editeng/textconv.cxx7
2 files changed, 4 insertions, 5 deletions
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index 3140c16a22ab..05fe8cc8b422 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -3953,7 +3953,7 @@ long ImpEditEngine::GetXPos(
if( pLine->GetCharPosArray().size() )
{
sal_Int32 nPos = nIndex - 1 - pLine->GetStart();
- if( nPos >= (sal_Int32)pLine->GetCharPosArray().size() )
+ if (nPos < 0 || nPos >= (sal_Int32)pLine->GetCharPosArray().size())
{
nPos = pLine->GetCharPosArray().size()-1;
OSL_FAIL("svx::ImpEditEngine::GetXPos(), index out of range!");
diff --git a/editeng/source/editeng/textconv.cxx b/editeng/source/editeng/textconv.cxx
index 307d0e8fc974..7fd5e629c592 100644
--- a/editeng/source/editeng/textconv.cxx
+++ b/editeng/source/editeng/textconv.cxx
@@ -374,11 +374,11 @@ void TextConvWrapper::ReplaceUnit(
// remember current original language for kater use
ImpEditEngine *pImpEditEng = m_pEditView->GetImpEditEngine();
- ESelection _aOldSel = m_pEditView->GetSelection();
+ ESelection aOldSel = m_pEditView->GetSelection();
//EditSelection aOldEditSel = pEditView->GetImpEditView()->GetEditSelection();
#ifdef DBG_UTIL
- LanguageType nOldLang = pImpEditEng->GetLanguage( pImpEditEng->CreateSel( _aOldSel ).Min() );
+ LanguageType nOldLang = pImpEditEng->GetLanguage( pImpEditEng->CreateSel( aOldSel ).Min() );
#endif
pImpEditEng->UndoActionStart( EDITUNDO_INSERT );
@@ -388,7 +388,7 @@ void TextConvWrapper::ReplaceUnit(
// Thus we do this only for Chinese translation...
bool bIsChineseConversion = IsChinese( GetSourceLanguage() );
if (bIsChineseConversion)
- ChangeText( aNewTxt, rOrigText, &rOffsets, &_aOldSel );
+ ChangeText( aNewTxt, rOrigText, &rOffsets, &aOldSel );
else
ChangeText( aNewTxt, rOrigText, NULL, NULL );
@@ -398,7 +398,6 @@ void TextConvWrapper::ReplaceUnit(
DBG_ASSERT( GetTargetLanguage() == LANGUAGE_CHINESE_SIMPLIFIED || GetTargetLanguage() == LANGUAGE_CHINESE_TRADITIONAL,
"TextConvWrapper::ReplaceUnit : unexpected target language" );
- ESelection aOldSel = m_pEditView->GetSelection();
ESelection aNewSel( aOldSel );
aNewSel.nStartPos = aNewSel.nStartPos - aNewTxt.getLength();