From ceafd0a76fb062237f627cd9d49d4aad78cf3066 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Thu, 9 Apr 2015 14:20:44 +0200 Subject: [PATCH] tdf#89214 SwDoc::GetUniqueNumRuleName: always return pChkStr if it's unused Regression from commit bb00a0097900ae054401f7758a915047cfde4065 (do not bother with nice unique names during mailmerge, 2014-11-08), SwAttrSet::CopyToModify() expects that in case SwDoc::FindNumRulePtr() returns 0 for a name, then the call to SwDoc::MakeNumRule() will use the not found name (as SwDoc::GetUniqueNumRuleName() will return the just checked name). As a result, simply always returning a random unique name during mail merge is a problem. Only return a cheap random unique name if no hint is given. Change-Id: I49d65009ced97d00aa2e8db35a529f2f30ac9ae5 --- sw/qa/extras/mailmerge/data/tdf89214.odt | Bin 0 -> 9832 bytes sw/qa/extras/mailmerge/mailmerge.cxx | 12 ++++++++++++ sw/source/core/doc/docnum.cxx | 6 +++--- 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 sw/qa/extras/mailmerge/data/tdf89214.odt diff --git a/sw/qa/extras/mailmerge/data/tdf89214.odt b/sw/qa/extras/mailmerge/data/tdf89214.odt new file mode 100644 index 0000000000000000000000000000000000000000..70def3730e2676b1a459f935ab119caccc16577d GIT binary patch literal 9832 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 R0Dyh_f!y-X;^Vu!{{l@b3n%~p literal 0 HcmV?d00001 diff --git a/sw/qa/extras/mailmerge/mailmerge.cxx b/sw/qa/extras/mailmerge/mailmerge.cxx index fc6962013da8..319bf93584cf 100644 --- a/sw/qa/extras/mailmerge/mailmerge.cxx +++ b/sw/qa/extras/mailmerge/mailmerge.cxx @@ -394,5 +394,17 @@ DECLARE_SHELL_MAILMERGE_TEST(testPageBoundaries2Pages, "simple-mail-merge-2pages } } +DECLARE_SHELL_MAILMERGE_TEST(testTdf89214, "tdf89214.odt", "10-testing-addresses.ods", "testing-addresses") +{ + executeMailMerge(); + + uno::Reference xTextDocument(mxMMComponent, uno::UNO_QUERY); + uno::Reference xParagraph(getParagraphOrTable(3, xTextDocument->getText()), uno::UNO_QUERY); + // Make sure that we assert the right paragraph. + CPPUNIT_ASSERT_EQUAL(OUString("a"), xParagraph->getString()); + // This paragraph had a bullet numbering, make sure that the list id is not empty. + CPPUNIT_ASSERT(!getProperty(xParagraph, "ListId").isEmpty()); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/doc/docnum.cxx b/sw/source/core/doc/docnum.cxx index 1f45c4927f0d..4d3e46df5ed5 100644 --- a/sw/source/core/doc/docnum.cxx +++ b/sw/source/core/doc/docnum.cxx @@ -2178,13 +2178,13 @@ sal_uInt16 SwDoc::MakeNumRule( const OUString &rName, OUString SwDoc::GetUniqueNumRuleName( const OUString* pChkStr, bool bAutoNum ) const { - if( IsInMailMerge()) + // If we got pChkStr, then the caller expects that in case it's not yet + // used, it'll be returned. + if( IsInMailMerge() && !pChkStr ) { OUString newName = "MailMergeNumRule" + OStringToOUString( DateTimeToOString( DateTime( DateTime::SYSTEM )), RTL_TEXTENCODING_ASCII_US ) + OUString::number( mpNumRuleTbl->size() + 1 ); - if( pChkStr ) - newName += *pChkStr; return newName; }