summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2021-02-25 10:55:57 +0100
committerXisco Fauli <xiscofauli@libreoffice.org>2021-02-26 15:55:58 +0100
commit8885bf8f8665286ae1df30d987790e5680f2bb36 (patch)
treec773276df0f5745c0df48f8cca8c5941e1cb3bcb
parent633e72f078f99eb9f27e4ff623111ab634ff6fe1 (diff)
tdf#134940 sw: fix AutoCorrect of arrow "-->"
Fix bad replacement of "-->" with "–>" instead of "→" (i.e. premature replacement of "--" to n-dash) since '>' was added to IsAutoCorrectChar(). Regression from commit 57f07b1d7378d218648667c5b1315cc8ad905875 "tdf#133524 AutoCorrect: support double angle quotes". Change-Id: I06f0cddb48d13c8e230dab964f79f588799ed4ab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111527 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit d1be3d80d0ca5ccd7639ede379a1befc48dc73f2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111579 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
-rw-r--r--editeng/source/misc/svxacorr.cxx5
-rw-r--r--sw/qa/extras/uiwriter/uiwriter.cxx10
2 files changed, 14 insertions, 1 deletions
diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx
index a888f4474a34..e6b951e7b187 100644
--- a/editeng/source/misc/svxacorr.cxx
+++ b/editeng/source/misc/svxacorr.cxx
@@ -1515,7 +1515,10 @@ void SvxAutoCorrect::DoAutoCorrect( SvxAutoCorrDoc& rDoc, const OUString& rTxt,
if( lcl_IsSymbolChar( rCC, rTxt, nCapLttrPos, nInsPos ))
break;
- if( IsAutoCorrFlag( ACFlags::Autocorrect ) )
+ if( IsAutoCorrFlag( ACFlags::Autocorrect ) &&
+ // tdf#134940 fix regression of arrow "-->" resulted by premature
+ // replacement of "--" since '>' was added to IsAutoCorrectChar()
+ '>' != cChar )
{
// WARNING ATTENTION: rTxt is an alias of the text node's OUString
// and becomes INVALID if ChgAutoCorrWord returns true!
diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx
index 5ea7da588a02..e205f94656ce 100644
--- a/sw/qa/extras/uiwriter/uiwriter.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter.cxx
@@ -7834,6 +7834,16 @@ void SwUiWriterTest::testTdf133524()
pWrtShell->AutoCorrect(corr, '"');
sReplaced += u".”";
CPPUNIT_ASSERT_EQUAL(sReplaced, static_cast<SwTextNode*>(pDoc->GetNodes()[nIndex])->GetText());
+ // tdf#134940 avoid premature replacement of "--" in "-->"
+ pWrtShell->Insert(u" --");
+ pWrtShell->AutoCorrect(corr, '>');
+ OUString sReplaced2(sReplaced + u" -->");
+ // This was "–>" instead of "-->"
+ CPPUNIT_ASSERT_EQUAL(sReplaced2, static_cast<SwTextNode*>(pDoc->GetNodes()[nIndex])->GetText());
+ pWrtShell->AutoCorrect(corr, ' ');
+ sReplaced += u" → ";
+ // This was "–>" instead of "→"
+ CPPUNIT_ASSERT_EQUAL(sReplaced, static_cast<SwTextNode*>(pDoc->GetNodes()[nIndex])->GetText());
}
void SwUiWriterTest::testTdf133524_Romanian()