summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2016-06-27 13:02:20 +0200
committerCaolán McNamara <caolanm@redhat.com>2016-06-29 14:41:15 +0000
commit4c6685a93cc4b82d2a9300f9a4fd64c5c54fb568 (patch)
treecaed111c0b8be20fb74fa533d9def60235353734
parent0a5ec9de2d558a428fd31c258132bac0fe6d8e3f (diff)
tdf#100641 correct OOXML function name is EFFECT instead of EFFECTIVE
(cherry picked from commit ed5bcef57b678cb92c68bf842a72e50f4dd1e2ea) accept EFFECTIVE as EFFECT in OOXML import (cherry picked from commit f3f89f4f3180b0fd63c5290c665894c6a27f2ae2) 18a914972d69a37e9dcf5b18ffbea9177004dad7 Change-Id: Ieb7484afe210e378efd43ba3a181cd90d29619b9 Reviewed-on: https://gerrit.libreoffice.org/26704 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--formula/source/core/resource/core_resource.src2
-rw-r--r--sc/source/core/tool/compiler.cxx22
2 files changed, 23 insertions, 1 deletions
diff --git a/formula/source/core/resource/core_resource.src b/formula/source/core/resource/core_resource.src
index af22f1b6bc65..a024aa01e8b8 100644
--- a/formula/source/core/resource/core_resource.src
+++ b/formula/source/core/resource/core_resource.src
@@ -663,7 +663,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
String SC_OPCODE_PPMT { Text = "PPMT" ; };
String SC_OPCODE_CUM_IPMT { Text = "CUMIPMT" ; };
String SC_OPCODE_CUM_PRINC { Text = "CUMPRINC" ; };
- String SC_OPCODE_EFFECTIVE { Text = "EFFECTIVE" ; };
+ String SC_OPCODE_EFFECTIVE { Text = "EFFECT" ; };
String SC_OPCODE_NOMINAL { Text = "NOMINAL" ; };
String SC_OPCODE_SUB_TOTAL { Text = "SUBTOTAL" ; };
String SC_OPCODE_DB_SUM { Text = "DSUM" ; };
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index a841c804b9a3..c6684c80e706 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -2672,6 +2672,28 @@ bool ScCompiler::IsOpCode( const OUString& rName, bool bInArray )
}
}
}
+ else if (mxSymbols->isOOXML())
+ {
+ // OOXML names that are not written in the current mapping but to be
+ // recognized as old versions wrote them.
+ struct FunctionName
+ {
+ const sal_Char* pName;
+ OpCode eOp;
+ };
+ static const FunctionName aOoxmlAliases[] = {
+ { "EFFECTIVE", ocEffective } // EFFECTIVE -> EFFECT
+ };
+ for (const FunctionName& rOoxmlAlias : aOoxmlAliases)
+ {
+ if (rName.equalsIgnoreAsciiCaseAscii( rOoxmlAlias.pName))
+ {
+ maRawToken.SetOpCode( rOoxmlAlias.eOp);
+ bFound = true;
+ break; // for
+ }
+ }
+ }
if (!bFound)
{
OUString aIntName;