sc/qa/unit/ucalc.cxx | 2 +- sc/source/core/tool/token.cxx | 23 ++++++++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-)
New commits: commit 70d85e6dc63f73cf5d73e77429facb177ceec209 Author: Kohei Yoshida <[email protected]> Date: Fri Nov 15 19:03:56 2013 -0500 Handle external functions (add-ins). Unfortunately we can't test this piece easily just yet. Enabling add-in functions would mess up the function list which is unit-tested and thus fail if we enable add-ins in unit test. Change-Id: Ieda5e5560d4c7e68d7c6272c5d85f2ac63bd4ee4 diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index 294dd65..9eef1ee 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -2552,7 +2552,7 @@ void Test::testFunctionLists() for (sal_uInt32 j = 0; j < nFuncCount; ++j) { const formula::IFunctionDescription* pFunc = pCat->getFunction(j); - CPPUNIT_ASSERT_EQUAL_MESSAGE("Unexpected function name", pFunc->getFunctionName(), OUString::createFromAscii(aTests[i].Functions[j])); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Unexpected function name", OUString::createFromAscii(aTests[i].Functions[j]), pFunc->getFunctionName()); } } } diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx index b60d77a..caa113f 100644 --- a/sc/source/core/tool/token.cxx +++ b/sc/source/core/tool/token.cxx @@ -41,6 +41,7 @@ #include "tokenstringcontext.hxx" #include "types.hxx" #include "globstr.hrc" +#include "addincol.hxx" #include "svl/sharedstring.hxx" using ::std::vector; @@ -3278,7 +3279,27 @@ void appendTokenByType( sc::TokenStringContext& rCxt, OUStringBuffer& rBuf, cons } break; case svExternal: - // TODO : Implement this. + { + // mapped or translated name of AddIns + OUString aAddIn = rToken.GetExternal(); + fprintf(stdout, "appendTokenByType: addin = '%s'\n", rtl::OUStringToOString(aAddIn, RTL_TEXTENCODING_UTF8).getStr()); + bool bMapped = rCxt.mxOpCodeMap->isPODF(); // ODF 1.1 directly uses programmatical name + if (!bMapped && rCxt.mxOpCodeMap->hasExternals()) + { + const ExternalHashMap& rExtMap = *rCxt.mxOpCodeMap->getReverseExternalHashMap(); + ExternalHashMap::const_iterator it = rExtMap.find(aAddIn); + if (it != rExtMap.end()) + { + aAddIn = it->second; + bMapped = true; + } + } + + if (!bMapped && !rCxt.mxOpCodeMap->isEnglish()) + ScGlobal::GetAddInCollection()->LocalizeString(aAddIn); + + rBuf.append(aAddIn); + } break; case svError: { _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
