Kaydet (Commit) 5456abc4 authored tarafından Winfried Donkers's avatar Winfried Donkers Kaydeden (comit) Eike Rathke

fdo#86169 fix completion of function name crash

function names with dot or underscore were not completed
correctly, leading to incorrect results or even crashes

Change-Id: Iacb6af29c609ab39746185c71d4443537bf46b5e
Reviewed-on: https://gerrit.libreoffice.org/12380Reviewed-by: 's avatarEike Rathke <erack@redhat.com>
Tested-by: 's avatarEike Rathke <erack@redhat.com>
üst d73d1e8a
...@@ -1147,16 +1147,23 @@ void completeFunction( EditView* pView, const OUString& rInsert, bool& rParInser ...@@ -1147,16 +1147,23 @@ void completeFunction( EditView* pView, const OUString& rInsert, bool& rParInser
aSel = pView->GetSelection(); aSel = pView->GetSelection();
ESelection aOldSelection = aSel; ESelection aOldSelection = aSel;
OUString aSelectedText = pView->GetSelected(); OUString aSelectedText = pView->GetSelected();
while(needToExtendSelection(aSelectedText, rInsert)) if ( needToExtendSelection( aSelectedText, rInsert ) )
{ {
assert(aSel.nStartPos > 0); while(needToExtendSelection(aSelectedText, rInsert))
--aSel.nStartPos; {
--aSel.nEndPos = aSel.nStartPos; assert(aSel.nStartPos > 0);
pView->SetSelection(aSel); --aSel.nStartPos;
pView->SelectCurrentWord(); aSel.nEndPos = aSel.nStartPos;
aSelectedText = pView->GetSelected(); pView->SetSelection(aSel);
pView->SelectCurrentWord();
aSelectedText = pView->GetSelected();
}
aSel.nStartPos = aSel.nEndPos - ( aSelectedText.getLength() - 1 );
}
else
{
aSel.nStartPos = aSel.nEndPos - aSelectedText.getLength();
} }
aSel.nStartPos -= ( aSelectedText.getLength() - 1 );
aSel.nEndPos = aOldSelection.nEndPos; aSel.nEndPos = aOldSelection.nEndPos;
pView->SetSelection(aSel); pView->SetSelection(aSel);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment