Kaydet (Commit) 3b8b3136 authored tarafından Oliver-Rainer Wittmann's avatar Oliver-Rainer Wittmann

#119624# - method <SwWW8ImplReader::IsObjectLayoutInTableCell(..)>

- correction of condition interpreting <LayoutInTableCell> attribute
- include support for Microsoft Office 2010 version

Found by: louqle <louqingle at gmail dot com>
Patch by: Oliver-Rainer Wittmann <orw at apache dot org>
Review by: zjchen <zjchencdl at gmail dot com>
üst 153c8eea
...@@ -2398,7 +2398,6 @@ RndStdIds SwWW8ImplReader::ProcessEscherAlign(SvxMSDffImportRec* pRecord, ...@@ -2398,7 +2398,6 @@ RndStdIds SwWW8ImplReader::ProcessEscherAlign(SvxMSDffImportRec* pRecord,
if ( nInTable && if ( nInTable &&
( eHoriRel == text::RelOrientation::FRAME || eHoriRel == text::RelOrientation::CHAR ) && ( eHoriRel == text::RelOrientation::FRAME || eHoriRel == text::RelOrientation::CHAR ) &&
pFSPA->nwr == 3 && pFSPA->nwr == 3 &&
// pRecord->nLayoutInTableCell == 0x80000000 )
!IsObjectLayoutInTableCell( pRecord->nLayoutInTableCell ) ) !IsObjectLayoutInTableCell( pRecord->nLayoutInTableCell ) )
{ {
eHoriRel = text::RelOrientation::PAGE_PRINT_AREA; eHoriRel = text::RelOrientation::PAGE_PRINT_AREA;
...@@ -2468,19 +2467,20 @@ bool SwWW8ImplReader::IsObjectLayoutInTableCell( const sal_uInt32 nLayoutInTable ...@@ -2468,19 +2467,20 @@ bool SwWW8ImplReader::IsObjectLayoutInTableCell( const sal_uInt32 nLayoutInTable
{ {
bIsObjectLayoutInTableCell = false; bIsObjectLayoutInTableCell = false;
ASSERT( nLayoutInTableCell == 0xFFFFFFFF, ASSERT( nLayoutInTableCell == 0xFFFFFFFF,
"no explicit object attribute layout in table cell excepted." ); "no explicit object attribute layout in table cell expected." );
} }
break; break;
case 0x2000: // version 9 aka Microsoft Word 2000 case 0x2000: // version 9 aka Microsoft Word 2000
case 0x4000: // version 10 aka Microsoft Word 2002 case 0x4000: // version 10 aka Microsoft Word 2002
case 0x6000: // version 11 aka Microsoft Word 2003 case 0x6000: // version 11 aka Microsoft Word 2003
case 0x8000: // version 12 aka Microsoft Word 2007 case 0x8000: // version 12 aka Microsoft Word 2007
case 0xC000: // version 14 aka Microsoft Word 2010
{ {
// --> OD 2009-01-13 #i98037# // --> OD 2009-01-13 #i98037#
// adjustment of conditions needed after deeper analysis of // adjustment of conditions needed after deeper analysis of
// certain test cases. // certain test cases.
if ( nLayoutInTableCell == 0xFFFFFFFF || // no explicit attribute value given if ( nLayoutInTableCell == 0xFFFFFFFF || // no explicit attribute value given
nLayoutInTableCell & 0x80008000 || nLayoutInTableCell == 0x80008000 ||
( nLayoutInTableCell & 0x02000000 && ( nLayoutInTableCell & 0x02000000 &&
!(nLayoutInTableCell & 0x80000000 ) ) ) !(nLayoutInTableCell & 0x80000000 ) ) )
// <-- // <--
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment