Sophie

Sophie

distrib > Fedora > 13 > i386 > media > updates-src > by-pkgid > cd8ce32c919af60229fca1d7f792c60e > files > 124

openoffice.org-3.2.0-12.35.fc13.src.rpm


# HG changeset patch
# User Michael Stahl <mst@openoffice.org>
# Date 1263384233 -3600
# Node ID 79345a5549be5d2fea5a46a3d29dcd49f698ff8e
# Parent  2c09866efc8c00ce7362750041f9b26dc3c2fef5
#i107826#: apply patch from cmc

diff -r 2c09866efc8c -r 79345a5549be sw/source/core/doc/doccomp.cxx
--- a/sw/source/core/doc/doccomp.cxx	Thu Jan 07 14:40:30 2010 +0100
+++ b/sw/source/core/doc/doccomp.cxx	Wed Jan 13 13:03:53 2010 +0100
@@ -969,6 +969,29 @@
 	return CompareNode( rNode, ((SwCompareLine&)rLine).rNode );
 }
 
+namespace
+{
+    static String SimpleTableToText(const SwNode &rNode)
+    {
+        String sRet;
+        const SwNode* pEndNd = rNode.EndOfSectionNode();
+        SwNodeIndex aIdx( rNode );
+        while (&aIdx.GetNode() != pEndNd)
+        {
+            if (aIdx.GetNode().IsTxtNode())
+            {
+                if (sRet.Len())
+                {
+                    sRet.Append( '\n' );
+                }
+                sRet.Append( aIdx.GetNode().GetTxtNode()->GetExpandTxt() );
+            }
+            aIdx++;
+        }
+        return sRet;
+    }
+}
+
 BOOL SwCompareLine::CompareNode( const SwNode& rDstNd, const SwNode& rSrcNd )
 {
     if( rSrcNd.GetNodeType() != rDstNd.GetNodeType() )
@@ -989,6 +1012,13 @@
 
 			bRet = ( rTSrcNd.EndOfSectionIndex() - rTSrcNd.GetIndex() ) ==
 				   ( rTDstNd.EndOfSectionIndex() - rTDstNd.GetIndex() );
+
+            // --> #i107826#: compare actual table content
+            if (bRet)
+            {
+                bRet = (SimpleTableToText(rSrcNd) == SimpleTableToText(rDstNd));
+            }
+            // <--
 		}
 		break;
 
@@ -1043,6 +1073,15 @@
 	case ND_ENDNODE:
         bRet = rSrcNd.StartOfSectionNode()->GetNodeType() ==
                rDstNd.StartOfSectionNode()->GetNodeType();
+
+        // --> #i107826#: compare actual table content
+        if (bRet && rSrcNd.StartOfSectionNode()->GetNodeType() == ND_TABLENODE)
+        {
+            bRet = CompareNode(
+                *rSrcNd.StartOfSectionNode(), *rDstNd.StartOfSectionNode());
+        }
+        // <--
+
 		break;
 	}
 	return bRet;
@@ -1059,18 +1098,7 @@
 
 	case ND_TABLENODE:
 		{
-			const SwNode* pEndNd = rNode.EndOfSectionNode();
-			SwNodeIndex aIdx( rNode );
-			while( &aIdx.GetNode() != pEndNd )
-			{
-				if( aIdx.GetNode().IsTxtNode() )
-				{
-					if( sRet.Len() )
-						sRet.Append( '\n' );
-					sRet.Append( ((SwTxtNode&)rNode).GetExpandTxt() );
-				}
-				aIdx++;
-			}
+			sRet = SimpleTableToText(rNode);
 			sRet.InsertAscii( "Tabelle: ", 0 );
 		}
 		break;