editeng/source/editeng/editdoc.cxx | 1 - editeng/source/misc/svxacorr.cxx | 31 +++++++++++++++++++++++-------- 2 files changed, 23 insertions(+), 9 deletions(-)
New commits: commit 7f76c90a982eb06396a96c32088bfd5de941516a Author: Caolán McNamara <[email protected]> Date: Tue Sep 17 14:47:43 2013 +0100 silence annoying warning Change-Id: I90c77df2ef8424ece5b8b37097d62bd5e8955616 diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx index 32e0da2..16bfe8f 100644 --- a/editeng/source/editeng/editdoc.cxx +++ b/editeng/source/editeng/editdoc.cxx @@ -1750,7 +1750,6 @@ const WrongList* ContentNode::GetWrongList() const void ContentNode::SetWrongList( WrongList* p ) { - DBG_ASSERT(!mpWrongList, "WrongList already exist!"); mpWrongList.reset(p); } commit 98214397cd5fc10cdefd6ba9c36746532942709b Author: Caolán McNamara <[email protected]> Date: Tue Sep 17 14:46:05 2013 +0100 don't access string out of bounds Change-Id: I304b74270f73b9f94568edf2613e2581459cc4f9 diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index dd2a6ec..bb24fe0 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -845,8 +845,15 @@ sal_Bool SvxAutoCorrect::FnCptlSttSntnc( SvxAutoCorrDoc& rDoc, sal::static_int_cast< xub_StrLen >( pWordStt - pStart ) ) ) ) return sal_False; // already ok - if (INetURLObject::CompareProtocolScheme(rTxt.copy(pWordStt - pStart, pDelim - pWordStt + 1)) != INET_PROT_NOT_VALID) - return sal_False; // already ok + //See if the text is the start of a protocol string, e.g. have text of + //"http" see if it is the start of "http:" and if so leave it alone + sal_Int32 nIndex = pWordStt - pStart; + sal_Int32 nProtocolLen = pDelim - pWordStt + 1; + if (nIndex + nProtocolLen <= rTxt.getLength()) + { + if (INetURLObject::CompareProtocolScheme(rTxt.copy(nIndex, nProtocolLen)) != INET_PROT_NOT_VALID) + return sal_False; // already ok + } if (0x1 == *pWordStt || 0x2 == *pWordStt) return sal_False; // already ok commit 7fff7c6aab15b3a7de3bf6056669ec217d41bb60 Author: Caolán McNamara <[email protected]> Date: Tue Sep 17 14:38:42 2013 +0100 unfold this god-awful mess, logic unchanged Change-Id: Ib76617e3c500268dfe423b9947100f6ce7f0eaec diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index f95d921..dd2a6ec 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -832,16 +832,24 @@ sal_Bool SvxAutoCorrect::FnCptlSttSntnc( SvxAutoCorrDoc& rDoc, } } while( 0 == ( bAtStart = (pStart == pStr)) ); - if( !pWordStt || - rCC.isDigit( - aText, sal::static_int_cast< xub_StrLen >( pStr - pStart ) ) || - IsUpperLetter( + if (!pWordStt) + return sal_False; // no character to be replaced + + + if (rCC.isDigit( aText, sal::static_int_cast< xub_StrLen >( pStr - pStart ) )) + return sal_False; // already ok + + if (IsUpperLetter( rCC.getCharacterType( aText, - sal::static_int_cast< xub_StrLen >( pWordStt - pStart ) ) ) || - INetURLObject::CompareProtocolScheme(rTxt.copy(pWordStt - pStart, pDelim - pWordStt + 1)) != INET_PROT_NOT_VALID || - 0x1 == *pWordStt || 0x2 == *pWordStt ) - return sal_False; // no character to be replaced, or already ok + sal::static_int_cast< xub_StrLen >( pWordStt - pStart ) ) ) ) + return sal_False; // already ok + + if (INetURLObject::CompareProtocolScheme(rTxt.copy(pWordStt - pStart, pDelim - pWordStt + 1)) != INET_PROT_NOT_VALID) + return sal_False; // already ok + + if (0x1 == *pWordStt || 0x2 == *pWordStt) + return sal_False; // already ok if( *pDelim && 2 >= pDelim - pWordStt && lcl_IsInAsciiArr( ".-)>", *pDelim ) )
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
