diff --git a/0001-create-NoName-error-token-instead-of-setting-error-a.patch b/0001-create-NoName-error-token-instead-of-setting-error-a.patch new file mode 100644 index 0000000..881f770 --- /dev/null +++ b/0001-create-NoName-error-token-instead-of-setting-error-a.patch @@ -0,0 +1,62 @@ +From f81b2592cd93dac2cb78fdb22bf661d04bdef25f Mon Sep 17 00:00:00 2001 +From: Eike Rathke +Date: Wed, 12 Oct 2016 19:47:44 +0200 +Subject: [PATCH] create NoName error token instead of setting error at the + token array + +... when handling name token. This can happen when importing BIFF .xls and the +original range is not present in the document. The document is broken, but such +formula can continue to work if the range expression was not actually executed, +for example IF(TRUE(),then_good,else_bad_range) where else_bad_range is #NAME? +error. + +(cherry picked from commit d3645961d98ce9f0cfb1ef7f0aba7bf020b90945) + +Change-Id: I823ac89115418cf5069b2baf5c5de2c814319ae7 +Reviewed-on: https://gerrit.libreoffice.org/29795 +Tested-by: Jenkins +Reviewed-by: Eike Rathke +--- + sc/source/core/tool/compiler.cxx | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx +index e161b12..5d0af7e 100644 +--- a/sc/source/core/tool/compiler.cxx ++++ b/sc/source/core/tool/compiler.cxx +@@ -4442,6 +4442,7 @@ ScRangeData* ScCompiler::GetRangeData( const FormulaToken& rToken ) const + + bool ScCompiler::HandleRange() + { ++ ScTokenArray* pNew; + const ScRangeData* pRangeData = GetRangeData( *mpToken); + if (pRangeData) + { +@@ -4450,7 +4451,6 @@ bool ScCompiler::HandleRange() + SetError( errNoName ); + else if (mbJumpCommandReorder) + { +- ScTokenArray* pNew; + // put named formula into parentheses. + // But only if there aren't any yet, parenthetical + // ocSep doesn't work, e.g. SUM((...;...)) +@@ -4491,7 +4491,15 @@ bool ScCompiler::HandleRange() + } + } + else +- SetError(errNoName); ++ { ++ // No ScRangeData for an already compiled token can happen in BIFF .xls ++ // import if the original range is not present in the document. ++ pNew = new ScTokenArray; ++ pNew->Add( new FormulaErrorToken(errNoName)); ++ PushTokenArray( pNew, true ); ++ pNew->Reset(); ++ return GetToken(); ++ } + return true; + } + +-- +2.7.4 + diff --git a/libreoffice.spec b/libreoffice.spec index ea1b65d..caa8b18 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -285,6 +285,7 @@ Patch49: 0001-Related-rhbz-1362451-avoid-recursive-ownerchanged-ha.patch Patch50: 0001-Resolves-rhbz-1378521-csv-dialog-a11y-returns-a-new-.patch Patch51: 0001-only-date-autofilter-menus-need-the-space-for-the-tr.patch Patch52: 0001-rhbz-1382401-Support-surrogate-pairs-in-HTMLOutFuncs.patch +Patch53: 0001-create-NoName-error-token-instead-of-setting-error-a.patch %if ! 0%{?rhel} Patch400: 0001-Update-liborcus-to-0.11.0.patch @@ -2358,6 +2359,7 @@ done %changelog * Wed Oct 19 2016 Caolán McNamara - 1:5.1.6.1-3 - export notes pages in impress pdf export dialog is invisible +- No ScRangeData for an already compiled token can happen in BIFF * Fri Oct 07 2016 Stephan Bergmann - 1:5.1.6.1-2 - Resolves: rhbz#1382401 broken export of emojis to HTML