svtools/source/edit/editsyntaxhighlighter.cxx | 50 ++++++++++++++------------ 1 file changed, 27 insertions(+), 23 deletions(-)
New commits: commit 5358b9ba4ffa8667192b11bbb654fcdbcd463e7a Author: Caolán McNamara <caol...@redhat.com> Date: Tue Apr 16 13:46:56 2013 +0100 UniString->OUString Change-Id: I217944d40ed7cd3a2fca4ad0d61729ff5d94ed96 diff --git a/svtools/source/edit/editsyntaxhighlighter.cxx b/svtools/source/edit/editsyntaxhighlighter.cxx index 3f1cd8d..33e96d9 100644 --- a/svtools/source/edit/editsyntaxhighlighter.cxx +++ b/svtools/source/edit/editsyntaxhighlighter.cxx @@ -48,68 +48,68 @@ void MultiLineEditSyntaxHighlight::SetText(const OUString& rNewText) UpdateData(); } -void MultiLineEditSyntaxHighlight::DoBracketHilight(sal_uInt16 aKey) +void MultiLineEditSyntaxHighlight::DoBracketHilight(sal_uInt16 nKey) { TextSelection aCurrentPos = GetTextView()->GetSelection(); - xub_StrLen aStartPos = aCurrentPos.GetStart().GetIndex(); + xub_StrLen nStartPos = aCurrentPos.GetStart().GetIndex(); sal_uLong nStartPara = aCurrentPos.GetStart().GetPara(); - sal_uInt16 aCount = 0; - int aChar = -1; + sal_uInt16 nCount = 0; + int nChar = -1; - switch (aKey) + switch (nKey) { case '\'': // no break case '"': { - aChar = aKey; + nChar = nKey; break; } case '}' : { - aChar = '{'; + nChar = '{'; break; } case ')': { - aChar = '('; + nChar = '('; break; } case ']': { - aChar = '['; + nChar = '['; break; } } - if (aChar != -1) + if (nChar != -1) { - for (long aPara =nStartPara; aPara>=0;--aPara) + for (long nPara = nStartPara; nPara>=0; --nPara) { - if ( aStartPos == 0 ) + if (nStartPos == 0) continue; - String aLine( GetTextEngine()->GetText( aPara ) ); + OUString aLine( GetTextEngine()->GetText( nPara ) ); - if (aLine.Len() == 0) + if (aLine.isEmpty()) continue; - for (sal_uInt16 i = ((unsigned long)aPara==nStartPara) ? aStartPos-1 : (sal_uInt16)(aLine.Len()-1); i>0; --i) + for (sal_Int32 i = ((sal_uLong)nPara==nStartPara) ? nStartPos-1 : aLine.getLength()-1; i>0; --i) { - if (aLine.GetChar(i)==aChar) + if (aLine[i] == nChar) { - if (!aCount) + if (!nCount) { - GetTextEngine()->SetAttrib( TextAttribFontWeight( WEIGHT_ULTRABOLD ), aPara, i, i+1, sal_True ); - GetTextEngine()->SetAttrib( TextAttribFontColor( Color(0,0,0) ), aPara, i, i+1, sal_True ); - GetTextEngine()->SetAttrib( TextAttribFontWeight( WEIGHT_ULTRABOLD ), nStartPara, aStartPos, aStartPos, sal_True ); - GetTextEngine()->SetAttrib( TextAttribFontColor( Color(0,0,0) ), nStartPara, aStartPos, aStartPos, sal_True ); + GetTextEngine()->SetAttrib( TextAttribFontWeight( WEIGHT_ULTRABOLD ), nPara, i, i+1, sal_True ); + GetTextEngine()->SetAttrib( TextAttribFontColor( Color(0,0,0) ), nPara, i, i+1, sal_True ); + GetTextEngine()->SetAttrib( TextAttribFontWeight( WEIGHT_ULTRABOLD ), nStartPara, nStartPos, nStartPos, sal_True ); + GetTextEngine()->SetAttrib( TextAttribFontColor( Color(0,0,0) ), nStartPara, nStartPos, nStartPos, sal_True ); return; } else - aCount--; + --nCount; } - if (aLine.GetChar(i)==aKey) - aCount++; + if (aLine[i] == nKey) + ++nCount; } } } commit 02917cb57e2c2e9fcab2db8f72960023f3e4edaf Author: Caolán McNamara <caol...@redhat.com> Date: Tue Apr 16 13:40:04 2013 +0100 Resolves: fdo#47209 and rhbz#927223 syntax highlighter crash when trying to parse empty lines looking for the matching bracket Change-Id: I3961a3d0e804d136de286e21934c6ba5ab0496cf diff --git a/svtools/source/edit/editsyntaxhighlighter.cxx b/svtools/source/edit/editsyntaxhighlighter.cxx index 62a7a25..3f1cd8d 100644 --- a/svtools/source/edit/editsyntaxhighlighter.cxx +++ b/svtools/source/edit/editsyntaxhighlighter.cxx @@ -89,6 +89,10 @@ void MultiLineEditSyntaxHighlight::DoBracketHilight(sal_uInt16 aKey) continue; String aLine( GetTextEngine()->GetText( aPara ) ); + + if (aLine.Len() == 0) + continue; + for (sal_uInt16 i = ((unsigned long)aPara==nStartPara) ? aStartPos-1 : (sal_uInt16)(aLine.Len()-1); i>0; --i) { if (aLine.GetChar(i)==aChar)
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits