dbe7e84
From a730b43f32390b1408078d7d176f9630c4fd23b6 Mon Sep 17 00:00:00 2001
dbe7e84
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
dbe7e84
Date: Mon, 19 Jun 2017 15:02:17 +0100
dbe7e84
Subject: [PATCH 2/2] consider field marks as text for auto quotes
dbe7e84
dbe7e84
Change-Id: I511a13f7785a0de6efaa8439d3f0bff20a1644ed
dbe7e84
---
dbe7e84
 editeng/qa/unit/core-test.cxx    | 17 +++++++++++++++++
dbe7e84
 editeng/source/misc/svxacorr.cxx |  2 +-
dbe7e84
 2 files changed, 18 insertions(+), 1 deletion(-)
dbe7e84
dbe7e84
diff --git a/editeng/qa/unit/core-test.cxx b/editeng/qa/unit/core-test.cxx
dbe7e84
index 8048fea..552d713 100644
dbe7e84
--- a/editeng/qa/unit/core-test.cxx
dbe7e84
+++ b/editeng/qa/unit/core-test.cxx
dbe7e84
@@ -351,6 +351,7 @@ void Test::testAutocorrect()
dbe7e84
         CPPUNIT_ASSERT_EQUAL_MESSAGE("autocorrect", sExpected, aFoo.getResult());
dbe7e84
     }
dbe7e84
 
dbe7e84
+    // don't autocapitalize after a field mark
dbe7e84
     {
dbe7e84
         OUString sInput("Test. \x01 test");
dbe7e84
         sal_Unicode cNextChar(' ');
dbe7e84
@@ -361,6 +362,22 @@ void Test::testAutocorrect()
dbe7e84
 
dbe7e84
         CPPUNIT_ASSERT_EQUAL_MESSAGE("autocorrect", sExpected, aFoo.getResult());
dbe7e84
     }
dbe7e84
+
dbe7e84
+    // consider field contents as text for auto quotes
dbe7e84
+    {
dbe7e84
+        OUString sInput("T\x01");
dbe7e84
+        sal_Unicode cNextChar('"');
dbe7e84
+        const sal_Unicode EXPECTED[] = { 'T', 0x01, 0x0201d };
dbe7e84
+        OUString sExpected(EXPECTED, SAL_N_ELEMENTS(EXPECTED));
dbe7e84
+
dbe7e84
+        TestAutoCorrDoc aFoo(sInput, LANGUAGE_ENGLISH_US);
dbe7e84
+        aAutoCorrect.SetAutoCorrFlag(ChgQuotes, true);
dbe7e84
+        aAutoCorrect.DoAutoCorrect(aFoo, sInput, sInput.getLength(), cNextChar, true);
dbe7e84
+        fprintf(stderr, "text is %x\n", aFoo.getResult()[aFoo.getResult().getLength() - 1]);
dbe7e84
+
dbe7e84
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("autocorrect", sExpected, aFoo.getResult());
dbe7e84
+    }
dbe7e84
+
dbe7e84
 }
dbe7e84
 
dbe7e84
 namespace {
dbe7e84
diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx
dbe7e84
index 6a815bc..99075e8 100644
dbe7e84
--- a/editeng/source/misc/svxacorr.cxx
dbe7e84
+++ b/editeng/source/misc/svxacorr.cxx
dbe7e84
@@ -1247,7 +1247,7 @@ void SvxAutoCorrect::DoAutoCorrect( SvxAutoCorrDoc& rDoc, const OUString& rTxt,
dbe7e84
             {
dbe7e84
                 sal_Unicode cPrev;
dbe7e84
                 bool bSttQuote = !nInsPos ||
dbe7e84
-                        IsWordDelim( ( cPrev = rTxt[ nInsPos-1 ])) ||
dbe7e84
+                        NonFieldWordDelim( ( cPrev = rTxt[ nInsPos-1 ])) ||
dbe7e84
                         lcl_IsInAsciiArr( "([{", cPrev ) ||
dbe7e84
                         ( cEmDash && cEmDash == cPrev ) ||
dbe7e84
                         ( cEnDash && cEnDash == cPrev );
dbe7e84
-- 
dbe7e84
2.9.3
dbe7e84