rpms/openoffice.org/devel openoffice.org-2.3.1.ooo81307.sw.word2.patch, NONE, 1.1 openoffice.org.spec, 1.1333, 1.1334

Caolan McNamara (caolanm) fedora-extras-commits at redhat.com
Mon Nov 12 17:32:01 UTC 2007


Author: caolanm

Update of /cvs/pkgs/rpms/openoffice.org/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv9732

Modified Files:
	openoffice.org.spec 
Added Files:
	openoffice.org-2.3.1.ooo81307.sw.word2.patch 
Log Message:
add openoffice.org-2.3.1.ooo81307.sw.word2.patch

openoffice.org-2.3.1.ooo81307.sw.word2.patch:

--- NEW FILE openoffice.org-2.3.1.ooo81307.sw.word2.patch ---
Index: source/filter/ww8/ww8par6.cxx
===================================================================
RCS file: /cvs/sw/sw/source/filter/ww8/ww8par6.cxx,v
retrieving revision 1.175
diff -u -r1.175 ww8par6.cxx
--- openoffice.org.orig/sw/source/filter/ww8/ww8par6.cxx	18 Jul 2007 14:47:14 -0000	1.175
+++ openoffice.org/sw/source/filter/ww8/ww8par6.cxx	12 Nov 2007 17:12:13 -0000
@@ -4088,8 +4088,10 @@
             pCtrlStck->SetAttr( *pPaM->GetPoint(), RES_UL_SPACE );
         return;
     }
+
     short nSpace = SVBT16ToShort( pData );
-    short nMulti = SVBT16ToShort( pData + 2 );
+    ww::WordVersion eVersion = pWwFib->GetFIBVersion();
+    short nMulti = (eVersion <= ww::eWW2) ? 1 : SVBT16ToShort( pData + 2 );
 
     SvxLineSpace eLnSpc;
     if( 0 > nSpace )
Index: source/filter/ww8/ww8scan.cxx
===================================================================
RCS file: /cvs/sw/sw/source/filter/ww8/ww8scan.cxx,v
retrieving revision 1.132
diff -u -r1.132 ww8scan.cxx
--- openoffice.org.orig/sw/source/filter/ww8/ww8scan.cxx	25 May 2007 13:03:35 -0000	1.132
+++ openoffice.org/sw/source/filter/ww8/ww8scan.cxx	12 Nov 2007 17:12:17 -0000
@@ -3463,7 +3463,16 @@
         else
         {
             pStrm->Seek( nPo );
-            *pStrm >> nSprmSiz; // read len
+
+            // read len
+            if (GetFIBVersion() <= ww::eWW2)	// eWW6 ?, docs say yes, but...
+            {
+                BYTE nSiz(0);
+                *pStrm >> nSiz;
+                nSprmSiz = nSiz;
+            }
+            else 
+                *pStrm >> nSprmSiz;
 
             if( nSprmSiz > nArrMax )
             {               // passt nicht
@@ -6086,15 +6095,15 @@
         return;
     }
 
-    bool bVer67 = (8 > rFib.nVersion);
-
     rSt.Seek( rFib.fcSttbfffn );
 
     // allocate Font Array
     BYTE* pA   = new BYTE[ rFib.lcbSttbfffn - 2 ];
     WW8_FFN* p = (WW8_FFN*)pA;
 
-    if( !bVer67 )
+    ww::WordVersion eVersion = rFib.GetFIBVersion();
+
+    if( eVersion >= ww::eWW8 )
     {
         // bVer8: read the count of strings in nMax
         rSt >> nMax;
@@ -6108,7 +6117,7 @@
     // read all font information
     rSt.Read( pA, rFib.lcbSttbfffn - 2 );
 
-    if( bVer67 )
+    if( eVersion < ww::eWW8 )
     {
         // try to figure out how many fonts are defined here
         nMax = 0;
@@ -6135,7 +6144,34 @@
         pFontA = new WW8_FFN[ nMax ];
         p = pFontA;
 
-        if( bVer67 )
+	if( eVersion <= ww::eWW2 )
+	{
+            WW8_FFN_BASE* pVer2 = (WW8_FFN_BASE*)pA;
+            BYTE c2;
+            for(USHORT i=0; i<nMax; ++i, ++p)
+            {
+                p->cbFfnM1   = pVer2->cbFfnM1;
+
+                p->prg       =  0;
+                p->fTrueType = 0;
+                p->ff        = 0;
+
+                p->wWeight   = ( *(((BYTE*)pVer2) + 1) );
+                p->chs   = ( *(((BYTE*)pVer2) + 2) );
+        	/*
+                 #i8726# 7- seems to encode the name in the same encoding as
+                 the font, e.g load the doc in 97 and save to see the unicode
+                 ver of the asian fontnames in that example to confirm.
+                */
+                rtl_TextEncoding eEnc = WW8Fib::GetFIBCharset(p->chs);
+                if ((eEnc == RTL_TEXTENCODING_SYMBOL) || (eEnc == RTL_TEXTENCODING_DONTKNOW))
+                    eEnc = RTL_TEXTENCODING_MS_1252;
+
+                p->sFontname = String ( (((const sal_Char*)pVer2) + 1 + 2), eEnc);
+                pVer2 = (WW8_FFN_BASE*)( ((BYTE*)pVer2) + pVer2->cbFfnM1 + 1 );
+            }
+	}
+        else if( eVersion < ww::eWW8 )
         {
             WW8_FFN_Ver6* pVer6 = (WW8_FFN_Ver6*)pA;
             BYTE c2;


Index: openoffice.org.spec
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/devel/openoffice.org.spec,v
retrieving revision 1.1333
retrieving revision 1.1334
diff -u -r1.1333 -r1.1334
--- openoffice.org.spec	10 Nov 2007 14:38:51 -0000	1.1333
+++ openoffice.org.spec	12 Nov 2007 17:31:22 -0000	1.1334
@@ -152,6 +152,7 @@
 Patch70: openoffice.org-2.3.0.ooo76649.httpencoding.patch
 Patch71: openoffice.org-2.3.0.ooo82966.svx.missing3d.patch
 Patch72: openoffice.org-2.3.0.ooo83169.colordialog.crash.patch
+Patch73: openoffice.org-2.3.1.ooo81307.sw.word2.patch
 
 %define instdir %{_libdir}/openoffice.org
 
@@ -1103,6 +1104,7 @@
 %patch70 -p1 -b .ooo76649.httpencoding.patc
 %patch71 -p1 -b .ooo82966.svx.missing3d.patch
 %patch72 -p1 -b .ooo83169.colordialog.crash.patch
+%patch73 -p1 -b .ooo81307.sw.word2.patch
 
 %if %{linkopt}
 chmod a+x solenv/bin/mklinkscript.pl
@@ -2813,8 +2815,9 @@
 %{instdir}/share/registry/modules/org/openoffice/Office/Scripting/Scripting-python.xcu
 
 %changelog
-* Sat Nov 10 2007 Caolan McNamara <caolanm at redhat.com> - 1:2.3.0-6.8
+* Mon Nov 12 2007 Caolan McNamara <caolanm at redhat.com> - 1:2.3.0-6.8
 - tweak mime information and desktop files to support .oxt extensions
+- add openoffice.org-2.3.1.ooo81307.sw.word2.patch
 
 * Fri Nov 09 2007 Caolan McNamara <caolanm at redhat.com> - 1:2.3.0-6.7
 - rebuild for hunspell




More information about the fedora-extras-commits mailing list