summaryrefslogtreecommitdiff
path: root/formula
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2009-06-09 06:07:51 +0000
committerOliver Bolte <obo@openoffice.org>2009-06-09 06:07:51 +0000
commit7620aaa03c66a5f96acfb63b2a89e823083cba03 (patch)
tree86a92812f2af45a177c8bf53e2fd296a5898d5c4 /formula
parent109511b84efb6107c99cc4d045fc08a87fa08152 (diff)
CWS-TOOLING: integrate CWS calc311fixes
2009-05-26 16:43:50 +0200 nn r272311 : patch flags 2009-05-26 15:20:08 +0200 nn r272306 : CWS-TOOLING: rebase CWS calc311fixes to branches/OOO310@272261 (milestone: OOO310:m12) 2009-05-26 13:39:20 +0200 nn r272298 : #i101960# UpdateExternalRefLinks: set document modified 2009-05-20 20:02:01 +0200 dr r272148 : #i102056# drag and drop of note cells loses cell contents 2009-05-19 17:37:04 +0200 nn r272091 : #i101273# #i101304# #i101319# copied from CWS calclinkfixes 2009-05-13 18:46:19 +0200 nn r271869 : #i101690# copied from CWS calc50 2009-05-13 17:45:18 +0200 nn r271867 : #i101869# DeleteRange: before broadcasting, check if EndListening removed the note cells 2009-05-11 18:44:54 +0200 nn r271784 : #i101725# don't copy hash_set with pointers from the other collection 2009-05-11 18:39:33 +0200 nn r271782 : #i101512# copied from CWS calc50 2009-05-11 18:39:22 +0200 nn r271781 : #i101512# copied from CWS calc50
Diffstat (limited to 'formula')
-rw-r--r--formula/inc/formula/FormulaCompiler.hxx3
-rw-r--r--formula/source/ui/dlg/formula.cxx5
2 files changed, 7 insertions, 1 deletions
diff --git a/formula/inc/formula/FormulaCompiler.hxx b/formula/inc/formula/FormulaCompiler.hxx
index 9aa65ba30d..4be65adb75 100644
--- a/formula/inc/formula/FormulaCompiler.hxx
+++ b/formula/inc/formula/FormulaCompiler.hxx
@@ -219,6 +219,9 @@ public:
*/
OpCode GetEnglishOpCode( const String& rName ) const;
+ void SetCompileForFAP( BOOL bVal )
+ { bCompileForFAP = bVal; bIgnoreErrors = bVal; }
+
static BOOL DeQuote( String& rStr );
static const String& GetNativeSymbol( OpCode eOp );
diff --git a/formula/source/ui/dlg/formula.cxx b/formula/source/ui/dlg/formula.cxx
index 35e16e5b7c..ecd0563472 100644
--- a/formula/source/ui/dlg/formula.cxx
+++ b/formula/source/ui/dlg/formula.cxx
@@ -675,8 +675,10 @@ void FormulaDlg_Impl::MakeTree(IStructHelper* _pTree,SvLBoxEntry* pParent,Formul
long nParas = _pToken->GetParamCount();
OpCode eOp = _pToken->GetOpCode();
+ // #i101512# for output, the original token is needed
+ FormulaToken* pOrigToken = (_pToken->GetType() == svFAP) ? _pToken->GetFAPOrigToken() : _pToken;
uno::Sequence<sheet::FormulaToken> aArgs(1);
- aArgs[0] = m_aTokenMap.find(_pToken)->second;
+ aArgs[0] = m_aTokenMap.find(pOrigToken)->second;
try
{
const String aResult = m_pHelper->getFormulaParser()->printFormula(aArgs);
@@ -766,6 +768,7 @@ void FormulaDlg_Impl::UpdateTokenArray( const String& rStrExp)
} // if ( pTokens && nLen == m_aTokenList.getLength() )
FormulaCompiler aCompiler(*m_pTokenArray.get());
+ aCompiler.SetCompileForFAP(TRUE); // #i101512# special handling is needed
aCompiler.CompileTokenArray();
}