first attempt at 3.5 in rawhide

f41
David Tardon 13 years ago
parent 1f1ffc6376
commit a881c9f5b2

9
.gitignore vendored

@ -31,3 +31,12 @@
/libreoffice-filters-3.4.4.2.tar.bz2 /libreoffice-filters-3.4.4.2.tar.bz2
/libreoffice-help-3.4.4.2.tar.bz2 /libreoffice-help-3.4.4.2.tar.bz2
/libreoffice-impress-3.4.4.2.tar.bz2 /libreoffice-impress-3.4.4.2.tar.bz2
/libreoffice-core-3.5.0.0.tar.bz2
/libreoffice-binfilter-3.5.0.0.tar.bz2
/a8b25a0bf696fd126a08319d88998492-libvisio-0.0.11.tar.bz2
/e1c178b18f130b40494561f02bc1a948-libexttextcat-3.2.0.tar.bz2
/libreoffice-help-3.5.0.0.tar.bz2
/7c2549f6b0a8bb604e6c4c729ffdcfe6-libcmis-0.1.0.tar.gz
/0981bda6548a8c8233ffce2b6e4b2a23-mysql-connector-c++-1.1.0.tar.gz
/libreoffice-translations-3.5.0.0.tar.bz2
/libreoffice-multiliblauncher.sh

@ -1,21 +0,0 @@
From 5e4c9fb9bbf12b40afbefb30e8d71d6e046b5bd0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 26 Aug 2011 13:05:32 +0100
Subject: [PATCH] Related: fdo#37195 migrationoo3 not registered
---
postprocess/packcomponents/makefile.mk | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/postprocess/packcomponents/makefile.mk b/postprocess/packcomponents/makefile.mk
index b5f50a0..c23da77 100644
--- a/postprocess/packcomponents/makefile.mk
+++ b/postprocess/packcomponents/makefile.mk
@@ -126,6 +126,7 @@
lwpfilter \
mcnttype \
migrationoo2 \
+ migrationoo3 \
mtfrenderer \
msfilter \
msworksfilter \

@ -1,102 +0,0 @@
From 3524727db0f3cfecf3a47046795c527808c10c3e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 23 Jun 2011 15:14:00 +0100
Subject: [PATCH] Related: #i58612# don't crash anyway
---
sw/source/core/text/frmform.cxx | 11 ++++++-----
sw/source/core/text/inftxt.cxx | 3 ++-
sw/source/core/text/txtfly.cxx | 6 ++++--
sw/source/core/text/txtfrm.cxx | 7 +++++--
4 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/sw/source/core/text/frmform.cxx b/sw/source/core/text/frmform.cxx
index 6a4be32..6b3b9cc 100755
--- a/sw/source/core/text/frmform.cxx
+++ b/sw/source/core/text/frmform.cxx
@@ -1463,10 +1463,11 @@ void SwTxtFrm::_Format( SwTxtFormatter &rLine, SwTxtFormatInfo &rInf,
if( IsFollow() && IsFieldFollow() && rLine.GetStart() == GetOfst() )
{
- const SwLineLayout* pLine;
+ SwTxtFrm *pMaster = FindMaster();
+ OSL_ENSURE( pMaster, "SwTxtFrm::Format: homeless follow" );
+ const SwLineLayout* pLine=NULL;
+ if (pMaster)
{
- SwTxtFrm *pMaster = FindMaster();
- OSL_ENSURE( pMaster, "SwTxtFrm::Format: homeless follow" );
if( !pMaster->HasPara() )
pMaster->GetFormatted();
SwTxtSizeInfo aInf( pMaster );
@@ -1474,8 +1475,8 @@ void SwTxtFrm::_Format( SwTxtFormatter &rLine, SwTxtFormatInfo &rInf,
aMasterLine.Bottom();
pLine = aMasterLine.GetCurr();
}
- SwLinePortion* pRest =
- rLine.MakeRestPortion( pLine, GetOfst() );
+ SwLinePortion* pRest = pLine ?
+ rLine.MakeRestPortion(pLine, GetOfst()) : NULL;
if( pRest )
rInf.SetRest( pRest );
else
diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx
index 570b3c6..a76d746 100644
--- a/sw/source/core/text/inftxt.cxx
+++ b/sw/source/core/text/inftxt.cxx
@@ -1465,7 +1465,8 @@ void SwTxtFormatInfo::Init()
if ( GetTxtFrm()->IsFollow() )
{
const SwTxtFrm* pMaster = GetTxtFrm()->FindMaster();
- const SwLinePortion* pTmpPara = pMaster->GetPara();
+ OSL_ENSURE(pMaster, "pTxtFrm without Master");
+ const SwLinePortion* pTmpPara = pMaster ? pMaster->GetPara() : NULL;
// there is a master for this follow and the master does not have
// any contents (especially it does not have a number portion)
diff --git a/sw/source/core/text/txtfly.cxx b/sw/source/core/text/txtfly.cxx
index 2d21ece..fbff110 100644
--- a/sw/source/core/text/txtfly.cxx
+++ b/sw/source/core/text/txtfly.cxx
@@ -890,7 +890,7 @@ sal_Bool SwTxtFly::IsAnyObj( const SwRect &rRect ) const
const SwCntntFrm* SwTxtFly::_GetMaster()
{
pMaster = pCurrFrm;
- while( pMaster->IsFollow() )
+ while( pMaster && pMaster->IsFollow() )
pMaster = (SwCntntFrm*)pMaster->FindMaster();
return pMaster;
}
@@ -1551,7 +1551,9 @@ SwAnchoredObjList* SwTxtFly::InitAnchoredObjList()
SwTwips SwTxtFly::CalcMinBottom() const
{
SwTwips nRet = 0;
- const SwSortedObjs *pDrawObj = GetMaster()->GetDrawObjs();
+ const SwCntntFrm *pLclMaster = GetMaster();
+ OSL_ENSURE(pLclMaster, "SwTxtFly without master");
+ const SwSortedObjs *pDrawObj = pLclMaster ? pLclMaster->GetDrawObjs() : NULL;
const sal_uInt32 nCount = pDrawObj ? pDrawObj->Count() : 0;
if( nCount )
{
diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx
index 6e5f764..9e4a237 100644
--- a/sw/source/core/text/txtfrm.cxx
+++ b/sw/source/core/text/txtfrm.cxx
@@ -646,9 +646,12 @@ void SwTxtFrm::HideAndShowObjects()
}
}
- if ( IsFollow() )
+ if (IsFollow())
{
- FindMaster()->HideAndShowObjects();
+ SwTxtFrm *pMaster = FindMaster();
+ OSL_ENSURE(pMaster, "SwTxtFrm without master");
+ if (pMaster)
+ pMaster->HideAndShowObjects();
}
}
--
1.7.6.4

@ -1,127 +0,0 @@
From 5613954b275de8de9e6852738a7bfd215252d134 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 7 Jun 2011 17:03:52 +0100
Subject: [PATCH] Related: rhbz#652604 better survive exceptions thrown during
autorecover
---
framework/inc/services/autorecovery.hxx | 20 ++++++++++++++
framework/source/services/autorecovery.cxx | 40 +++++++++++++++++++++------
2 files changed, 51 insertions(+), 9 deletions(-)
diff --git a/framework/inc/services/autorecovery.hxx b/framework/inc/services/autorecovery.hxx
index 636ad98..6c4207e 100644
--- a/framework/inc/services/autorecovery.hxx
+++ b/framework/inc/services/autorecovery.hxx
@@ -861,6 +861,26 @@ class AutoRecovery : public css::lang::XTypeProvider
const ::rtl::OUString& sEventType,
AutoRecovery::TDocumentInfo* pInfo );
+
+ class ListenerInformer
+ {
+ private:
+ AutoRecovery &m_rRecovery;
+ sal_Int32 m_eJob;
+ bool m_bStopped;
+ public:
+ ListenerInformer(AutoRecovery &rRecovery, sal_Int32 eJob)
+ : m_rRecovery(rRecovery), m_eJob(eJob), m_bStopped(false)
+ {
+ }
+ void start();
+ void stop();
+ ~ListenerInformer()
+ {
+ stop();
+ }
+ };
+
//---------------------------------------
// TODO document me
diff --git a/framework/source/services/autorecovery.cxx b/framework/source/services/autorecovery.cxx
index efe2f17..ec60d13 100644
--- a/framework/source/services/autorecovery.cxx
+++ b/framework/source/services/autorecovery.cxx
@@ -576,6 +576,21 @@ void SAL_CALL AutoRecovery::dispatch(const css::util::URL&
implts_dispatch(aParams);
}
+void AutoRecovery::ListenerInformer::start()
+{
+ m_rRecovery.implts_informListener(m_eJob,
+ AutoRecovery::implst_createFeatureStateEvent(m_eJob, OPERATION_START, NULL));
+}
+
+void AutoRecovery::ListenerInformer::stop()
+{
+ if (m_bStopped)
+ return;
+ m_rRecovery.implts_informListener(m_eJob,
+ AutoRecovery::implst_createFeatureStateEvent(m_eJob, OPERATION_STOP, NULL));
+ m_bStopped = true;
+}
+
//-----------------------------------------------
void AutoRecovery::implts_dispatch(const DispatchParams& aParams)
{
@@ -599,8 +614,8 @@ void AutoRecovery::implts_dispatch(const DispatchParams& aParams)
implts_stopTimer();
implts_stopListening();
- implts_informListener(eJob,
- AutoRecovery::implst_createFeatureStateEvent(eJob, OPERATION_START, NULL));
+ ListenerInformer aListenerInformer(*this, eJob);
+ aListenerInformer.start();
try
{
@@ -676,13 +691,14 @@ void AutoRecovery::implts_dispatch(const DispatchParams& aParams)
)
implts_cleanUpWorkingEntry(aParams);
}
- catch(const css::uno::RuntimeException& exRun)
- { throw exRun; }
+ catch(const css::uno::RuntimeException&)
+ {
+ throw;
+ }
catch(const css::uno::Exception&)
{} // TODO better error handling
- implts_informListener(eJob,
- AutoRecovery::implst_createFeatureStateEvent(eJob, OPERATION_STOP, NULL));
+ aListenerInformer.stop();
// SAFE -> ----------------------------------
aWriteLock.lock();
@@ -1304,8 +1320,8 @@ void AutoRecovery::implts_flushConfigItem(const AutoRecovery::TDocumentInfo& rIn
xModify->insertByName(sID, css::uno::makeAny(xSet));
}
}
- catch(const css::uno::RuntimeException& exRun)
- { throw exRun; }
+ catch(const css::uno::RuntimeException&)
+ { throw; }
catch(const css::uno::Exception&)
{} // ??? can it happen that a full disc let these set of operations fail too ???
@@ -1627,7 +1643,13 @@ IMPL_LINK(AutoRecovery, implts_asyncDispatch, void*, EMPTYARG)
aWriteLock.unlock();
// <- SAFE
- implts_dispatch(aParams);
+ try
+ {
+ implts_dispatch(aParams);
+ }
+ catch (...)
+ {
+ }
return 0;
}
--
1.7.5.2

@ -1,54 +0,0 @@
From 6f42aa185adc436d976da04b8b193dfe25d61f7a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 17 Jun 2011 13:38:27 +0100
Subject: [PATCH] Related: rhbz#702833 addEventListener without
removeEventListener
---
.../source/deployment/gui/dp_gui_extlistbox.cxx | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/desktop/source/deployment/gui/dp_gui_extlistbox.cxx b/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
index 8cdf0a6..3d0d426 100644
--- a/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
+++ b/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
@@ -970,18 +970,20 @@ long ExtensionBox_Impl::addEntry( const uno::Reference< deployment::XPackage > &
if ( ! pEntry->m_sTitle.Len() )
return 0;
- xPackage->addEventListener( uno::Reference< lang::XEventListener > ( m_xRemoveListener, uno::UNO_QUERY ) );
+ bool bNewEntryInserted = false;
::osl::ClearableMutexGuard guard(m_entriesMutex);
if ( m_vEntries.empty() )
{
m_vEntries.push_back( pEntry );
+ bNewEntryInserted = true;
}
else
{
if ( !FindEntryPos( pEntry, 0, m_vEntries.size()-1, nPos ) )
{
m_vEntries.insert( m_vEntries.begin()+nPos, pEntry );
+ bNewEntryInserted = true;
}
else if ( !m_bInCheckMode )
{
@@ -989,6 +991,14 @@ long ExtensionBox_Impl::addEntry( const uno::Reference< deployment::XPackage > &
}
}
+ //Related: rhbz#702833 Only add a Listener if we're adding a new entry, to
+ //keep in sync with removeEventListener logic
+ if (bNewEntryInserted)
+ {
+ pEntry->m_xPackage->addEventListener(uno::Reference< lang::XEventListener > ( m_xRemoveListener, uno::UNO_QUERY ) );
+ }
+
+
pEntry->m_bHasOptions = m_pManager->supportsOptions( xPackage );
pEntry->m_bUser = xPackage->getRepositoryName().equals( USER_PACKAGE_MANAGER );
pEntry->m_bShared = xPackage->getRepositoryName().equals( SHARED_PACKAGE_MANAGER );
--
1.7.5.4

@ -1,26 +0,0 @@
From fe44d66adbab17b804a27d91148490b23fce75da Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 17 Jun 2011 16:14:12 +0100
Subject: [PATCH] Related: rhbz#711087 band-aid
---
sc/source/ui/undo/undoblk.cxx | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx
index 8439801..d535c9c 100644
--- a/sc/source/ui/undo/undoblk.cxx
+++ b/sc/source/ui/undo/undoblk.cxx
@@ -2084,6 +2084,9 @@ void ScUndoRemoveMerge::Undo()
for (set<SCTAB>::const_iterator itr = maOption.maTabs.begin(), itrEnd = maOption.maTabs.end();
itr != itrEnd; ++itr)
{
+ OSL_ENSURE(pUndoDoc, "NULL pUndoDoc!");
+ if (!pUndoDoc)
+ continue;
// There is no need to extend merge area because it's already been extended.
ScRange aRange = maOption.getSingleRange(*itr);
pDoc->DeleteAreaTab(aRange, IDF_ATTRIB);
--
1.7.5.4

@ -1,37 +0,0 @@
From 04a5edc0b8a6399e0e692b4164dc72851fffcab9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 5 Jul 2011 12:41:43 +0100
Subject: [PATCH] Related: rhbz#718976 crash in SwTxtSizeInfo::GetMultiCreator
---
sw/source/core/text/pormulti.cxx | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/sw/source/core/text/pormulti.cxx b/sw/source/core/text/pormulti.cxx
index 1a31cf4..336a57d 100644
--- a/sw/source/core/text/pormulti.cxx
+++ b/sw/source/core/text/pormulti.cxx
@@ -947,15 +947,18 @@ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos,
else
pRotItem = NULL;
const SvxTwoLinesItem* p2Lines = NULL;
+ const SwTxtNode *pLclTxtNode = pFrm->GetTxtNode();
+ if( !pLclTxtNode )
+ return NULL;
const SfxPoolItem* pItem;
- if( SFX_ITEM_SET == pFrm->GetTxtNode()->GetSwAttrSet().
+ if( SFX_ITEM_SET == pLclTxtNode->GetSwAttrSet().
GetItemState( RES_CHRATR_TWO_LINES, sal_True, &pItem ) &&
((SvxTwoLinesItem*)pItem)->GetValue() )
p2Lines = (SvxTwoLinesItem*)pItem;
else
pItem = NULL;
- const SwpHints *pHints = pFrm->GetTxtNode()->GetpSwpHints();
+ const SwpHints *pHints = pLclTxtNode->GetpSwpHints();
if( !pHints && !p2Lines && !pRotate )
return NULL;
const SwTxtAttr *pRuby = NULL;
--
1.7.5.4

@ -1,25 +0,0 @@
From 761d4c5487570b9c1b37ac4ea13d86fcdb244f65 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 12 Aug 2011 09:44:45 +0100
Subject: [PATCH] Related: rhbz#730225 avoid segv in ld, this was set to -O0
around 2000
---
sd/Library_sdfilt.mk | 12 +-----------
1 files changed, 1 insertions(+), 11 deletions(-)
diff --git a/sd/source/filter/eppt/makefile.mk b/sd/source/filter/eppt/makefile.mk
index 2a91103..7871436 100644
--- a/sd/source/filter/eppt/makefile.mk
+++ b/sd/source/filter/eppt/makefile.mk
@@ -37,10 +37,6 @@ VISIBILITY_HIDDEN=TRUE
# --- Files --------------------------------------------------------
-.IF "$(COM)"=="GCC"
-NOOPTFILES= $(SLO)$/epptso.obj
-.ENDIF
-
SLOFILES = $(SLO)$/eppt.obj \
$(SLO)$/epptso.obj \
$(SLO)$/escherex.obj \

@ -1,48 +0,0 @@
From fd567018ec52a53b00b5da7782b3100177b2c028 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 11 Nov 2011 15:45:58 +0000
Subject: [PATCH] Related: rhbz#753201 fedora ant+java-1.5.0-gcj won't resolve
env variables
---
rhino/makefile.mk | 4 ++--
rhino/rhino1_5R5-find_swing.patch | 5 ++---
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/rhino/makefile.mk b/rhino/makefile.mk
index 91117d9..577d030 100644
--- a/rhino/makefile.mk
+++ b/rhino/makefile.mk
@@ -58,9 +58,9 @@ FIXED_TARFILE_LOCATION=$(TARFILE_LOCATION)
.IF "$(JAVACISGCJ)"=="yes"
JAVA_HOME=
.EXPORT : JAVA_HOME
-BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj jar
+BUILD_ACTION=$(ANT) -DTARFILE_LOCATION="$(FIXED_TARFILE_LOCATION)" -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj jar
.ELSE
-BUILD_ACTION=TARFILE_LOCATION="$(FIXED_TARFILE_LOCATION)" $(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) jar
+BUILD_ACTION=$(ANT) -DTARFILE_LOCATION="$(FIXED_TARFILE_LOCATION)" -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) jar
.ENDIF
# --- Targets ------------------------------------------------------
diff --git a/rhino/rhino1_5R5-find_swing.patch b/rhino/rhino1_5R5-find_swing.patch
index 220c4f4..f074fa8 100644
--- a/rhino/rhino1_5R5-find_swing.patch
+++ b/rhino/rhino1_5R5-find_swing.patch
@@ -1,11 +1,10 @@
--- misc/rhino1_5R5/toolsrc/build.xml 2009-10-29 18:29:46.605524507 +0100
+++ misc/build/rhino1_5R5/toolsrc/build.xml 2009-10-29 18:29:26.536908810 +0100
-@@ -12,6 +12,8 @@
+@@ -12,6 +12,7 @@
<os family="unix"/>
</and>
</condition>
-+ <property environment="solenv"/>
-+ <property name="swing_zip" value="${solenv.TARFILE_LOCATION}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip"/>
++ <property name="swing_zip" value="${TARFILE_LOCATION}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip"/>
<path id="macPath" location="${java.home}/../Classes/classes.jar"/>
<!-- rhino.jar from OpenJDK breaks build -->
<path id="nonMacPath">
--
1.7.6.4

@ -1,311 +0,0 @@
From 58b48f188bbfd9a3382460d6de63848eb3db416d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 27 Oct 2011 12:24:11 +0100
Subject: [PATCH] Resolves: fdo#32665 handle that FreeSerif lacks some glyphs
in bold/italic
FreeSerif lacks glyphs in bold/italic variants that it has in the normal one. A
lot of our glyph fallback infrastructure, especially the caches don't expect
that a normal variant of a font with extra emboldening or extra font skew can
be a fallback for a bold/italic variant of itself which exists, but doesn't
have the missing glyphs that the normal one does.
We really need to improve our glyph/font caching, but we can get 90% of the
way there by excluding such cases from the caches.
---
vcl/generic/fontmanager/fontconfig.cxx | 18 ++++++++-
vcl/generic/fontmanager/fontsubst.cxx | 6 +++-
vcl/generic/glyphs/glyphcache.cxx | 7 ++++
vcl/inc/outfont.hxx | 19 ++++++++++
vcl/inc/vcl/fontmanager.hxx | 3 +-
vcl/source/gdi/outdev3.cxx | 60 ++++++++++++++++++++++----------
6 files changed, 90 insertions(+), 23 deletions(-)
diff --git a/vcl/generic/fontmanager/fontconfig.cxx b/vcl/generic/fontmanager/fontconfig.cxx
index be91349..a4f5f7f 100644
--- a/vcl/unx/source/fontmanager/fontconfig.cxx
+++ b/vcl/unx/source/fontmanager/fontconfig.cxx
@@ -68,6 +68,9 @@
#ifndef FC_EMBOLDEN
#define FC_EMBOLDEN "embolden"
#endif
+ #ifndef FC_MATRIX
+ #define FC_MATRIX "matrix"
+ #endif
#ifndef FC_FONTFORMAT
#define FC_FONTFORMAT "fontformat"
#endif
@@ -145,6 +148,7 @@
FcResult (*m_pFcPatternGetString)(const FcPattern*,const char*,int,FcChar8**);
FcResult (*m_pFcPatternGetInteger)(const FcPattern*,const char*,int,int*);
FcResult (*m_pFcPatternGetDouble)(const FcPattern*,const char*,int,double*);
+ FcResult (*m_pFcPatternGetMatrix)(const FcPattern*,const char*,int,FcMatrix**);
FcResult (*m_pFcPatternGetBool)(const FcPattern*,const char*,int,FcBool*);
void (*m_pFcDefaultSubstitute)(FcPattern *);
FcPattern* (*m_pFcFontSetMatch)(FcConfig*,FcFontSet**, int, FcPattern*,FcResult*);
@@ -255,6 +259,9 @@
FcResult FcPatternGetDouble( const FcPattern* pPattern, const char* object, int n, double* s )
{ return m_pFcPatternGetDouble( pPattern, object, n, s ); }
+ FcResult FcPatternGetMatrix( const FcPattern* pPattern, const char* object, int n, FcMatrix** s )
+ { return m_pFcPatternGetMatrix( pPattern, object, n, s ); }
+
FcResult FcPatternGetBool( const FcPattern* pPattern, const char* object, int n, FcBool* s )
{ return m_pFcPatternGetBool( pPattern, object, n, s ); }
FcBool FcConfigAppFontAddFile( FcConfig* pConfig, const FcChar8* pFileName )
@@ -381,6 +388,8 @@
loadSymbol( "FcPatternGetInteger" );
m_pFcPatternGetDouble = (FcResult(*)(const FcPattern*,const char*,int,double*))
loadSymbol( "FcPatternGetDouble" );
+ m_pFcPatternGetMatrix = (FcResult(*)(const FcPattern*,const char*,int,FcMatrix**))
+ loadSymbol( "FcPatternGetMatrix" );
m_pFcPatternGetBool = (FcResult(*)(const FcPattern*,const char*,int,FcBool*))
loadSymbol( "FcPatternGetBool" );
m_pFcConfigAppFontAddFile = (FcBool(*)(FcConfig*, const FcChar8*))
@@ -453,6 +462,7 @@
m_pFcPatternGetString &&
m_pFcPatternGetInteger &&
m_pFcPatternGetDouble &&
+ m_pFcPatternGetMatrix &&
m_pFcPatternGetBool &&
m_pFcConfigAppFontAddFile &&
m_pFcConfigAppFontAddDir &&
@@ -1260,7 +1270,7 @@
rtl::OUString PrintFontManager::Substitute(const rtl::OUString& rFontName,
rtl::OUString& rMissingCodes, const rtl::OString &rLangAttrib,
italic::type &rItalic, weight::type &rWeight,
- width::type &rWidth, pitch::type &rPitch) const
+ width::type &rWidth, pitch::type &rPitch, bool &rEmbolden, ItalicMatrix &rMatrix) const
{
rtl::OUString aName;
FontCfgWrapper& rWrapper = FontCfgWrapper::get();
@@ -1353,6 +1363,17 @@
rPitch = convertSpacing(val);
if ( FcResultMatch == rWrapper.FcPatternGetInteger( pSet->fonts[0], FC_WIDTH, 0, &val))
rWidth = convertWidth(val);
+ FcBool bEmbolden;
+ if (FcResultMatch == rWrapper.FcPatternGetBool(pSet->fonts[0], FC_EMBOLDEN, 0, &bEmbolden))
+ rEmbolden = bEmbolden;
+ FcMatrix *pMatrix = 0;
+ if (FcResultMatch == rWrapper.FcPatternGetMatrix(pSet->fonts[0], FC_MATRIX, 0, &pMatrix))
+ {
+ rMatrix.xx = pMatrix->xx;
+ rMatrix.xy = pMatrix->xy;
+ rMatrix.yx = pMatrix->yx;
+ rMatrix.yy = pMatrix->yy;
+ }
}
// update rMissingCodes by removing resolved unicodes
diff --git a/vcl/generic/fontmanager/fontsubst.cxx b/vcl/generic/fontmanager/fontsubst.cxx
index 3bf2d07..2d187b1 100644
--- a/vcl/unx/source/gdi/salgdi3.cxx
+++ b/vcl/unx/source/gdi/salgdi3.cxx
@@ -1526,8 +1526,14 @@
}
}
+ bool bEmbolden = rFontSelData.mbEmbolden;
+ ItalicMatrix aMatrix = rFontSelData.maItalicMatrix;
+
const psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
- aRet.maSearchName = rMgr.Substitute( rFontSelData.maTargetName, rMissingCodes, aLangAttrib, eItalic, eWeight, eWidth, ePitch);
+ aRet.maSearchName = rMgr.Substitute( rFontSelData.maTargetName, rMissingCodes, aLangAttrib, eItalic, eWeight, eWidth, ePitch, bEmbolden, aMatrix );
+
+ aRet.maItalicMatrix = aMatrix;
+ aRet.mbEmbolden = bEmbolden;
switch (eItalic)
{
diff --git a/vcl/generic/glyphs/glyphcache.cxx b/vcl/generic/glyphs/glyphcache.cxx
index 5322b65..fa712bb 100644
--- a/vcl/source/glyphs/glyphcache.cxx
+++ b/vcl/source/glyphs/glyphcache.cxx
@@ -163,6 +163,13 @@ bool GlyphCache::IFSD_Equal::operator()( const ImplFontSelectData& rA, const Imp
!= STRING_NOTFOUND) && rA.maTargetName != rB.maTargetName)
return false;
#endif
+
+ if (rA.mbEmbolden != rB.mbEmbolden)
+ return false;
+
+ if (rA.maItalicMatrix != rB.maItalicMatrix)
+ return false;
+
return true;
}
diff --git a/vcl/inc/outfont.hxx b/vcl/inc/outfont.hxx
index faf2b00..857d944 100644
--- a/vcl/inc/vcl/outfont.hxx
+++ b/vcl/inc/vcl/outfont.hxx
@@ -175,6 +191,9 @@ public: // TODO: change to private
bool mbVertical; // vertical mode of requested font
bool mbNonAntialiased; // true if antialiasing is disabled
+ bool mbEmbolden; // Force emboldening
+ ItalicMatrix maItalicMatrix; // Force matrix for slant
+
const ImplFontData* mpFontData; // a matching ImplFontData object
ImplFontEntry* mpFontEntry; // pointer to the resulting FontCache entry
};
diff --git a/vcl/inc/vcl/fontmanager.hxx b/vcl/inc/vcl/fontmanager.hxx
index 0af5e14..4a110ad 100644
--- a/vcl/inc/vcl/fontmanager.hxx
+++ b/vcl/inc/vcl/fontmanager.hxx
@@ -36,6 +36,7 @@
#include "vcl/dllapi.h"
#include "vcl/helper.hxx"
+#include "vcl/vclenum.hxx"
#include "com/sun/star/lang/Locale.hpp"
@@ -737,7 +738,7 @@
rtl::OUString Substitute( const rtl::OUString& rFontName, rtl::OUString& rMissingCodes,
const rtl::OString& rLangAttrib, italic::type& rItalic, weight::type& rWeight,
- width::type& rWidth, pitch::type& rPitch) const;
+ width::type& rWidth, pitch::type& rPitch, bool &rEmboldening, ItalicMatrix &rMatrix) const;
bool hasFontconfig() const { return m_bFontconfigSuccess; }
int FreeTypeCharIndex( void *pFace, sal_uInt32 aChar );
diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx
index b0f59cd..3cc438c 100755
--- a/vcl/source/gdi/outdev3.cxx
+++ b/vcl/source/gdi/outdev3.cxx
@@ -865,9 +865,11 @@ bool ImplFontData::IsBetterMatch( const ImplFontSelectData& rFSD, FontMatchStatu
if( rFSD.meWeight != WEIGHT_DONTKNOW )
{
- // if not bold prefer light fonts to bold fonts
- int nReqWeight = (int)rFSD.meWeight;
- if ( rFSD.meWeight > WEIGHT_MEDIUM )
+ // if not bold or requiring emboldening prefer light fonts to bold fonts
+ FontWeight ePatternWeight = rFSD.mbEmbolden ? WEIGHT_NORMAL : rFSD.meWeight;
+
+ int nReqWeight = (int)ePatternWeight;
+ if ( ePatternWeight > WEIGHT_MEDIUM )
nReqWeight += 100;
int nGivenWeight = (int)meWeight;
@@ -897,14 +899,17 @@ bool ImplFontData::IsBetterMatch( const ImplFontSelectData& rFSD, FontMatchStatu
nMatch += 150;
}
- if ( rFSD.meItalic == ITALIC_NONE )
+ // if requiring custom matrix to fake italic, prefer upright font
+ FontItalic ePatternItalic = rFSD.maItalicMatrix != ItalicMatrix() ? ITALIC_NONE : rFSD.meItalic;
+
+ if ( ePatternItalic == ITALIC_NONE )
{
if( meItalic == ITALIC_NONE )
nMatch += 900;
}
else
{
- if( rFSD.meItalic == meItalic )
+ if( ePatternItalic == meItalic )
nMatch += 900;
else if( meItalic != ITALIC_NONE )
nMatch += 600;
@@ -1457,22 +1462,31 @@ ImplDevFontListData* ImplDevFontList::GetGlyphFallbackFont( ImplFontSelectData&
else
rFontSelData.maSearchName = String();
- // cache the result even if there was no match
- for(;;)
- {
- if( !rFontSelData.mpFontEntry->GetFallbackForUnicode( cChar, rFontSelData.GetWeight(), &rFontSelData.maSearchName ) )
- rFontSelData.mpFontEntry->AddFallbackForUnicode( cChar, rFontSelData.GetWeight(), rFontSelData.maSearchName );
- if( nStrIndex >= aOldMissingCodes.getLength() )
- break;
- cChar = aOldMissingCodes.iterateCodePoints( &nStrIndex );
- }
- if( rFontSelData.maSearchName.Len() != 0 )
+ //See fdo#32665 for an example. FreeSerif that has glyphs in normal
+ //font, but not in the italic or bold version
+ bool bSubSetOfFontRequiresPropertyFaking = rFontSelData.mbEmbolden || rFontSelData.maItalicMatrix != ItalicMatrix();
+
+ // cache the result even if there was no match, unless its from part of a font for which the properties need
+ // to be faked. We need to rework this cache to take into account that fontconfig can return different fonts
+ // for different input sizes, weights, etc. Basically the cache is way to naive
+ if (!bSubSetOfFontRequiresPropertyFaking)
{
- // remove cache entries that were still not resolved
- for( nStrIndex = 0; nStrIndex < rMissingCodes.getLength(); )
+ for(;;)
{
- cChar = rMissingCodes.iterateCodePoints( &nStrIndex );
- rFontSelData.mpFontEntry->IgnoreFallbackForUnicode( cChar, rFontSelData.GetWeight(), rFontSelData.maSearchName );
+ if( !rFontSelData.mpFontEntry->GetFallbackForUnicode( cChar, rFontSelData.GetWeight(), &rFontSelData.maSearchName ) )
+ rFontSelData.mpFontEntry->AddFallbackForUnicode( cChar, rFontSelData.GetWeight(), rFontSelData.maSearchName );
+ if( nStrIndex >= aOldMissingCodes.getLength() )
+ break;
+ cChar = aOldMissingCodes.iterateCodePoints( &nStrIndex );
+ }
+ if( rFontSelData.maSearchName.Len() != 0 )
+ {
+ // remove cache entries that were still not resolved
+ for( nStrIndex = 0; nStrIndex < rMissingCodes.getLength(); )
+ {
+ cChar = rMissingCodes.iterateCodePoints( &nStrIndex );
+ rFontSelData.mpFontEntry->IgnoreFallbackForUnicode( cChar, rFontSelData.GetWeight(), rFontSelData.maSearchName );
+ }
}
}
}
@@ -2180,6 +2194,7 @@ ImplFontSelectData::ImplFontSelectData( const Font& rFont,
meLanguage( rFont.GetLanguage() ),
mbVertical( rFont.IsVertical() ),
mbNonAntialiased( false ),
+ mbEmbolden( false ),
mpFontData( NULL ),
mpFontEntry( NULL )
{
@@ -2215,6 +2230,7 @@ ImplFontSelectData::ImplFontSelectData( const ImplFontData& rFontData,
meLanguage( 0 ),
mbVertical( bVertical ),
mbNonAntialiased( false ),
+ mbEmbolden( false ),
mpFontData( &rFontData ),
mpFontEntry( NULL )
{
@@ -2297,6 +2313,12 @@ bool ImplFontCache::IFSD_Equal::operator()(const ImplFontSelectData& rA, const I
return false;
#endif
+ if (rA.mbEmbolden != rB.mbEmbolden)
+ return false;
+
+ if (rA.maItalicMatrix != rB.maItalicMatrix)
+ return false;
+
return true;
}
--- a/vcl/inc/vcl/vclenum.hxx 2011-10-27 15:10:10.402317337 +0100
+++ b/vcl/inc/vcl/vclenum.hxx 2011-10-27 15:10:29.561528762 +0100
@@ -326,6 +326,22 @@
#endif
+struct ItalicMatrix
+{
+ double xx, xy, yx, yy;
+ ItalicMatrix() : xx(1), xy(0), yx(0), yy(1) {}
+};
+
+inline bool operator ==(const ItalicMatrix& a, const ItalicMatrix& b)
+{
+ return a.xx == b.xx && a.xy == b.xy && a.yx == b.yx && a.yy == b.yy;
+}
+
+inline bool operator !=(const ItalicMatrix& a, const ItalicMatrix& b)
+{
+ return a.xx != b.xx || a.xy != b.xy || a.yx != b.yx || a.yy != b.yy;
+}
+
#endif // _VCL_VCLENUM_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

@ -1,65 +0,0 @@
From 0da2906aa147050c3e99846d5908a60b99df69ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 2 Aug 2011 16:56:30 +0100
Subject: [PATCH] Resolves: rhbz#693265 fix crash from unhandled exception
---
vcl/source/gdi/impgraph.cxx | 28 ++++++++++++++++++++++++----
1 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index 3b6d9a4..6fdb163 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -1077,7 +1077,14 @@ sal_Bool ImpGraphic::ImplReadEmbedded( SvStream& rIStm, sal_Bool bSwap )
if( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ).getLength() )
{
- SvStream* pOStm = ::utl::UcbStreamHelper::CreateStream( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READWRITE | STREAM_SHARE_DENYWRITE );
+ SvStream* pOStm = NULL;
+ try
+ {
+ pOStm = ::utl::UcbStreamHelper::CreateStream( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READWRITE | STREAM_SHARE_DENYWRITE );
+ }
+ catch( const ::com::sun::star::uno::Exception& )
+ {
+ }
if( pOStm )
{
@@ -1282,8 +1289,14 @@ sal_Bool ImpGraphic::ImplSwapOut()
if( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ).getLength() )
{
- SvStream* pOStm = ::utl::UcbStreamHelper::CreateStream( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READWRITE | STREAM_SHARE_DENYWRITE );
-
+ SvStream* pOStm = NULL;
+ try
+ {
+ pOStm = ::utl::UcbStreamHelper::CreateStream( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READWRITE | STREAM_SHARE_DENYWRITE );
+ }
+ catch( const ::com::sun::star::uno::Exception& )
+ {
+ }
if( pOStm )
{
pOStm->SetVersion( SOFFICE_FILEFORMAT_50 );
@@ -1382,7 +1395,14 @@ sal_Bool ImpGraphic::ImplSwapIn()
if( aSwapURL.Len() )
{
- SvStream* pIStm = ::utl::UcbStreamHelper::CreateStream( aSwapURL, STREAM_READWRITE | STREAM_SHARE_DENYWRITE );
+ SvStream* pIStm = NULL;
+ try
+ {
+ pIStm = ::utl::UcbStreamHelper::CreateStream( aSwapURL, STREAM_READWRITE | STREAM_SHARE_DENYWRITE );
+ }
+ catch( const ::com::sun::star::uno::Exception& )
+ {
+ }
if( pIStm )
{
--
1.7.6

@ -1,26 +0,0 @@
From 5cc73f49400f9719ffd5382e64931de6eb8f130c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Sun, 17 Apr 2011 22:57:40 +0100
Subject: [PATCH] Resolves: rhbz#695509 crash in RefreshDocumentLB
---
sd/source/ui/dlg/navigatr.cxx | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/sd/source/ui/dlg/navigatr.cxx b/sd/source/ui/dlg/navigatr.cxx
index 09426b8..edee709 100644
--- a/sd/source/ui/dlg/navigatr.cxx
+++ b/sd/source/ui/dlg/navigatr.cxx
@@ -713,7 +713,8 @@ void SdNavigatorWin::RefreshDocumentLB( const String* pDocName )
NavDocInfo* pInfo = new NavDocInfo();
pInfo->mpDocShell = pDocShell;
- aStr = pDocShell->GetMedium()->GetName();
+ SfxMedium *pMedium = pDocShell->GetMedium();
+ aStr = pMedium ? pMedium->GetName() : String();
if( aStr.Len() )
pInfo->SetName();
else
--
1.7.4.2

@ -1,511 +0,0 @@
From e7493d7aa73cfaab2e2f81b7fb6a71e2af77fcc2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 16 Jun 2011 12:41:45 +0100
Subject: [PATCH] Resolves: rhbz#713154 pdf export dialog too tall to fit on
netbooks
---
filter/source/pdf/impdialog.cxx | 8 +++
filter/source/pdf/impdialog.hrc | 5 ++
filter/source/pdf/impdialog.hxx | 8 +++
filter/source/pdf/impdialog.src | 119 ++++++++++++++++++++++++---------------
4 files changed, 94 insertions(+), 46 deletions(-)
diff --git a/filter/source/pdf/impdialog.cxx b/filter/source/pdf/impdialog.cxx
index c8d5049..54ec9b3 100644
--- a/filter/source/pdf/impdialog.cxx
+++ b/filter/source/pdf/impdialog.cxx
@@ -434,6 +434,8 @@ ImpPDFTabGeneralPage::ImpPDFTabGeneralPage( Window* pParent,
maCbReduceImageResolution( this, PDFFilterResId( CB_REDUCEIMAGERESOLUTION ) ),
maCoReduceImageResolution( this, PDFFilterResId( CO_REDUCEIMAGERESOLUTION ) ),
+ m_aVerticalLine(this, PDFFilterResId(FL_GENERAL_VERTICAL)),
+
maFlGeneral( this, PDFFilterResId( FL_GENERAL ) ),
maCbPDFA1b( this, PDFFilterResId( CB_PDFA_1B_SELECT ) ),
@@ -791,6 +793,8 @@ ImpPDFTabOpnFtrPage::ImpPDFTabOpnFtrPage( Window* pParent,
maRbMagnZoom( this, PDFFilterResId( RB_MAGNF_ZOOM ) ),
maNumZoom( this, PDFFilterResId( NUM_MAGNF_ZOOM ) ),
+ m_aVerticalLine(this, PDFFilterResId(FL_INITVIEW_VERTICAL)),
+
maFlPageLayout( this, PDFFilterResId( FL_PAGE_LAYOUT ) ),
maRbPgLyDefault( this, PDFFilterResId( RB_PGLY_DEFAULT ) ),
maRbPgLySinglePage( this, PDFFilterResId( RB_PGLY_SINGPG ) ),
@@ -955,6 +959,8 @@ ImpPDFTabViewerPage::ImpPDFTabViewerPage( Window* pParent,
maCbOpenFullScreen( this, PDFFilterResId( CB_WNDOPT_OPNFULL ) ),
maCbDispDocTitle( this, PDFFilterResId( CB_DISPDOCTITLE ) ),
+ m_aVerticalLine(this, PDFFilterResId(FL_VPREFER_VERTICAL)),
+
maFlUIOptions( this, PDFFilterResId( FL_USRIFOPT ) ),
maCbHideViewerMenubar( this, PDFFilterResId( CB_UOP_HIDEVMENUBAR ) ),
maCbHideViewerToolbar( this, PDFFilterResId( CB_UOP_HIDEVTOOLBAR ) ),
@@ -1053,6 +1059,8 @@ ImpPDFTabSecurityPage::ImpPDFTabSecurityPage( Window* i_pParent,
maOwnerPwdUnset( PDFFilterResId( STR_OWNER_PWD_UNSET ) ),
maOwnerPwdPdfa( PDFFilterResId( STR_OWNER_PWD_PDFA ) ),
+ m_aVerticalLine(this, PDFFilterResId(FL_SECURITY_VERTICAL)),
+
maFlPrintPermissions( this, PDFFilterResId( FL_PRINT_PERMISSIONS ) ),
maRbPrintNone( this, PDFFilterResId( RB_PRINT_NONE ) ),
maRbPrintLowRes( this, PDFFilterResId( RB_PRINT_LOWRES ) ),
diff --git a/filter/source/pdf/impdialog.hrc b/filter/source/pdf/impdialog.hrc
index 75708d1..61f2d14 100644
--- a/filter/source/pdf/impdialog.hrc
+++ b/filter/source/pdf/impdialog.hrc
@@ -188,3 +188,8 @@
#define CB_CNV_OOO_DOCTOPDF 155
#define CB_EXP_BMRK_TO_DEST 156
//<---
+
+#define FL_GENERAL_VERTICAL 157
+#define FL_INITVIEW_VERTICAL 158
+#define FL_VPREFER_VERTICAL 158
+#define FL_SECURITY_VERTICAL 160
diff --git a/filter/source/pdf/impdialog.hxx b/filter/source/pdf/impdialog.hxx
index bc2cd3e..a784973 100644
--- a/filter/source/pdf/impdialog.hxx
+++ b/filter/source/pdf/impdialog.hxx
@@ -190,6 +190,8 @@ class ImpPDFTabGeneralPage : public SfxTabPage
CheckBox maCbReduceImageResolution;
ComboBox maCoReduceImageResolution;
+ FixedLine m_aVerticalLine;
+
FixedLine maFlGeneral;
CheckBox maCbPDFA1b;
CheckBox maCbTaggedPDF;
@@ -254,6 +256,8 @@ class ImpPDFTabOpnFtrPage : public SfxTabPage
RadioButton maRbMagnZoom;
MetricField maNumZoom;
+ FixedLine m_aVerticalLine;
+
FixedLine maFlPageLayout;
RadioButton maRbPgLyDefault;
RadioButton maRbPgLySinglePage;
@@ -287,6 +291,8 @@ class ImpPDFTabViewerPage : public SfxTabPage
CheckBox maCbOpenFullScreen;
CheckBox maCbDispDocTitle;
+ FixedLine m_aVerticalLine;
+
FixedLine maFlUIOptions;
CheckBox maCbHideViewerMenubar;
CheckBox maCbHideViewerToolbar;
@@ -330,6 +336,8 @@ class ImpPDFTabSecurityPage : public SfxTabPage
String maOwnerPwdUnset;
String maOwnerPwdPdfa;
+ FixedLine m_aVerticalLine;
+
FixedLine maFlPrintPermissions;
RadioButton maRbPrintNone;
RadioButton maRbPrintLowRes;
diff --git a/filter/source/pdf/impdialog.src b/filter/source/pdf/impdialog.src
index 531d728..1779b5f 100644
--- a/filter/source/pdf/impdialog.src
+++ b/filter/source/pdf/impdialog.src
@@ -27,7 +27,7 @@
#include "impdialog.hrc"
-#define TAB_PDF_SIZE Size = MAP_APPFONT ( 176, 268 )
+#define TAB_PDF_SIZE Size = MAP_APPFONT ( 352, 155 )
//string for TabDialog standard buttons
String STR_PDF_EXPORT
{
@@ -153,16 +153,24 @@
"1200 DPI" ;
};
};
+
+ FixedLine FL_GENERAL_VERTICAL
+ {
+ Pos = MAP_APPFONT ( 175 , 3 ) ;
+ Size = MAP_APPFONT ( 4 , 150 ) ;
+ Vert = TRUE;
+ };
+
FixedLine FL_GENERAL
{
- Pos = MAP_APPFONT ( 6 , 117 ) ;
+ Pos = MAP_APPFONT ( 182 , 3 ) ;
Size = MAP_APPFONT ( 164 , 8 ) ;
Text[ en-US ] = "General";
};
CheckBox CB_PDFA_1B_SELECT
{
HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_PDFA_1B_SELECT";
- Pos = MAP_APPFONT ( 12, 128 ) ;
+ Pos = MAP_APPFONT ( 188, 14 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "P~DF/A-1a";
@@ -170,7 +178,7 @@
CheckBox CB_TAGGEDPDF
{
HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_TAGGEDPDF";
- Pos = MAP_APPFONT ( 12 , 141 ) ;
+ Pos = MAP_APPFONT ( 188 , 27 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "~Tagged PDF";
@@ -178,14 +186,14 @@
CheckBox CB_EXPORTFORMFIELDS
{
HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_EXPORTFORMFIELDS";
- Pos = MAP_APPFONT ( 12 , 154 ) ;
+ Pos = MAP_APPFONT ( 188 , 40 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "~Create PDF form";
};
FixedText FT_FORMSFORMAT
{
- Pos = MAP_APPFONT ( 30 , 168 ) ;
+ Pos = MAP_APPFONT ( 206 , 54 ) ;
Size = MAP_APPFONT ( 93, 8 ) ;
Text[ en-US ] = "Submit ~format";
};
@@ -193,7 +201,7 @@
{
HelpID = "filter:ListBox:RID_PDF_TAB_GENER:LB_FORMSFORMAT";
Border = TRUE ;
- Pos = MAP_APPFONT ( 126, 166 ) ;
+ Pos = MAP_APPFONT ( 302, 52 ) ;
Size = MAP_APPFONT ( 38, 48 ) ;
DeltaLang = < Default ; Default ; Default ; Default ; > ;
TabStop = TRUE ;
@@ -209,7 +217,7 @@
CheckBox CB_ALLOWDUPLICATEFIELDNAMES
{
HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_ALLOWDUPLICATEFIELDNAMES";
- Pos = MAP_APPFONT( 30, 178 );
+ Pos = MAP_APPFONT( 206, 64 );
Size = MAP_APPFONT( 128, 10 );
TabStop = TRUE;
Text [ en-US ] = "Allow duplicate field ~names";
@@ -217,7 +225,7 @@
CheckBox CB_EXPORTBOOKMARKS
{
HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_EXPORTBOOKMARKS";
- Pos = MAP_APPFONT ( 12 , 190 ) ;
+ Pos = MAP_APPFONT ( 188 , 76 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "Export ~bookmarks";
@@ -225,7 +233,7 @@
CheckBox CB_EXPORTNOTES
{
HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_EXPORTNOTES";
- Pos = MAP_APPFONT ( 12 , 203 ) ;
+ Pos = MAP_APPFONT ( 188 , 89 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "~Export comments";
@@ -233,7 +241,7 @@
CheckBox CB_EXPORTNOTESPAGES
{
HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_EXPORTNOTESPAGES";
- Pos = MAP_APPFONT ( 12 , 216 ) ;
+ Pos = MAP_APPFONT ( 188 , 102 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "Export ~notes pages";
@@ -241,7 +249,7 @@
CheckBox CB_EXPORTEMPTYPAGES
{
HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_EXPORTEMPTYPAGES";
- Pos = MAP_APPFONT ( 12 , 229 ) ;
+ Pos = MAP_APPFONT ( 188 , 115 ) ;
Size = MAP_APPFONT ( 158 , 16 ) ;
TabStop = TRUE ;
WordBreak = TRUE ;
@@ -250,7 +258,7 @@
CheckBox CB_EMBEDSTANDARDFONTS
{
HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_EMBEDSTANDARDFONTS";
- Pos = MAP_APPFONT ( 12 , 248 ) ;
+ Pos = MAP_APPFONT ( 188 , 134 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "E~mbed standard fonts";
@@ -258,7 +266,7 @@
CheckBox CB_ADDSTREAM
{
HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_ADDSTREAM";
- Pos = MAP_APPFONT ( 12 , 261 ) ;
+ Pos = MAP_APPFONT ( 188 , 147 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "Create ~hybrid file";
@@ -385,45 +393,52 @@
Minimum = 50;
Maximum = 1600;
};
-////////////////////////////////////////
+
+ FixedLine FL_INITVIEW_VERTICAL
+ {
+ Pos = MAP_APPFONT ( 175 , 3 ) ;
+ Size = MAP_APPFONT ( 4 , 150 ) ;
+ Vert = TRUE;
+ };
+
FixedLine FL_PAGE_LAYOUT
{
- Pos = MAP_APPFONT ( 6 , 146 ) ;
- Size = MAP_APPFONT (164 , 8 ) ;
+ Pos = MAP_APPFONT ( 182 , 3 ) ;
+ Size = MAP_APPFONT (164 , 8 ) ;
Text[ en-US ] = "Page layout" ;
};
RadioButton RB_PGLY_DEFAULT
{
HelpID = "filter:RadioButton:RID_PDF_TAB_OPNFTR:RB_PGLY_DEFAULT";
- Pos = MAP_APPFONT ( 12 , 158 ) ;
+ Pos = MAP_APPFONT ( 188 , 15 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
Text[ en-US ] = "D~efault" ;
};
RadioButton RB_PGLY_SINGPG
{
HelpID = "filter:RadioButton:RID_PDF_TAB_OPNFTR:RB_PGLY_SINGPG";
- Pos = MAP_APPFONT ( 12 , 170 ) ;
+ Pos = MAP_APPFONT ( 188 , 27 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
Text[ en-US ] = "~Single page" ;
};
RadioButton RB_PGLY_CONT
{
HelpID = "filter:RadioButton:RID_PDF_TAB_OPNFTR:RB_PGLY_CONT";
- Pos = MAP_APPFONT ( 12 , 182 ) ;
+ Pos = MAP_APPFONT ( 188 , 39 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
Text[ en-US ] = "~Continuous" ;
};
RadioButton RB_PGLY_CONTFAC
{
HelpID = "filter:RadioButton:RID_PDF_TAB_OPNFTR:RB_PGLY_CONTFAC";
- Pos = MAP_APPFONT ( 12 , 194 ) ;
+ Pos = MAP_APPFONT ( 188 , 51 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
Text[ en-US ] = "C~ontinuous facing" ;
};
CheckBox CB_PGLY_FIRSTLEFT
{
HelpID = "filter:CheckBox:RID_PDF_TAB_OPNFTR:CB_PGLY_FIRSTLEFT";
- Pos = MAP_APPFONT ( 22 , 206 ) ;
+ Pos = MAP_APPFONT ( 198 , 63 ) ;
Size = MAP_APPFONT ( 148 , 10 ) ;
Text[ en-US ] = "First page is ~left" ;
};
@@ -478,17 +493,23 @@
Text[ en-US ] = "~Display document title";
};
-////////////////////////////////
+ FixedLine FL_VPREFER_VERTICAL
+ {
+ Pos = MAP_APPFONT ( 175 , 3 ) ;
+ Size = MAP_APPFONT ( 4 , 150 ) ;
+ Vert = TRUE;
+ };
+
FixedLine FL_USRIFOPT
{
- Pos = MAP_APPFONT ( 6 , 64 ) ;
+ Pos = MAP_APPFONT ( 182 , 3 ) ;
Size = MAP_APPFONT ( 164 , 8 ) ;
Text[ en-US ] = "User interface options" ;
};
CheckBox CB_UOP_HIDEVMENUBAR
{
HelpID = "filter:CheckBox:RID_PDF_TAB_VPREFER:CB_UOP_HIDEVMENUBAR";
- Pos = MAP_APPFONT ( 12 , 76 ) ;
+ Pos = MAP_APPFONT ( 188 , 15 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "Hide ~menubar";
@@ -496,7 +517,7 @@
CheckBox CB_UOP_HIDEVTOOLBAR
{
HelpID = "filter:CheckBox:RID_PDF_TAB_VPREFER:CB_UOP_HIDEVTOOLBAR";
- Pos = MAP_APPFONT ( 12 , 88 ) ;
+ Pos = MAP_APPFONT ( 188 , 27 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "Hide ~toolbar";
@@ -504,7 +525,7 @@
CheckBox CB_UOP_HIDEVWINCTRL
{
HelpID = "filter:CheckBox:RID_PDF_TAB_VPREFER:CB_UOP_HIDEVWINCTRL";
- Pos = MAP_APPFONT ( 12 , 100 ) ;
+ Pos = MAP_APPFONT ( 188 , 39 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "Hide ~window controls";
@@ -513,14 +534,14 @@
////////////////////////////////
FixedLine FL_TRANSITIONS
{
- Pos = MAP_APPFONT ( 6 , 114 ) ;
+ Pos = MAP_APPFONT ( 6 , 64 ) ;
Size = MAP_APPFONT ( 164 , 8 ) ;
Text[ en-US ] = "Transitions" ;
};
CheckBox CB_TRANSITIONEFFECTS
{
HelpID = "filter:CheckBox:RID_PDF_TAB_VPREFER:CB_TRANSITIONEFFECTS";
- Pos = MAP_APPFONT ( 12 , 126 ) ;
+ Pos = MAP_APPFONT ( 12 , 76 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "~Use transition effects";
@@ -528,28 +549,28 @@
////////////////////////////////
FixedLine FL_BOOKMARKS
{
- Pos = MAP_APPFONT ( 6 , 140 ) ;
+ Pos = MAP_APPFONT ( 182 , 64 ) ;
Size = MAP_APPFONT ( 164 , 8 ) ;
Text[ en-US ] = "Bookmarks" ;
};
RadioButton RB_ALLBOOKMARKLEVELS
{
HelpID = "filter:RadioButton:RID_PDF_TAB_VPREFER:RB_ALLBOOKMARKLEVELS";
- Pos = MAP_APPFONT ( 12 , 152 ) ;
+ Pos = MAP_APPFONT ( 188 , 76 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
Text[ en-US ] = "All bookmark levels";
};
RadioButton RB_VISIBLEBOOKMARKLEVELS
{
HelpID = "filter:RadioButton:RID_PDF_TAB_VPREFER:RB_VISIBLEBOOKMARKLEVELS";
- Pos = MAP_APPFONT ( 12 , 166 ) ;
+ Pos = MAP_APPFONT ( 188 , 90 ) ;
Size = MAP_APPFONT ( 117 , 10 ) ;
Text[ en-US ] = "Visible bookmark levels";
};
NumericField NUM_BOOKMARKLEVELS
{
HelpID = "filter:NumericField:RID_PDF_TAB_VPREFER:NUM_BOOKMARKLEVELS";
- Pos = MAP_APPFONT ( 132 , 165 ) ;
+ Pos = MAP_APPFONT ( 308 , 89 ) ;
Size = MAP_APPFONT ( 32 , 12 ) ;
Border = TRUE;
Spin = TRUE;
@@ -649,31 +670,37 @@
Text [en-US] = "PDF doument will not be restricted due to PDF/A export.";
};
-//////////////////////////////
+ FixedLine FL_SECURITY_VERTICAL
+ {
+ Pos = MAP_APPFONT ( 175 , 3 ) ;
+ Size = MAP_APPFONT ( 4 , 150 ) ;
+ Vert = TRUE;
+ };
+
FixedLine FL_PRINT_PERMISSIONS
{
- Pos = MAP_APPFONT ( 12 , 90 ) ;
+ Pos = MAP_APPFONT ( 182 , 5 ) ;
Size = MAP_APPFONT (156 , 8 ) ;
Text[ en-US ] = "Printing" ;
};
RadioButton RB_PRINT_NONE
{
HelpID = "filter:RadioButton:RID_PDF_TAB_SECURITY:RB_PRINT_NONE";
- Pos = MAP_APPFONT ( 18 , 101 ) ;
+ Pos = MAP_APPFONT ( 188 , 16 ) ;
Size = MAP_APPFONT ( 150 , 10 ) ;
Text[ en-US ] = "~Not permitted";
};
RadioButton RB_PRINT_LOWRES
{
HelpID = "filter:RadioButton:RID_PDF_TAB_SECURITY:RB_PRINT_LOWRES";
- Pos = MAP_APPFONT ( 18 , 112 ) ;
+ Pos = MAP_APPFONT ( 188 , 27 ) ;
Size = MAP_APPFONT ( 150 , 10 ) ;
Text[ en-US ] = "~Low resolution (150 dpi)";
};
RadioButton RB_PRINT_HIGHRES
{
HelpID = "filter:RadioButton:RID_PDF_TAB_SECURITY:RB_PRINT_HIGHRES";
- Pos = MAP_APPFONT ( 18 , 123 ) ;
+ Pos = MAP_APPFONT ( 188 , 38 ) ;
Size = MAP_APPFONT ( 150 , 10 ) ;
Text[ en-US ] = "~High resolution";
};
@@ -681,35 +708,35 @@
/////////////////////////////
FixedLine FL_CHANGES_ALLOWED
{
- Pos = MAP_APPFONT ( 12 , 134 ) ;
+ Pos = MAP_APPFONT ( 182 , 49 ) ;
Size = MAP_APPFONT (156 , 8 ) ;
Text[ en-US ] = "Changes" ;
};
RadioButton RB_CHANGES_NONE
{
HelpID = "filter:RadioButton:RID_PDF_TAB_SECURITY:RB_CHANGES_NONE";
- Pos = MAP_APPFONT ( 18 , 145 ) ;
+ Pos = MAP_APPFONT ( 188 , 60 ) ;
Size = MAP_APPFONT ( 150 , 10 ) ;
Text[ en-US ] = "No~t permitted";
};
RadioButton RB_CHANGES_INSDEL
{
HelpID = "filter:RadioButton:RID_PDF_TAB_SECURITY:RB_CHANGES_INSDEL";
- Pos = MAP_APPFONT ( 18 , 157 ) ;
+ Pos = MAP_APPFONT ( 188 , 72 ) ;
Size = MAP_APPFONT ( 150 , 10 ) ;
Text[ en-US ] = "~Inserting, deleting, and rotating pages";
};
RadioButton RB_CHANGES_FILLFORM
{
HelpID = "filter:RadioButton:RID_PDF_TAB_SECURITY:RB_CHANGES_FILLFORM";
- Pos = MAP_APPFONT ( 18 , 168 ) ;
+ Pos = MAP_APPFONT ( 188 , 83 ) ;
Size = MAP_APPFONT ( 150 , 10 ) ;
Text[ en-US ] = "~Filling in form fields";
};
RadioButton RB_CHANGES_COMMENT
{
HelpID = "filter:RadioButton:RID_PDF_TAB_SECURITY:RB_CHANGES_COMMENT";
- Pos = MAP_APPFONT ( 18 , 179 ) ;
+ Pos = MAP_APPFONT ( 188 , 94 ) ;
Size = MAP_APPFONT ( 152 , 16 ) ;
WordBreak = TRUE ;
Text[ en-US ] = "~Commenting, filling in form fields";
@@ -717,7 +744,7 @@
RadioButton RB_CHANGES_ANY_NOCOPY
{
HelpID = "filter:RadioButton:RID_PDF_TAB_SECURITY:RB_CHANGES_ANY_NOCOPY";
- Pos = MAP_APPFONT ( 18 , 198 ) ;
+ Pos = MAP_APPFONT ( 188 , 113 ) ;
Size = MAP_APPFONT ( 152 , 10 ) ;
Text[ en-US ] = "~Any except extracting pages";
};
@@ -725,7 +752,7 @@
CheckBox CB_ENDAB_COPY
{
HelpID = "filter:CheckBox:RID_PDF_TAB_SECURITY:CB_ENDAB_COPY";
- Pos = MAP_APPFONT ( 12 , 211 ) ;
+ Pos = MAP_APPFONT ( 182 , 126 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "Ena~ble copying of content" ;
@@ -734,7 +761,7 @@
CheckBox CB_ENAB_ACCESS
{
HelpID = "filter:CheckBox:RID_PDF_TAB_SECURITY:CB_ENAB_ACCESS";
- Pos = MAP_APPFONT ( 12 , 224 ) ;
+ Pos = MAP_APPFONT ( 182 , 139 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "Enable text access for acce~ssibility tools" ;

@ -1,213 +0,0 @@
From 4d974b37e75d1c46b9ddbf86bc6f2756014c7c46 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 19 Jul 2011 13:39:34 +0100
Subject: [PATCH] Resolves: rhbz#715549 use fontconfig's detected format when
available
---
vcl/inc/vcl/fontmanager.hxx | 2 +-
vcl/unx/generic/fontmanager/fontconfig.cxx | 12 +++-
vcl/unx/generic/fontmanager/fontmanager.cxx | 81 +++++++++++++++++----------
3 files changed, 62 insertions(+), 33 deletions(-)
diff --git a/vcl/inc/vcl/fontmanager.hxx b/vcl/inc/vcl/fontmanager.hxx
index 410ecf1..816adbe 100644
--- a/vcl/inc/vcl/fontmanager.hxx
+++ b/vcl/inc/vcl/fontmanager.hxx
@@ -333,7 +333,7 @@ class VCL_PLUGIN_PUBLIC PrintFontManager
void getFontAttributesFromXLFD( PrintFont* pFont, const std::list< rtl::OString >& rXLFDs ) const;
- bool analyzeFontFile( int nDirID, const rtl::OString& rFileName, const std::list< rtl::OString >& rXLFDs, std::list< PrintFont* >& rNewFonts ) const;
+ bool analyzeFontFile( int nDirID, const rtl::OString& rFileName, const std::list< rtl::OString >& rXLFDs, std::list< PrintFont* >& rNewFonts, const char *pFormat=NULL ) const;
rtl::OUString convertTrueTypeName( void* pNameRecord ) const; // actually a NameRecord* formt font subsetting code
void analyzeTrueTypeFamilyName( void* pTTFont, std::list< rtl::OUString >& rnames ) const; // actually a TrueTypeFont* from font subsetting code
bool analyzeTrueTypeFile( PrintFont* pFont ) const;
diff --git a/vcl/unx/source/fontmanager/fontconfig.cxx b/vcl/unx/source/fontmanager/fontconfig.cxx
index e4b2f00..5e97bec 100644
--- a/vcl/unx/source/fontmanager/fontconfig.cxx
+++ b/vcl/unx/source/fontmanager/fontconfig.cxx
@@ -68,6 +68,9 @@
#ifndef FC_EMBOLDEN
#define FC_EMBOLDEN "embolden"
#endif
+ #ifndef FC_FONTFORMAT
+ #define FC_FONTFORMAT "fontformat"
+ #endif
#else
typedef void FcConfig;
typedef void FcObjectSet;
@@ -842,6 +845,7 @@
FcChar8* file = NULL;
FcChar8* family = NULL;
FcChar8* style = NULL;
+ FcChar8* format = NULL;
int slant = 0;
int weight = 0;
int spacing = 0;
@@ -856,6 +860,7 @@
FcResult eSpacRes = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_SPACING, 0, &spacing );
FcResult eOutRes = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_OUTLINE, 0, &outline );
FcResult eIndexRes = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_INDEX, 0, &nCollectionEntry );
+ FcResult eFormatRes = rWrapper.FcPatternGetString(pFSet->fonts[i], FC_FONTFORMAT, 0, &format);
if( eFileRes != FcResultMatch || eFamilyRes != FcResultMatch || eOutRes != FcResultMatch )
continue;
@@ -863,13 +868,14 @@
#if (OSL_DEBUG_LEVEL > 2)
fprintf( stderr, "found font \"%s\" in file %s\n"
" weight = %d, slant = %d, style = \"%s\"\n"
- " spacing = %d, outline = %d\n"
+ " spacing = %d, outline = %d, format %s\n"
, family, file
, eWeightRes == FcResultMatch ? weight : -1
, eSpacRes == FcResultMatch ? slant : -1
, eStyleRes == FcResultMatch ? (const char*) style : "<nil>"
, eSpacRes == FcResultMatch ? spacing : -1
, eOutRes == FcResultMatch ? outline : -1
+ , eFormatRes == FcResultMatch ? (const char*)format : "<unknown>"
);
#endif
@@ -904,7 +910,9 @@
// not known, analyze font file to get attributes
// not described by fontconfig (e.g. alias names, PSName)
std::list< OString > aDummy;
- analyzeFontFile( nDirID, aBase, aDummy, aFonts );
+ if (eFormatRes != FcResultMatch)
+ format = NULL;
+ analyzeFontFile( nDirID, aBase, aDummy, aFonts, (const char*)format );
#if OSL_DEBUG_LEVEL > 1
if( aFonts.empty() )
fprintf( stderr, "Warning: file \"%s\" is unusable to psprint\n", aOrgPath.getStr() );
diff --git a/vcl/unx/source/fontmanager/fontmanager.cxx b/vcl/unx/source/fontmanager/fontmanager.cxx
index 2dceb35..27a2629 100644
--- a/vcl/unx/source/fontmanager/fontmanager.cxx
+++ b/vcl/unx/source/fontmanager/fontmanager.cxx
@@ -1281,9 +1281,12 @@ int PrintFontManager::addFontFile( const ::rtl::OString& rFileName, int /*nFaceN
return nFontId;
}
-// -------------------------------------------------------------------------
+enum fontFormat
+{
+ UNKNOWN, TRUETYPE, CFF, TYPE1, AFM
+};
-bool PrintFontManager::analyzeFontFile( int nDirID, const OString& rFontFile, const ::std::list<OString>& rXLFDs, ::std::list< PrintFontManager::PrintFont* >& rNewFonts ) const
+bool PrintFontManager::analyzeFontFile( int nDirID, const OString& rFontFile, const ::std::list<OString>& rXLFDs, ::std::list< PrintFontManager::PrintFont* >& rNewFonts, const char *pFormat ) const
{
rNewFonts.clear();
@@ -1297,8 +1300,32 @@ bool PrintFontManager::analyzeFontFile( int nDirID, const OString& rFontFile, co
if( access( aFullPath.getStr(), R_OK ) )
return false;
- ByteString aExt( rFontFile.copy( rFontFile.lastIndexOf( '.' )+1 ) );
- if( aExt.EqualsIgnoreCaseAscii( "pfb" ) || aExt.EqualsIgnoreCaseAscii( "pfa" ) )
+ fontFormat eFormat = UNKNOWN;
+ if (pFormat)
+ {
+ if (!strcmp(pFormat, "TrueType"))
+ eFormat = TRUETYPE;
+ else if (!strcmp(pFormat, "CFF"))
+ eFormat = CFF;
+ else if (!strcmp(pFormat, "Type 1"))
+ eFormat = TYPE1;
+ }
+ if (eFormat == UNKNOWN)
+ {
+ ByteString aExt( rFontFile.copy( rFontFile.lastIndexOf( '.' )+1 ) );
+ if( aExt.EqualsIgnoreCaseAscii( "pfb" ) || aExt.EqualsIgnoreCaseAscii( "pfa" ) )
+ eFormat = TYPE1;
+ else if( aExt.EqualsIgnoreCaseAscii( "afm" ) )
+ eFormat = AFM;
+ else if( aExt.EqualsIgnoreCaseAscii( "ttf" )
+ || aExt.EqualsIgnoreCaseAscii( "ttc" )
+ || aExt.EqualsIgnoreCaseAscii( "tte" ) ) // #i33947# for Gaiji support
+ eFormat = TRUETYPE;
+ else if( aExt.EqualsIgnoreCaseAscii( "otf" ) ) // check for TTF- and PS-OpenType too
+ eFormat = CFF;
+ }
+
+ if (eFormat == TYPE1)
{
// check for corresponding afm metric
// first look for an adjacent file
@@ -1352,7 +1379,7 @@ bool PrintFontManager::analyzeFontFile( int nDirID, const OString& rFontFile, co
}
}
}
- else if( aExt.EqualsIgnoreCaseAscii( "afm" ) )
+ else if (eFormat == AFM)
{
ByteString aFilePath( aDir );
aFilePath.Append( '/' );
@@ -1365,34 +1392,14 @@ bool PrintFontManager::analyzeFontFile( int nDirID, const OString& rFontFile, co
else
delete pFont;
}
- else if( aExt.EqualsIgnoreCaseAscii( "ttf" )
- || aExt.EqualsIgnoreCaseAscii( "tte" ) // #i33947# for Gaiji support
- || aExt.EqualsIgnoreCaseAscii( "otf" ) ) // check for TTF- and PS-OpenType too
- {
- TrueTypeFontFile* pFont = new TrueTypeFontFile();
- pFont->m_nDirectory = nDirID;
- pFont->m_aFontFile = rFontFile;
- pFont->m_nCollectionEntry = -1;
-
- if( rXLFDs.size() )
- getFontAttributesFromXLFD( pFont, rXLFDs );
- // need to read the font anyway to get aliases inside the font file
- if( ! analyzeTrueTypeFile( pFont ) )
- {
- delete pFont;
- pFont = NULL;
- }
- else
- rNewFonts.push_back( pFont );
- }
- else if( aExt.EqualsIgnoreCaseAscii( "ttc" ) )
+ else if (eFormat == TRUETYPE || eFormat == CFF)
{
// get number of ttc entries
int nLength = CountTTCFonts( aFullPath.getStr() );
if( nLength )
{
#if OSL_DEBUG_LEVEL > 1
- fprintf( stderr, "%s contains %d fonts\n", aFullPath.getStr(), nLength );
+ fprintf( stderr, "ttc: %s contains %d fonts\n", aFullPath.getStr(), nLength );
#endif
for( int i = 0; i < nLength; i++ )
{
@@ -1411,10 +1418,24 @@ bool PrintFontManager::analyzeFontFile( int nDirID, const OString& rFontFile, co
rNewFonts.push_back( pFont );
}
}
-#if OSL_DEBUG_LEVEL > 1
else
- fprintf( stderr, "CountTTCFonts( \"%s/%s\" ) failed\n", getDirectory(nDirID).getStr(), rFontFile.getStr() );
-#endif
+ {
+ TrueTypeFontFile* pFont = new TrueTypeFontFile();
+ pFont->m_nDirectory = nDirID;
+ pFont->m_aFontFile = rFontFile;
+ pFont->m_nCollectionEntry = -1;
+
+ if( rXLFDs.size() )
+ getFontAttributesFromXLFD( pFont, rXLFDs );
+ // need to read the font anyway to get aliases inside the font file
+ if( ! analyzeTrueTypeFile( pFont ) )
+ {
+ delete pFont;
+ pFont = NULL;
+ }
+ else
+ rNewFonts.push_back( pFont );
+ }
}
return ! rNewFonts.empty();
}
--
1.7.6

@ -1,39 +0,0 @@
From 76cf006837fdb687ce0a34ac673f3b8531b19700 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 15 Sep 2011 12:32:51 +0100
Subject: [PATCH] Resolves: rhbz#738255 avoid crash on NULL pointer
---
sc/source/ui/app/inputhdl.cxx | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index 1524397..c30a8fd 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -2469,13 +2469,16 @@ void ScInputHandler::EnterHandler( sal_uInt8 nBlockMode )
ScDocument* pDoc = pActiveViewSh->GetViewData()->GetDocument();
// #i67990# don't use pLastPattern in EnterHandler
const ScPatternAttr* pPattern = pDoc->GetPattern( aCursorPos.Col(), aCursorPos.Row(), aCursorPos.Tab() );
- SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
- // without conditional format, as in ScColumn::SetString
- sal_uInt32 nFormat = pPattern->GetNumberFormat( pFormatter );
- double nVal;
- if ( pFormatter->IsNumberFormat( aString, nFormat, nVal ) )
+ if (pPattern)
{
- bSpellErrors = false; // ignore the spelling errors
+ SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
+ // without conditional format, as in ScColumn::SetString
+ sal_uInt32 nFormat = pPattern->GetNumberFormat( pFormatter );
+ double nVal;
+ if ( pFormatter->IsNumberFormat( aString, nFormat, nVal ) )
+ {
+ bSpellErrors = false; // ignore the spelling errors
+ }
}
}
}
--
1.7.6

@ -1,60 +0,0 @@
From 7cd58dbe32e5421986216dd7c6b24a4bb0b9c1e5 Mon Sep 17 00:00:00 2001
From: Luboš Luňák <l.lunak@suse.cz>
Date: Tue, 18 Oct 2011 14:52:47 +0000
Subject: style tooltips properly with KDE4 vclplug (fdo#40461)
---
(limited to 'vcl/unx/kde4')
diff --git a/vcl/unx/kde4/KDESalFrame.cxx b/vcl/unx/kde4/KDESalFrame.cxx
index 10e7350..4dd54e5 100644
--- a/vcl/unx/kde4/KDESalFrame.cxx
+++ b/vcl/unx/kde4/KDESalFrame.cxx
@@ -38,6 +38,8 @@
#include <kmainwindow.h>
#include <kapplication.h>
#include <ktoolbar.h>
+#include <qdebug.h>
+#include <qtooltip.h>
#undef Region
@@ -239,11 +241,9 @@ void KDESalFrame::UpdateSettings( AllSettings& rSettings )
style.SetFieldTextColor( aText );
style.SetFieldRolloverTextColor( aText );
style.SetWindowTextColor( aText );
- style.SetHelpTextColor( aText );
// Base
style.SetFieldColor( aBase );
- style.SetHelpColor( aBase );
style.SetWindowColor( aBase );
style.SetActiveTabColor( aBase );
@@ -268,11 +268,14 @@ void KDESalFrame::UpdateSettings( AllSettings& rSettings )
style.SetHighlightColor( aHigh );
style.SetHighlightTextColor( toColor(pal.color( QPalette::HighlightedText)) );
+ // Tooltip
+ style.SetHelpColor( toColor( QToolTip::palette().color( QPalette::Active, QPalette::ToolTipBase )));
+ style.SetHelpTextColor( toColor( QToolTip::palette().color( QPalette::Active, QPalette::ToolTipText )));
+
// Font
Font aFont = toFont( kapp->font(), rSettings.GetUILocale() );
style.SetAppFont( aFont );
- style.SetHelpFont( aFont );
style.SetMenuFont( aFont ); // will be changed according to pMenuBar
//style.SetToolFont( aFont ); //already set above
@@ -291,6 +294,8 @@ void KDESalFrame::UpdateSettings( AllSettings& rSettings )
}
style.SetFloatTitleFont( aFont );
+ style.SetHelpFont( toFont( QToolTip::font(), rSettings.GetUILocale()));
+
int flash_time = QApplication::cursorFlashTime();
style.SetCursorBlinkTime( flash_time != 0 ? flash_time/2 : STYLE_CURSOR_NOBLINKTIME );
--
cgit v0.9.0.2-2-gbebe

@ -1,68 +0,0 @@
From 549e54fb2f8113502743c443d6deadfe648dede1 Mon Sep 17 00:00:00 2001
From: Hanno Meyer-Thurow <h.mth@web.de>
Date: Tue, 13 Sep 2011 13:23:28 +0100
Subject: [PATCH] add Oracle Java 1.7.0 recognition
---
.../OpenOfficeorg/javavendors_linux.xml | 4 ++++
jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx | 2 ++
jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx | 1 +
3 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml b/jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml
index ed329e5..489511f 100644
--- a/jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml
+++ b/jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml
@@ -9,6 +9,9 @@
<vendor name="Sun Microsystems Inc.">
<minVersion>1.5.0</minVersion>
</vendor>
+ <vendor name="Oracle Corporation">
+ <minVersion>1.7.0</minVersion>
+ </vendor>
<vendor name="IBM Corporation">
<minVersion>1.5.0</minVersion>
</vendor>
@@ -25,6 +28,7 @@
<plugins>
<library vendor="Sun Microsystems Inc.">vnd.sun.star.expand:$URE_INTERNAL_LIB_DIR/sunjavaplugin.so</library>
+ <library vendor="Oracle Corporation">vnd.sun.star.expand:$URE_INTERNAL_LIB_DIR/sunjavaplugin.so</library>
<library vendor="IBM Corporation">vnd.sun.star.expand:$URE_INTERNAL_LIB_DIR/sunjavaplugin.so</library>
<library vendor="Blackdown Java-Linux Team">vnd.sun.star.expand:$URE_INTERNAL_LIB_DIR/sunjavaplugin.so</library>
<library vendor="Free Software Foundation, Inc.">vnd.sun.star.expand:$URE_INTERNAL_LIB_DIR/sunjavaplugin.so</library>
diff --git a/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx b/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx
index 8567d79..91ad4c6 100644
--- a/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx
+++ b/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx
@@ -112,6 +112,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
//Only do something if the sunjavaplugin created this JavaInfo
rtl::OUString sVendor1(RTL_CONSTASCII_USTRINGPARAM("Sun Microsystems Inc."));
+ rtl::OUString sVendor9(RTL_CONSTASCII_USTRINGPARAM("Oracle Corporation"));
rtl::OUString sVendor2(RTL_CONSTASCII_USTRINGPARAM("IBM Corporation"));
rtl::OUString sVendor3(RTL_CONSTASCII_USTRINGPARAM("Blackdown Java-Linux Team"));
rtl::OUString sVendor4(RTL_CONSTASCII_USTRINGPARAM("Apple Inc."));
@@ -121,6 +122,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
rtl::OUString sVendor8(RTL_CONSTASCII_USTRINGPARAM("The FreeBSD Foundation"));
if ( ! (sVendor1.equals(pInfo->sVendor) == sal_True
|| sVendor2.equals(pInfo->sVendor) == sal_True
+ || sVendor9.equals(pInfo->sVendor) == sal_True
|| sVendor3.equals(pInfo->sVendor) == sal_True
|| sVendor4.equals(pInfo->sVendor) == sal_True
|| sVendor5.equals(pInfo->sVendor) == sal_True
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx b/jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx
index f24b6ff..5e87002 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx
@@ -52,6 +52,7 @@ namespace jfw_plugin
*/
BEGIN_VENDOR_MAP()
VENDOR_MAP_ENTRY("Sun Microsystems Inc.", SunInfo)
+ VENDOR_MAP_ENTRY("Oracle Corporation", SunInfo)
VENDOR_MAP_ENTRY("IBM Corporation", OtherInfo)
VENDOR_MAP_ENTRY("Blackdown Java-Linux Team", OtherInfo)
VENDOR_MAP_ENTRY("Apple Inc.", OtherInfo)
--
1.7.6.4

@ -1,47 +0,0 @@
From 04c5a36ab8d514cfbe8e40f4493787b2ab392ab5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 25 Oct 2011 13:49:51 +0100
Subject: [PATCH] avoid using com.sun.org apis
---
.../pentaho/output/OfficeDocumentReportTarget.java | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java
index cdc8eae..ef99a15 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java
@@ -41,7 +41,6 @@ import com.sun.star.report.pentaho.model.OfficeStyles;
import com.sun.star.report.pentaho.model.OfficeStylesCollection;
import com.sun.star.report.pentaho.styles.LengthCalculator;
import com.sun.star.report.pentaho.styles.StyleMapper;
-import com.sun.org.apache.xerces.internal.parsers.DOMParser;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.transform.OutputKeys;
@@ -49,6 +48,8 @@ import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -1058,9 +1059,10 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget
try
{
inputStream = getInputRepository().createInputStream("meta.xml");
- DOMParser dOMParser = new DOMParser();
- dOMParser.parse(new InputSource(inputStream));
- Document document = dOMParser.getDocument();
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document document = dBuilder.parse(new InputSource(inputStream));
+
NodeList nl = document.getElementsByTagName("document-meta/meta/generator");
Node node = document.getFirstChild().getFirstChild().getFirstChild().getFirstChild();
String creator = node.getNodeValue();
--
1.7.6.4

@ -1,61 +0,0 @@
From e33537190f7a57ddcfe1382d330fa5d28581f16b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Mon, 18 Apr 2011 09:01:37 +0100
Subject: [PATCH] bubble down configure test findings on visibility
---
solenv/gbuild/platform/unxgcc.mk | 22 ++++++++++++++++++----
1 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index 11a0205..b58e4ba 100755
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -59,7 +59,6 @@ endif
gb_COMPILERDEFS := \
-D$(COM) \
- -DHAVE_GCC_VISIBILITY_FEATURE \
-DCPPU_ENV=gcc3 \
-DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \
@@ -71,7 +70,6 @@ gb_CFLAGS := \
-fPIC \
-fmessage-length=0 \
-fno-common \
- -fvisibility=hidden \
-pipe \
gb_CXXFLAGS := \
@@ -85,10 +83,26 @@ gb_CXXFLAGS := \
-fPIC \
-fmessage-length=0 \
-fno-common \
- -fvisibility-inlines-hidden \
- -fvisibility=hidden \
-pipe \
+ifeq ($(HAVE_GCC_VISIBILITY_FEATURE),TRUE)
+gb_COMPILERDEFS += \
+ -DHAVE_GCC_VISIBILITY_FEATURE \
+
+gb_CFLAGS += \
+ -fvisibility=hidden
+
+gb_CXXFLAGS += \
+ -fvisibility=hidden \
+
+ifneq ($(HAVE_GCC_VISIBILITY_BROKEN),TRUE)
+gb_CXXFLAGS += \
+ -fvisibility-inlines-hidden \
+
+endif
+
+endif
+
gb_CCVER := $(shell $(gb_CC) -dumpversion | $(gb_AWK) -F. -- '{ print $$1*10000+$$2*100+$$3 }')
gb_StrictAliasingUnsafe := $(shell expr $(gb_CCVER) \< 40600)
--
1.7.4.2

@ -1,65 +0,0 @@
From 082ecb53a9077b6ae01ce66237f48d88bcb0cc00 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lunak@suse.cz>
Date: Thu, 20 Oct 2011 19:05:13 +0200
Subject: [PATCH] fix horizontal scrollbars with KDE oxygen style (bnc#722918)
Apparently there are two style flags for detecting the widget
is horizontal.
---
vcl/unx/kde4/KDESalGraphics.cxx | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/vcl/unx/kde4/KDESalGraphics.cxx b/vcl/unx/kde4/KDESalGraphics.cxx
index 749fbf0..b09fe53 100644
--- a/vcl/unx/kde4/KDESalGraphics.cxx
+++ b/vcl/unx/kde4/KDESalGraphics.cxx
@@ -493,10 +493,9 @@ sal_Bool KDESalGraphics::drawNativeControl( ControlType type, ControlPart part,
if (sbVal->mnVisibleSize < sbVal->mnMax)
option.state = QStyle::State_MouseOver;
- //horizontal or vertical
- if (part == PART_DRAW_BACKGROUND_VERT)
- option.orientation = Qt::Vertical;
- else
+ bool horizontal = ( part == PART_DRAW_BACKGROUND_HORZ ); //horizontal or vertical
+ option.orientation = horizontal ? Qt::Horizontal : Qt::Vertical;
+ if( horizontal )
option.state |= QStyle::State_Horizontal;
//setup parameters from the OO values
@@ -592,7 +591,10 @@ sal_Bool KDESalGraphics::drawNativeControl( ControlType type, ControlPart part,
option.maximum = slVal->mnMax;
option.minimum = slVal->mnMin;
option.sliderPosition = option.sliderValue = slVal->mnCur;
- option.orientation = (part == PART_TRACK_HORZ_AREA) ? Qt::Horizontal : Qt::Vertical;
+ bool horizontal = ( part == PART_TRACK_HORZ_AREA ); //horizontal or vertical
+ option.orientation = horizontal ? Qt::Horizontal : Qt::Vertical;
+ if( horizontal )
+ option.state |= QStyle::State_Horizontal;
draw( QStyle::CC_Slider, &option, m_image, vclStateValue2StateFlag(nControlState, value) );
}
@@ -903,7 +905,10 @@ sal_Bool KDESalGraphics::getNativeControlRegion( ControlType type, ControlPart p
QStyleOptionSlider option;
OSL_ASSERT( val.getType() == CTRL_SCROLLBAR );
const ScrollbarValue* sbVal = static_cast<const ScrollbarValue *>(&val);
- option.orientation = ( part == PART_TRACK_HORZ_AREA ) ? Qt::Horizontal : Qt::Vertical;
+ bool horizontal = ( part == PART_TRACK_HORZ_AREA ); //horizontal or vertical
+ option.orientation = horizontal ? Qt::Horizontal : Qt::Vertical;
+ if( horizontal )
+ option.state |= QStyle::State_Horizontal;
option.minimum = sbVal->mnMin;
option.maximum = sbVal->mnMax;
option.sliderValue = sbVal->mnCur;
@@ -971,6 +976,8 @@ sal_Bool KDESalGraphics::hitTestNativeControl( ControlType nType, ControlPart nP
rect.moveTo( 0, 0 );
QStyleOptionSlider options;
options.orientation = bHorizontal ? Qt::Horizontal : Qt::Vertical;
+ if( bHorizontal )
+ options.state |= QStyle::State_Horizontal;
options.rect = rect;
// some random sensible values, since we call this code only for scrollbar buttons,
// the slider position does not exactly matter
--
1.7.6.4

@ -1,26 +0,0 @@
From a07e8231a5cd3e12f7120486098479ab6ae6bcc2 Mon Sep 17 00:00:00 2001
From: Michael Meeks <michael.meeks@suse.com>
Date: Thu, 20 Oct 2011 21:49:40 +0100
Subject: [PATCH] gtk3: fix cairo canvas crash for non X (or svp) backend
---
canvas/source/cairo/cairo_xlib_cairo.cxx | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/canvas/source/cairo/cairo_xlib_cairo.cxx b/canvas/source/cairo/cairo_xlib_cairo.cxx
index a0569ab..8e9120d 100644
--- a/canvas/source/cairo/cairo_xlib_cairo.cxx
+++ b/canvas/source/cairo/cairo_xlib_cairo.cxx
@@ -55,6 +55,9 @@ namespace cairo
return false;
Display* pDisplay = (Display*)pOutDev->GetSystemGfxData().pDisplay;
+ if( !pDisplay )
+ return false;
+
int nDummy;
return XQueryExtension( pDisplay, "RENDER", &nDummy, &nDummy, &nDummy );
}
--
1.7.6.4

@ -1,622 +0,0 @@
diff --git a/sal/rtl/source/alloc_arena.c b/sal/rtl/source/alloc_arena.c
index 27ac970..c2294d8 100644
--- a/sal/rtl/source/alloc_arena.c
+++ b/sal/rtl/source/alloc_arena.c
@@ -102,13 +102,6 @@ rtl_machdep_pagesize (void);
rtl_arena_type * gp_default_arena = 0;
-/** rtl_arena_init()
- * @internal
- */
-static int
-rtl_arena_init (void);
-
-
/* ================================================================= */
/** rtl_arena_segment_constructor()
@@ -921,6 +914,8 @@ rtl_arena_deactivate (
*
* ================================================================= */
+extern void ensureArenaSingleton();
+
/** rtl_arena_create()
*/
rtl_arena_type *
@@ -973,7 +968,8 @@ try_alloc:
}
else if (gp_arena_arena == 0)
{
- if (rtl_arena_init())
+ ensureArenaSingleton();
+ if (gp_arena_arena)
{
/* try again */
goto try_alloc;
@@ -1279,8 +1275,8 @@ rtl_machdep_pagesize (void)
*
* ================================================================= */
-static void
-rtl_arena_once_init (void)
+void
+rtl_arena_init (void)
{
{
/* list of arenas */
@@ -1342,36 +1338,11 @@ rtl_arena_once_init (void)
);
OSL_ASSERT(gp_arena_arena != 0);
}
-}
-
-static int
-rtl_arena_init (void)
-{
- static sal_once_type g_once = SAL_ONCE_INIT;
- SAL_ONCE(&g_once, rtl_arena_once_init);
- return (gp_arena_arena != 0);
+ OSL_TRACE("rtl_arena_init completed");
}
/* ================================================================= */
-/*
- Issue http://udk.openoffice.org/issues/show_bug.cgi?id=92388
-
- Mac OS X does not seem to support "__cxa__atexit", thus leading
- to the situation that "__attribute__((destructor))__" functions
- (in particular "rtl_{memory|cache|arena}_fini") become called
- _before_ global C++ object d'tors.
-
- Delegated the call to "rtl_arena_fini()" into a dummy C++ object,
- see alloc_fini.cxx .
-*/
-#if defined(__GNUC__) && !defined(MACOSX)
-static void rtl_arena_fini (void) __attribute__((destructor));
-#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma fini(rtl_arena_fini)
-static void rtl_arena_fini (void);
-#endif /* __GNUC__ || __SUNPRO_C */
-
void
rtl_arena_fini (void)
{
@@ -1394,6 +1365,7 @@ rtl_arena_fini (void)
}
RTL_MEMORY_LOCK_RELEASE(&(g_arena_list.m_lock));
}
+ OSL_TRACE("rtl_arena_fini completed");
}
/* ================================================================= */
diff --git a/sal/rtl/source/alloc_cache.c b/sal/rtl/source/alloc_cache.c
index 06de201..ebf799e 100644
--- a/sal/rtl/source/alloc_cache.c
+++ b/sal/rtl/source/alloc_cache.c
@@ -99,13 +99,6 @@ static rtl_cache_type * gp_cache_slab_cache = 0;
static rtl_cache_type * gp_cache_bufctl_cache = 0;
-/** rtl_cache_init()
- * @internal
- */
-static int
-rtl_cache_init (void);
-
-
/* ================================================================= */
/** RTL_CACHE_HASH_INDEX()
@@ -1119,6 +1112,8 @@ rtl_cache_deactivate (
*
* ================================================================= */
+extern void ensureCacheSingleton();
+
/** rtl_cache_create()
*/
rtl_cache_type *
@@ -1176,7 +1171,8 @@ try_alloc:
}
else if (gp_cache_arena == 0)
{
- if (rtl_cache_init())
+ ensureCacheSingleton();
+ if (gp_cache_arena)
{
/* try again */
goto try_alloc;
@@ -1583,8 +1579,8 @@ rtl_cache_wsupdate_all (void * arg)
*
* ================================================================= */
-static void
-rtl_cache_once_init (void)
+void
+rtl_cache_init (void)
{
{
/* list of caches */
@@ -1680,36 +1676,11 @@ rtl_cache_once_init (void)
}
rtl_cache_wsupdate_init();
-}
-
-static int
-rtl_cache_init (void)
-{
- static sal_once_type g_once = SAL_ONCE_INIT;
- SAL_ONCE(&g_once, rtl_cache_once_init);
- return (gp_cache_arena != 0);
+ OSL_TRACE("rtl_cache_init completed");
}
/* ================================================================= */
-/*
- Issue http://udk.openoffice.org/issues/show_bug.cgi?id=92388
-
- Mac OS X does not seem to support "__cxa__atexit", thus leading
- to the situation that "__attribute__((destructor))__" functions
- (in particular "rtl_{memory|cache|arena}_fini") become called
- _before_ global C++ object d'tors.
-
- Delegated the call to "rtl_cache_fini()" into a dummy C++ object,
- see alloc_fini.cxx .
-*/
-#if defined(__GNUC__) && !defined(MACOSX)
-static void rtl_cache_fini (void) __attribute__((destructor));
-#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma fini(rtl_cache_fini)
-static void rtl_cache_fini (void);
-#endif /* __GNUC__ || __SUNPRO_C */
-
void
rtl_cache_fini (void)
{
@@ -1765,6 +1736,7 @@ rtl_cache_fini (void)
}
RTL_MEMORY_LOCK_RELEASE(&(g_cache_list.m_lock));
}
+ OSL_TRACE("rtl_cache_fini completed");
}
/* ================================================================= */
diff --git a/sal/rtl/source/alloc_fini.cxx b/sal/rtl/source/alloc_fini.cxx
index 5bc174e..f079676 100644
--- a/sal/rtl/source/alloc_fini.cxx
+++ b/sal/rtl/source/alloc_fini.cxx
@@ -26,33 +26,72 @@
*
************************************************************************/
-/*
- Issue http://udk.openoffice.org/issues/show_bug.cgi?id=92388
-
- Mac OS X does not seem to support "__cxa__atexit", thus leading
- to the situation that "__attribute__((destructor))__" functions
- (in particular "rtl_{memory|cache|arena}_fini") become called
- _before_ global C++ object d'tors.
-
- Using a C++ dummy object instead.
-*/
+#include <rtl/instance.hxx>
extern "C" void rtl_memory_fini (void);
-extern "C" void rtl_cache_fini (void);
-extern "C" void rtl_arena_fini (void);
-
-struct RTL_Alloc_Fini
+extern "C" void rtl_memory_init (void);
+namespace
+{
+ struct rtlMemorySingleton
+ {
+ rtlMemorySingleton()
+ {
+ rtl_memory_init();
+ }
+ ~rtlMemorySingleton()
+ {
+ rtl_memory_fini();
+ }
+ };
+ class theMemorySingleton : public rtl::Static<rtlMemorySingleton, theMemorySingleton>{};
+}
+extern "C" void ensureMemorySingleton()
{
- ~RTL_Alloc_Fini() ;
-};
+ theMemorySingleton::get();
+}
-RTL_Alloc_Fini::~RTL_Alloc_Fini()
+extern "C" void rtl_cache_fini (void);
+extern "C" void rtl_cache_init (void);
+namespace
+{
+ struct rtlCacheSingleton
+ {
+ rtlCacheSingleton()
+ {
+ rtl_cache_init();
+ }
+ ~rtlCacheSingleton()
+ {
+ rtl_cache_fini();
+ }
+ };
+ class theCacheSingleton : public rtl::Static<rtlCacheSingleton, theCacheSingleton>{};
+}
+extern "C" void ensureCacheSingleton()
{
- rtl_memory_fini();
- rtl_cache_fini();
- rtl_arena_fini();
+ theCacheSingleton::get();
}
-static RTL_Alloc_Fini g_RTL_Alloc_Fini;
+extern "C" void rtl_arena_fini (void);
+extern "C" void rtl_arena_init (void);
+namespace
+{
+ struct rtlArenaSingleton
+ {
+ rtlArenaSingleton()
+ {
+ rtl_arena_init();
+ }
+ ~rtlArenaSingleton()
+ {
+ rtl_arena_fini();
+ }
+ };
+ class theArenaSingleton : public rtl::Static<rtlArenaSingleton, theArenaSingleton>{};
+}
+extern "C" void ensureArenaSingleton()
+{
+ theArenaSingleton::get();
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/alloc_global.c b/sal/rtl/source/alloc_global.c
index 70504ac..fb95e83 100644
--- a/sal/rtl/source/alloc_global.c
+++ b/sal/rtl/source/alloc_global.c
@@ -29,6 +29,7 @@
#include "alloc_impl.h"
#include "rtl/alloc.h"
#include <sal/macros.h>
+#include <osl/diagnose.h>
#include <string.h>
#include <stdio.h>
@@ -66,7 +67,6 @@ static void determine_alloc_mode(void)
#include "internal/once.h"
#include "sal/macros.h"
-#include "osl/diagnose.h"
/* ================================================================= *
*
@@ -108,60 +108,7 @@ static rtl_cache_type * g_alloc_table[RTL_MEMORY_CACHED_LIMIT >> RTL_MEMALIGN_SH
static rtl_arena_type * gp_alloc_arena = 0;
-/* ================================================================= *
- *
- * custom allocator initialization / finalization.
- *
- * ================================================================= */
-
-static void
-rtl_memory_once_init (void)
-{
- {
- /* global memory arena */
- OSL_ASSERT(gp_alloc_arena == 0);
-
- gp_alloc_arena = rtl_arena_create (
- "rtl_alloc_arena",
- 2048, /* quantum */
- 0, /* w/o quantum caching */
- 0, /* default source */
- rtl_arena_alloc,
- rtl_arena_free,
- 0 /* flags */
- );
- OSL_ASSERT(gp_alloc_arena != 0);
- }
- {
- sal_Size size;
- int i, n = RTL_MEMORY_CACHED_SIZES;
-
- for (i = 0; i < n; i++)
- {
- char name[RTL_CACHE_NAME_LENGTH + 1];
- (void) snprintf (name, sizeof(name), "rtl_alloc_%lu", g_alloc_sizes[i]);
- g_alloc_caches[i] = rtl_cache_create (name, g_alloc_sizes[i], 0, NULL, NULL, NULL, NULL, NULL, 0);
- }
-
- size = RTL_MEMALIGN;
- for (i = 0; i < n; i++)
- {
- while (size <= g_alloc_sizes[i])
- {
- g_alloc_table[(size - 1) >> RTL_MEMALIGN_SHIFT] = g_alloc_caches[i];
- size += RTL_MEMALIGN;
- }
- }
- }
-}
-
-static int
-rtl_memory_init (void)
-{
- static sal_once_type g_once = SAL_ONCE_INIT;
- SAL_ONCE(&g_once, rtl_memory_once_init);
- return (gp_alloc_arena != 0);
-}
+extern void ensureMemorySingleton();
/* ================================================================= *
*
@@ -198,7 +145,8 @@ try_alloc:
}
else if (gp_alloc_arena == 0)
{
- if (rtl_memory_init())
+ ensureMemorySingleton();
+ if (gp_alloc_arena)
{
/* try again */
goto try_alloc;
@@ -256,28 +204,58 @@ void * SAL_CALL rtl_reallocateMemory_CUSTOM (void * p, sal_Size n) SAL_THROW_EXT
#endif
+/* ================================================================= *
+ *
+ * custom allocator initialization / finalization.
+ *
+ * ================================================================= */
+
+void rtl_memory_init (void)
+{
+#if !defined(FORCE_SYSALLOC)
+ {
+ /* global memory arena */
+ OSL_ASSERT(gp_alloc_arena == 0);
+
+ gp_alloc_arena = rtl_arena_create (
+ "rtl_alloc_arena",
+ 2048, /* quantum */
+ 0, /* w/o quantum caching */
+ 0, /* default source */
+ rtl_arena_alloc,
+ rtl_arena_free,
+ 0 /* flags */
+ );
+ OSL_ASSERT(gp_alloc_arena != 0);
+ }
+ {
+ sal_Size size;
+ int i, n = RTL_MEMORY_CACHED_SIZES;
+
+ for (i = 0; i < n; i++)
+ {
+ char name[RTL_CACHE_NAME_LENGTH + 1];
+ (void) snprintf (name, sizeof(name), "rtl_alloc_%lu", g_alloc_sizes[i]);
+ g_alloc_caches[i] = rtl_cache_create (name, g_alloc_sizes[i], 0, NULL, NULL, NULL, NULL, NULL, 0);
+ }
+
+ size = RTL_MEMALIGN;
+ for (i = 0; i < n; i++)
+ {
+ while (size <= g_alloc_sizes[i])
+ {
+ g_alloc_table[(size - 1) >> RTL_MEMALIGN_SHIFT] = g_alloc_caches[i];
+ size += RTL_MEMALIGN;
+ }
+ }
+ }
+#endif
+ OSL_TRACE("rtl_memory_init completed");
+}
+
/* ================================================================= */
-/*
- Issue http://udk.openoffice.org/issues/show_bug.cgi?id=92388
-
- Mac OS X does not seem to support "__cxa__atexit", thus leading
- to the situation that "__attribute__((destructor))__" functions
- (in particular "rtl_memory_fini") become called _before_ global
- C++ object d'tors.
-
- Delegated the call to "rtl_memory_fini" into a dummy C++ object,
- see memory_fini.cxx .
-*/
-#if defined(__GNUC__) && !defined(MACOSX) && !defined(AIX)
-static void rtl_memory_fini (void) __attribute__((destructor));
-#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma fini(rtl_memory_fini)
-static void rtl_memory_fini (void);
-#endif /* __GNUC__ || __SUNPRO_C */
-
-void
-rtl_memory_fini (void)
+void rtl_memory_fini (void)
{
#if !defined(FORCE_SYSALLOC)
int i, n;
@@ -302,6 +280,7 @@ rtl_memory_fini (void)
gp_alloc_arena = 0;
}
#endif
+ OSL_TRACE("rtl_memory_fini completed");
}
/* ================================================================= *
diff --git a/sal/rtl/source/makefile.mk b/sal/rtl/source/makefile.mk
index 67ae7f8..9c3921d 100644
--- a/sal/rtl/source/makefile.mk
+++ b/sal/rtl/source/makefile.mk
@@ -100,12 +100,8 @@ SLOFILES= \
$(SLO)$/math.obj \
$(SLO)$/alloc_global.obj\
$(SLO)$/alloc_cache.obj \
- $(SLO)$/alloc_arena.obj
-
-.IF "$(OS)"=="MACOSX" || "$(OS)"=="AIX"
-SLOFILES+=$(SLO)$/alloc_fini.obj
-.ENDIF
-
+ $(SLO)$/alloc_arena.obj \
+ $(SLO)$/alloc_fini.obj
OBJFILES= \
$(OBJ)$/memory.obj \
@@ -132,11 +128,8 @@ OBJFILES= \
$(OBJ)$/math.obj \
$(OBJ)$/alloc_global.obj\
$(OBJ)$/alloc_cache.obj \
- $(OBJ)$/alloc_arena.obj
-
-.IF "$(OS)"=="MACOSX" || "$(OS)"=="AIX"
-OBJFILES+=$(OBJ)$/alloc_fini.obj
-.ENDIF
+ $(OBJ)$/alloc_arena.obj \
+ $(OBJ)$/alloc_fini.obj
APP1TARGET=gen_makefile
diff --git a/sal/rtl/source/alloc_fini.cxx b/sal/rtl/source/alloc_fini.cxx
index f079676..dfd3599 100644
--- a/sal/rtl/source/alloc_fini.cxx
+++ b/sal/rtl/source/alloc_fini.cxx
@@ -43,7 +43,8 @@ namespace
rtl_memory_fini();
}
};
- class theMemorySingleton : public rtl::Static<rtlMemorySingleton, theMemorySingleton>{};
+ class theMemorySingleton
+ : public rtl::Static<rtlMemorySingleton, theMemorySingleton>{};
}
extern "C" void ensureMemorySingleton()
{
@@ -65,7 +66,8 @@ namespace
rtl_cache_fini();
}
};
- class theCacheSingleton : public rtl::Static<rtlCacheSingleton, theCacheSingleton>{};
+ class theCacheSingleton
+ : public rtl::Static<rtlCacheSingleton, theCacheSingleton>{};
}
extern "C" void ensureCacheSingleton()
{
@@ -87,11 +89,35 @@ namespace
rtl_arena_fini();
}
};
- class theArenaSingleton : public rtl::Static<rtlArenaSingleton, theArenaSingleton>{};
+ class theArenaSingleton
+ : public rtl::Static<rtlArenaSingleton, theArenaSingleton>{};
}
extern "C" void ensureArenaSingleton()
{
theArenaSingleton::get();
}
+extern "C" void rtl_locale_fini (void);
+extern "C" void rtl_locale_init (void);
+namespace
+{
+ struct rtlLocaleSingleton
+ {
+ rtlLocaleSingleton()
+ {
+ rtl_locale_init();
+ }
+ ~rtlLocaleSingleton()
+ {
+ rtl_locale_fini();
+ }
+ };
+ class theLocaleSingleton
+ : public rtl::Static<rtlLocaleSingleton, theLocaleSingleton>{};
+}
+extern "C" void ensureLocaleSingleton()
+{
+ theLocaleSingleton::get();
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/locale.c b/sal/rtl/source/locale.c
index 964be09..79f2fb8 100644
--- a/sal/rtl/source/locale.c
+++ b/sal/rtl/source/locale.c
@@ -58,8 +58,6 @@ static RTL_HASHTABLE* g_pLocaleTable = NULL;
static rtl_Locale* g_pDefaultLocale = NULL;
-static int rtl_locale_init (void);
-
/*************************************************************************
*/
void rtl_hashentry_destroy(RTL_HASHENTRY* entry)
@@ -228,29 +226,15 @@ sal_Bool rtl_hashtable_find(RTL_HASHTABLE * table, sal_Int32 key, sal_Int32 hash
/*************************************************************************
* rtl_locale_init
*/
-static void rtl_locale_once_init (void)
+void rtl_locale_init (void)
{
OSL_ASSERT(g_pLocaleTable == 0);
rtl_hashtable_init(&g_pLocaleTable, 1);
}
-static int rtl_locale_init (void)
-{
- static sal_once_type g_once = SAL_ONCE_INIT;
- SAL_ONCE(&g_once, rtl_locale_once_init);
- return (g_pLocaleTable != 0);
-}
-
/*************************************************************************
* rtl_locale_fini
*/
-#if defined(__GNUC__)
-static void rtl_locale_fini (void) __attribute__((destructor));
-#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma fini(rtl_locale_fini)
-static void rtl_locale_fini (void);
-#endif /* __GNUC__ || __SUNPRO_C */
-
void rtl_locale_fini (void)
{
if (g_pLocaleTable != 0)
@@ -260,6 +244,8 @@ void rtl_locale_fini (void)
}
}
+extern void ensureLocaleSingleton();
+
/*************************************************************************
* rtl_locale_register
*/
@@ -278,7 +264,8 @@ rtl_Locale * SAL_CALL rtl_locale_register( const sal_Unicode * language, const s
if ( !variant )
variant = &c;
- if (!rtl_locale_init())
+ ensureLocaleSingleton();
+ if (!g_pLocaleTable)
return NULL;
hashCode = rtl_ustr_hashCode(language) ^ rtl_ustr_hashCode(country) ^ rtl_ustr_hashCode(variant);

@ -1,32 +0,0 @@
From fc23cec13e5e17fb6d0f2d650b8889041af2da68 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Sat, 18 Jun 2011 16:54:43 +0200
Subject: [PATCH] rhbz#667082 do not crash importing section containing just
an empty paragraph
---
writerfilter/source/dmapper/DomainMapper_Impl.cxx | 8 +-------
1 files changed, 1 insertions(+), 7 deletions(-)
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 759f8e7..9944c8c 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -937,13 +937,7 @@ void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap )
uno::Reference< text::XTextRange > xParaEnd( xCur, uno::UNO_QUERY );
CheckParaRedline( xParaEnd );
- // Remove the last empty section paragraph if needed
- if ( m_bIsLastParaInSection && !m_bParaChanged )
- {
- RemoveLastParagraph( );
- m_bIsLastParaInSection = false;
- }
-
+ m_bIsLastParaInSection = false;
m_bParaChanged = false;
}
if( !bKeepLastParagraphProperties )
--
1.7.5.2

@ -1,42 +0,0 @@
From 6b8151cf40be1257db1c5165c5015490390cab6f Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Tue, 10 May 2011 09:55:55 +0200
Subject: [PATCH] rhbz#702635 set correct page number when exporting selected
pages
---
filter/source/pdf/pdfexport.cxx | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/filter/source/pdf/pdfexport.cxx b/filter/source/pdf/pdfexport.cxx
index bffd26c..5de0cbc 100644
--- a/filter/source/pdf/pdfexport.cxx
+++ b/filter/source/pdf/pdfexport.cxx
@@ -193,6 +193,7 @@ sal_Bool PDFExport::ExportSelection( vcl::PDFWriter& rPDFWriter, Reference< com:
if ( nPageCount )
{
sal_Int32 nSel = aMultiSelection.FirstSelected();
+ sal_Int32 nCurrentPage(0);
while ( nSel != sal_Int32(SFX_ENDOFSELECTION) )
{
Sequence< PropertyValue > aRenderer( rRenderable->getRenderer( nSel - 1, rSelection, rRenderOptions ) );
@@ -204,7 +205,7 @@ sal_Bool PDFExport::ExportSelection( vcl::PDFWriter& rPDFWriter, Reference< com:
aRenderer[ nProperty].Value >>= aPageSize;
}
- pPDFExtOutDevData->SetCurrentPageNumber( nSel - 1 );
+ pPDFExtOutDevData->SetCurrentPageNumber( nCurrentPage );
GDIMetaFile aMtf;
const MapMode aMapMode( MAP_100TH_MM );
@@ -242,6 +243,7 @@ sal_Bool PDFExport::ExportSelection( vcl::PDFWriter& rPDFWriter, Reference< com:
*pFirstPage <<= sal_False;
++mnProgressValue;
+ ++nCurrentPage;
}
}
else
--
1.7.5.1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,25 +0,0 @@
--- /tmp/configure.in 2011-04-12 13:22:35.691633964 +0100
+++ configure.in 2011-04-12 13:29:44.603368227 +0100
@@ -6822,11 +6822,11 @@
qt_libdirs="$QT4LIB /usr/lib $x_libraries"
kde_incdirs="/usr/include $x_includes"
- kde_libdirs="/usr/lib $x_libraries"
+ kde_libdirs="/usr/lib /usr/lib/kde4 /usr/lib/kde4/devel $x_libraries"
if test "$host_cpu" = "x86_64" ; then
qt_libdirs="$qt_libdirs /usr/lib64/qt4 /usr/lib64/qt /usr/lib64"
- kde_libdirs="$kde_libdirs /usr/lib64 /usr/lib64/kde4"
+ kde_libdirs="$kde_libdirs /usr/lib64 /usr/lib64/kde4 /usr/lib64/kde4/devel"
fi
if test -n "$QTDIR" ; then
@@ -6855,7 +6855,7 @@
fi
fi
if test -n "$KDE4DIR" ; then
- kde_incdirs="$KDE4DIR/include $kde_incdirs"
+ kde_incdirs="$KDE4DIR/include $KDE4DIR/include/kde4 $kde_incdirs"
if test "$host_cpu" != "x86_64" ; then
kde_libdirs="$KDE4DIR/lib $kde_libdirs"
else

@ -1,14 +0,0 @@
diff --git a/writerfilter/source/resourcemodel/makefile.mk b/writerfilter/source/resourcemodel/makefile.mk
index 73e049f..2aba722 100644
--- a/writerfilter/source/resourcemodel/makefile.mk
+++ b/writerfilter/source/resourcemodel/makefile.mk
@@ -40,9 +40,6 @@ CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION
# --- Files --------------------------------------------------------
# work around gcc taking hours and/or OOM'ing on this file
-NOOPTFILES= \
- $(SLO)$/qnametostr.obj
-
SLOFILES= \
$(SLO)$/Fraction.obj \
$(SLO)$/LoggedResources.obj \

@ -26,50 +26,41 @@
Summary: Free Software Productivity Suite Summary: Free Software Productivity Suite
Name: libreoffice Name: libreoffice
Epoch: 1 Epoch: 1
Version: 3.4.4.2 Version: 3.5.0.0
Release: 5%{?dist} Release: 1%{?dist}
License: LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and (CDDL or GPLv2) and Public Domain License: LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and (CDDL or GPLv2) and Public Domain
Group: Applications/Productivity Group: Applications/Productivity
URL: http://www.documentfoundation.org/develop URL: http://www.documentfoundation.org/develop
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source0: %{source_url}/libreoffice-artwork-%{version}.tar.bz2
Source1: %{source_url}/libreoffice-base-%{version}.tar.bz2 Source0: %{source_url}/libreoffice-core-%{version}.tar.bz2
Source2: %{source_url}/libreoffice-bootstrap-%{version}.tar.bz2 Source1: %{source_url}/libreoffice-binfilter-%{version}.tar.bz2
Source3: %{source_url}/libreoffice-calc-%{version}.tar.bz2 Source2: %{source_url}/libreoffice-help-%{version}.tar.bz2
Source4: %{source_url}/libreoffice-components-%{version}.tar.bz2 Source3: %{source_url}/libreoffice-translations-%{version}.tar.bz2
Source5: %{source_url}/libreoffice-extensions-%{version}.tar.bz2 Source4: http://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
Source6: %{source_url}/libreoffice-extras-%{version}.tar.bz2 Source5: redhat-langpacks.tar.gz
Source7: %{source_url}/libreoffice-filters-%{version}.tar.bz2 Source6: libreoffice-multiliblauncher.sh
Source8: %{source_url}/libreoffice-help-%{version}.tar.bz2 Source7: http://hg.services.openoffice.org/binaries/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
Source9: %{source_url}/libreoffice-impress-%{version}.tar.bz2 Source8: http://hg.services.openoffice.org/binaries/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
Source10: %{source_url}/libreoffice-libs-core-%{version}.tar.bz2 Source9: http://hg.services.openoffice.org/binaries/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
Source11: %{source_url}/libreoffice-libs-extern-%{version}.tar.bz2 Source10: http://hg.services.openoffice.org/binaries/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
Source12: %{source_url}/libreoffice-libs-extern-sys-%{version}.tar.bz2 Source11: http://hg.services.openoffice.org/binaries/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
Source13: %{source_url}/libreoffice-libs-gui-%{version}.tar.bz2 Source12: http://hg.services.openoffice.org/binaries/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
Source14: %{source_url}/libreoffice-postprocess-%{version}.tar.bz2 Source13: http://hg.services.openoffice.org/binaries/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
Source15: %{source_url}/libreoffice-sdk-%{version}.tar.bz2
Source16: %{source_url}/libreoffice-testing-%{version}.tar.bz2
Source17: %{source_url}/libreoffice-ure-%{version}.tar.bz2
Source18: %{source_url}/libreoffice-writer-%{version}.tar.bz2
Source19: %{source_url}/libreoffice-translations-%{version}.tar.bz2
Source20: http://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
Source21: redhat-langpacks.tar.gz
Source22: libreoffice-multiliblauncher.sh
Source23: http://hg.services.openoffice.org/binaries/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
Source24: http://hg.services.openoffice.org/binaries/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
Source25: http://hg.services.openoffice.org/binaries/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
Source26: http://hg.services.openoffice.org/binaries/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
Source27: http://hg.services.openoffice.org/binaries/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
Source28: http://hg.services.openoffice.org/binaries/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
Source29: http://hg.services.openoffice.org/binaries/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
#Unfortunately later versions of hsqldb changed the file format, so if we use a later version we loose #Unfortunately later versions of hsqldb changed the file format, so if we use a later version we loose
#backwards compatability. #backwards compatability.
Source30: http://hg.services.openoffice.org/binaries/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip Source14: http://hg.services.openoffice.org/binaries/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
Source31: http://dev-www.libreoffice.org/extern/b4cae0700aa1c2aef7eb7f345365e6f1-translate-toolkit-1.8.1.tar.bz2 Source15: http://dev-www.libreoffice.org/extern/b4cae0700aa1c2aef7eb7f345365e6f1-translate-toolkit-1.8.1.tar.bz2
%if 0%{?rhel} %if 0%{?rhel}
Source32: http://dev-www.libreoffice.org/src/0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2 Source16: http://dev-www.libreoffice.org/src/0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2
Source33: http://hg.services.openoffice.org/binaries/067201ea8b126597670b5eff72e1f66c-mythes-1.2.0.tar.gz Source17: http://hg.services.openoffice.org/binaries/067201ea8b126597670b5eff72e1f66c-mythes-1.2.0.tar.gz
%endif %endif
Source18: http://dev-www.libreoffice.org/src/a8b25a0bf696fd126a08319d88998492-libvisio-0.0.11.tar.bz2
Source19: http://dev-www.libreoffice.org/src/e1c178b18f130b40494561f02bc1a948-libexttextcat-3.2.0.tar.bz2
Source20: http://dev-www.libreoffice.org/src/7c2549f6b0a8bb604e6c4c729ffdcfe6-libcmis-0.1.0.tar.gz
# TODO: IIRC mysql-connector-cpp is in Fedora. Is it usable?
Source21: http://dev-www.libreoffice.org/src/0981bda6548a8c8233ffce2b6e4b2a23-mysql-connector-c++-1.1.0.tar.gz
BuildRequires: zip, findutils, autoconf, flex, bison, icu, gperf, gcc-c++ BuildRequires: zip, findutils, autoconf, flex, bison, icu, gperf, gcc-c++
BuildRequires: binutils, java-devel <= 1.6.0, boost-devel, zlib-devel BuildRequires: binutils, java-devel <= 1.6.0, boost-devel, zlib-devel
BuildRequires: python-devel, expat-devel, libxml2-devel, libxslt-devel, bc BuildRequires: python-devel, expat-devel, libxml2-devel, libxslt-devel, bc
@ -107,50 +98,21 @@ Patch3: openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch
Patch4: openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch Patch4: openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch
Patch5: openoffice.org-3.1.0.ooo101274.opening-a-directory.patch Patch5: openoffice.org-3.1.0.ooo101274.opening-a-directory.patch
Patch6: openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch Patch6: openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch
Patch7: openoffice.org-3.3.0.ooo108637.sfx2.uisavedir.patch Patch7: libreoffice-installfix.patch
Patch8: openoffice.org-3.3.0.ooo113273.desktop.resolvelinks.patch
Patch9: libreoffice-installfix.patch
Patch10: 0001-helgrind-Related-rhbz-655686-get-order-of-shutdown-c.patch
Patch11: kde4configure.patch
Patch12: 0001-Resolves-rhbz-695509-crash-in-RefreshDocumentLB.patch
Patch13: 0001-bubble-down-configure-test-findings-on-visibility.patch
Patch14: vbahelper.visibility.patch
Patch15: 0001-rhbz-702635-set-correct-page-number-when-exporting-s.patch
Patch16: 0001-Related-rhbz-652604-better-survive-exceptions-thrown.patch
Patch17: 0001-Resolves-rhbz-713154-pdf-export-dialog-too-tall-to-f.patch
Patch18: 0001-Related-rhbz-702833-addEventListener-without-removeE.patch
Patch19: 0001-Related-rhbz-711087-band-aid.patch
Patch20: 0001-rhbz-667082-do-not-crash-importing-section-containin.patch
Patch21: 0001-Related-rhbz-718976-crash-in-SwTxtSizeInfo-GetMultiC.patch
Patch22: 0001-Resolves-rhbz-715549-use-fontconfig-s-detected-forma.patch
Patch23: 0001-Resolves-rhbz-693265-fix-crash-from-unhandled-except.patch
Patch24: 0001-Related-rhbz-730225-avoid-segv-in-ld-this-was-set-to.patch
Patch25: gdb-pretty-printers.patch
Patch26: 0001-Related-fdo-37195-migrationoo3-not-registered.patch
Patch27: 0001-Resolves-rhbz-738255-avoid-crash-on-NULL-pointer.patch
Patch28: 0001-avoid-using-com.sun.org-apis.patch
Patch29: 0001-add-Oracle-Java-1.7.0-recognition.patch
Patch30: 0001-Resolves-fdo-32665-handle-that-FreeSerif-lacks-some-.patch
Patch31: Backport-reading-AES-encrypted-ODF-1.2-documents.patch
%if 0%{?rhel} %if 0%{?rhel}
Patch32: libreoffice-libwpd08-1.patch Patch8: libreoffice-libwpd08-1.patch
Patch33: libreoffice-libwpd08-2.patch Patch9: libreoffice-libwpd08-2.patch
Patch34: 0001-wpsimport-writerperfect.diff-WPS-Import-filter-core-.patch Patch10: 0001-wpsimport-writerperfect.diff-WPS-Import-filter-core-.patch
Patch35: libreoffice-gcj.patch Patch11: libreoffice-gcj.patch
Patch36: libreoffice-rhel6poppler.patch Patch12: libreoffice-rhel6poppler.patch
%endif %endif
Patch37: 0001-Related-i58612-don-t-crash-anyway.patch Patch13: solenv.fix.mk.inheritance.patch
Patch38: 0001-fix-horizontal-scrollbars-with-KDE-oxygen-style-bnc-.patch
Patch39: 0001-Related-rhbz-753201-fedora-ant-java-1.5.0-gcj-won-t-.patch
Patch40: solenv.fix.mk.inheritance.patch
Patch41: libreoffice-ppc64.patch
Patch42: 0001-Resolves-rhbz-751290-KDE-black-on-dark-tooltips.patch
Patch43: 0001-gtk3-fix-cairo-canvas-crash-for-non-X-or-svp-backend.patch
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
%define instdir %{_libdir} %define instdir %{_libdir}
%define baseinstdir %{instdir}/libreoffice %define baseinstdir %{instdir}/libreoffice
%define ureinstdir %{baseinstdir}/ure %define ureinstdir %{baseinstdir}/ure
# TODO: bin basisinstdir
%define basisinstdir %{baseinstdir}/basis3.4 %define basisinstdir %{baseinstdir}/basis3.4
%define sdkinstdir %{baseinstdir}/basis3.4/sdk %define sdkinstdir %{baseinstdir}/basis3.4/sdk
%define fontname opensymbol %define fontname opensymbol
@ -779,7 +741,7 @@ Rules for auto-correcting common %{langname} typing errors. \
%endif %endif
%prep %prep
%setup -q -c -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -a 7 -a 8 -a 9 -a 10 -a 11 -a 12 -a 13 -a 14 -a 15 -a 16 -a 17 -a 18 -a 19 %setup -q -c -a 1 -a 2 -a 3
for a in */*; do mv `pwd`/$a .; done for a in */*; do mv `pwd`/$a .; done
#Customize Palette to remove Sun colours and add Red Hat colours #Customize Palette to remove Sun colours and add Red Hat colours
(head -n -1 extras/source/palettes/standard.soc && \ (head -n -1 extras/source/palettes/standard.soc && \
@ -791,55 +753,26 @@ for a in */*; do mv `pwd`/$a .; done
tail -n 1 extras/source/palettes/standard.soc) > redhat.soc tail -n 1 extras/source/palettes/standard.soc) > redhat.soc
mv -f redhat.soc extras/source/palettes/standard.soc mv -f redhat.soc extras/source/palettes/standard.soc
%patch1 -p1 %patch1 -p1
# TODO: fix patches
%patch2 -p1 -b .ooo86080.unopkg.bodge.patch %patch2 -p1 -b .ooo86080.unopkg.bodge.patch
%patch3 -p1 -b .ooo88341.sc.verticalboxes.patch %patch3 -p1 -b .ooo88341.sc.verticalboxes.patch
%patch4 -p1 -b .oooXXXXX.solenv.allowmissing.patch %patch4 -p1 -b .oooXXXXX.solenv.allowmissing.patch
%patch5 -p0 -b .ooo101274.opening-a-directory.patch #%patch5 -p0 -b .ooo101274.opening-a-directory.patch
%patch6 -p0 -b .ooo105784.vcl.sniffscriptforsubs.patch #%patch6 -p0 -b .ooo105784.vcl.sniffscriptforsubs.patch
%patch7 -p1 -b .ooo108637.sfx2.uisavedir.patch %patch7 -p1 -b .libreoffice-installfix.patch
%patch8 -p0 -b .ooo113273.desktop.resolvelinks.patch
%patch9 -p1 -b .libreoffice-installfix.patch
%patch10 -p1 -b .rhbz655686-get-order-of-shutdown-c.patch
%patch11 -p0 -b .kde4configure.patch
%patch12 -p1 -b .rhbz695509-crash-in-RefreshDocumentLB.patch
%patch13 -p1 -b .bubble-down-configure-test-findings-on-visibility.patch
%patch14 -p0 -b .vbahelper.visibility.patch
%patch15 -p1 -b .rhbz702635-set-correct-page-number-when-exporting-s.patch
%patch16 -p1 -b .rhbz652604-better-survive-exceptions-thrown.patch
%patch17 -p1 -b .rhbz713154-pdf-export-dialog-too-tall-to-f.patch
%patch18 -p1 -b .rhbz702833-addEventListener-without-removeE.patch
%patch19 -p1 -b .rhbz711087-band-aid.patch
%patch20 -p1 -b .rhbz667082-do-not-crash-importing-section-containin.patch
%patch21 -p1 -b .rhbz718976-crash-in-SwTxtSizeInfo-GetMultiC.patch
%patch22 -p1 -b .rhbz715549-use-fontconfig-s-detected-forma.patch
%patch23 -p1 -b .rhbz693265-fix-crash-from-unhandled-except.patch
%patch24 -p1 -b .rhbz730225-avoid-segv-in-ld-this-was-set-to.patch
%patch25 -p1
%patch26 -p1 -b .fdo37195-migrationoo3-not-registered.patch
%patch27 -p1 -b .rhbz738255-avoid-crash-on-NULL-pointer.patch
%patch28 -p1 -b .avoid-using-com.sun.org-apis.patch
%patch29 -p1 -b .add-Oracle-Java-1.7.0-recognition.patch
%patch30 -p1 -b .fdo32665-handle-that-FreeSerif-lacks-some-.patch
%patch31 -p1 -b .Backport-reading-AES-encrypted-ODF-1.2-documents.patch
%if 0%{?rhel} %if 0%{?rhel}
%patch32 -p1 -b .libwpd08-1.patch %patch8 -p1 -b .libwpd08-1.patch
%patch33 -p1 -R -b .libreoffice-libwpd08-2.patch %patch9 -p1 -R -b .libreoffice-libwpd08-2.patch
%patch34 -p1 -R -b .wpsimport %patch10 -p1 -R -b .wpsimport
%patch35 -p1 -b .gcj.patch %patch11 -p1 -b .gcj.patch
%patch36 -p0 -b .rhel6poppler.patch %patch12 -p0 -b .rhel6poppler.patch
%endif %endif
%patch37 -p1 -b .i58612-don-t-crash-anyway.patch #%patch13 -p1 -b .solenv.fix.mk.inheritance.patch
%patch38 -p1 -b .fix-horizontal-scrollbars-with-KDE-oxygen-style-bnc-.patch
%patch39 -p1 -b .rhbz753201-fedora-ant-java-1.5.0-gcj-won-t-.patch
%patch40 -p1 -b .solenv.fix.mk.inheritance.patch
%patch41 -p1 -b .libreoffice-ppc64.patch
%patch42 -p1 -b .rhbz751290-KDE-black-on-dark-tooltips.patch
%patch43 -p1 -b .fix-cairo-canvas-crash-for-non-X-or-svp-backend.patch
# TODO: check this
# these are horribly incomplete--empty translations and copied english # these are horribly incomplete--empty translations and copied english
# strings with spattering of translated strings # strings with spattering of translated strings
rm -rf translations/source/{gu,he,hr}/helpcontent2 rm -rf translations/source/{gu,he,hr}/helpcontent2
chmod +x solenv/bin/install-gdb-printers
%build %build
echo build start time is `date`, diskspace: `df -h . | tail -n 1` echo build start time is `date`, diskspace: `df -h . | tail -n 1`
@ -877,6 +810,8 @@ export CXXFLAGS=$ARCH_FLAGS
%endif %endif
autoconf autoconf
# TODO: review the options
# TODO: --with-poor-help-localizations is gone, IIRC
%configure \ %configure \
%vendoroption --with-num-cpus=$NBUILDS --with-max-jobs=$NDMAKES \ %vendoroption --with-num-cpus=$NBUILDS --with-max-jobs=$NDMAKES \
--with-build-version="Ver: %{version}-%{release}" --with-unix-wrapper=%{name} \ --with-build-version="Ver: %{version}-%{release}" --with-unix-wrapper=%{name} \
@ -887,7 +822,7 @@ autoconf
--enable-ext-presenter-console --enable-ext-pdfimport \ --enable-ext-presenter-console --enable-ext-pdfimport \
--enable-ext-wiki-publisher --enable-ext-report-builder \ --enable-ext-wiki-publisher --enable-ext-report-builder \
--enable-ext-scripting-beanshell --enable-ext-scripting-javascript \ --enable-ext-scripting-beanshell --enable-ext-scripting-javascript \
--enable-ext-scripting-python --with-system-libtextcat \ --enable-ext-scripting-python --without-system-libexttextcat \
--with-system-jfreereport --with-vba-package-format="builtin" \ --with-system-jfreereport --with-vba-package-format="builtin" \
--with-system-libs --with-system-headers --with-system-mozilla \ --with-system-libs --with-system-headers --with-system-mozilla \
--with-system-mythes --with-system-dicts --with-system-apache-commons \ --with-system-mythes --with-system-dicts --with-system-apache-commons \
@ -896,23 +831,29 @@ autoconf
%{with_lang} --with-poor-help-localizations="$POORHELPS" \ %{with_lang} --with-poor-help-localizations="$POORHELPS" \
--with-external-tar=`pwd`/ext_sources --with-java-target-version=1.5 \ --with-external-tar=`pwd`/ext_sources --with-java-target-version=1.5 \
--with-external-libtextcat-data --without-system-translate-toolkit \ --with-external-libtextcat-data --without-system-translate-toolkit \
--without-system-libcmis --without-system-libvisio \
--without-system-mysql-cppconn \
%{distrooptions} %{distrooptions}
mkdir -p ext_sources mkdir -p ext_sources
cp %{SOURCE20} ext_sources cp %{SOURCE4} ext_sources
cp %{SOURCE23} ext_sources cp %{SOURCE7} ext_sources
cp %{SOURCE24} ext_sources cp %{SOURCE8} ext_sources
cp %{SOURCE25} ext_sources cp %{SOURCE9} ext_sources
cp %{SOURCE26} ext_sources cp %{SOURCE10} ext_sources
cp %{SOURCE27} ext_sources cp %{SOURCE11} ext_sources
cp %{SOURCE28} ext_sources cp %{SOURCE12} ext_sources
cp %{SOURCE29} ext_sources cp %{SOURCE13} ext_sources
cp %{SOURCE30} ext_sources cp %{SOURCE14} ext_sources
cp %{SOURCE31} ext_sources cp %{SOURCE15} ext_sources
%if 0%{?rhel} %if 0%{?rhel}
cp %{SOURCE32} ext_sources cp %{SOURCE16} ext_sources
cp %{SOURCE33} ext_sources cp %{SOURCE17} ext_sources
%endif %endif
cp %{SOURCE18} ext_sources
cp %{SOURCE19} ext_sources
cp %{SOURCE20} ext_sources
cp %{SOURCE21} ext_sources
touch src.downloaded touch src.downloaded
. ./*[Ee]nv.[Ss]et.sh . ./*[Ee]nv.[Ss]et.sh
@ -993,6 +934,7 @@ cd ../../
%install_bundled_extension -n presentation-minimizer -f minimizer/presentation-minimizer.oxt %install_bundled_extension -n presentation-minimizer -f minimizer/presentation-minimizer.oxt
%install_bundled_extension -n presenter-screen -f presenter/presenter-screen.oxt %install_bundled_extension -n presenter-screen -f presenter/presenter-screen.oxt
%install_bundled_extension -n report-builder %install_bundled_extension -n report-builder
# TODO: these three are not extensions anymore
%install_bundled_extension -n script-provider-for-beanshell %install_bundled_extension -n script-provider-for-beanshell
%install_bundled_extension -n script-provider-for-javascript %install_bundled_extension -n script-provider-for-javascript
%install_bundled_extension -n script-provider-for-python %install_bundled_extension -n script-provider-for-python
@ -1125,7 +1067,7 @@ xh nohelp western zh-CN help cjk \
zh-TW help cjk zu nohelp western \ zh-TW help cjk zu nohelp western \
) )
tar xzf %{SOURCE21} tar xzf %{SOURCE5}
i=0 i=0
while [ $i -lt ${#langpackdetails[@]} ]; do while [ $i -lt ${#langpackdetails[@]} ]; do
@ -1241,12 +1183,12 @@ echo \#\!/bin/sh > $RPM_BUILD_ROOT/%{_bindir}/oobase
echo exec libreoffice --base \"\$@\" >> $RPM_BUILD_ROOT/%{_bindir}/oobase echo exec libreoffice --base \"\$@\" >> $RPM_BUILD_ROOT/%{_bindir}/oobase
chmod a+x $RPM_BUILD_ROOT/%{_bindir}/oobase chmod a+x $RPM_BUILD_ROOT/%{_bindir}/oobase
cp -f %{SOURCE22} $RPM_BUILD_ROOT/%{_bindir}/unopkg cp -f %{SOURCE6} $RPM_BUILD_ROOT/%{_bindir}/unopkg
sed -i -e "s/LAUNCHER/unopkg/g" $RPM_BUILD_ROOT/%{_bindir}/unopkg sed -i -e "s/LAUNCHER/unopkg/g" $RPM_BUILD_ROOT/%{_bindir}/unopkg
sed -i -e "s/BRAND/libreoffice/g" $RPM_BUILD_ROOT/%{_bindir}/unopkg sed -i -e "s/BRAND/libreoffice/g" $RPM_BUILD_ROOT/%{_bindir}/unopkg
chmod a+x $RPM_BUILD_ROOT/%{_bindir}/unopkg chmod a+x $RPM_BUILD_ROOT/%{_bindir}/unopkg
cp -f %{SOURCE22} $RPM_BUILD_ROOT/%{_bindir}/libreoffice cp -f %{SOURCE6} $RPM_BUILD_ROOT/%{_bindir}/libreoffice
sed -i -e "s/LAUNCHER/soffice/g" $RPM_BUILD_ROOT/%{_bindir}/libreoffice sed -i -e "s/LAUNCHER/soffice/g" $RPM_BUILD_ROOT/%{_bindir}/libreoffice
sed -i -e "s/BRAND/libreoffice/g" $RPM_BUILD_ROOT/%{_bindir}/libreoffice sed -i -e "s/BRAND/libreoffice/g" $RPM_BUILD_ROOT/%{_bindir}/libreoffice
chmod a+x $RPM_BUILD_ROOT/%{_bindir}/libreoffice chmod a+x $RPM_BUILD_ROOT/%{_bindir}/libreoffice
@ -1316,7 +1258,9 @@ cp -p psprint_config/configuration/ppds/SGENPRT.PS $RPM_BUILD_ROOT/%{basisinstdi
sed -i -e "s#URE_MORE_JAVA_CLASSPATH_URLS.*#& file:///usr/share/java/lucene.jar file:///usr/share/java/lucene-contrib/lucene-analyzers.jar file:///usr/share/java/postgresql-jdbc.jar#" $RPM_BUILD_ROOT/%{basisinstdir}/program/fundamentalbasisrc sed -i -e "s#URE_MORE_JAVA_CLASSPATH_URLS.*#& file:///usr/share/java/lucene.jar file:///usr/share/java/lucene-contrib/lucene-analyzers.jar file:///usr/share/java/postgresql-jdbc.jar#" $RPM_BUILD_ROOT/%{basisinstdir}/program/fundamentalbasisrc
export DESTDIR=$RPM_BUILD_ROOT export DESTDIR=$RPM_BUILD_ROOT
# TODO: the command's syntax has changed
install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c -p %{_datadir}/libreoffice/gdb install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c -p %{_datadir}/libreoffice/gdb
# TODO: remove this
# fix arch-dependent library suffix # fix arch-dependent library suffix
cd solenv/gdb cd solenv/gdb
cat <<EOF > dllpostfix.mk cat <<EOF > dllpostfix.mk
@ -1334,6 +1278,7 @@ done
source ./Linux*Env.Set.sh source ./Linux*Env.Set.sh
cd test cd test
build && deliver -link build && deliver -link
# TODO: smoketestdoc is gone
cd ../smoketestdoc cd ../smoketestdoc
build && deliver -link build && deliver -link
cd ../smoketestoo_native cd ../smoketestoo_native
@ -2137,6 +2082,39 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
%endif %endif
%changelog %changelog
* Wed Nov 30 2011 David Tardon <dtardon@redhat.com> - 3.5.0.0-1
- first attempt at 3.5
- drop integrated 0001-Related-fdo-37195-migrationoo3-not-registered.patch
- drop integrated 0001-Related-i58612-don-t-crash-anyway.patch
- drop integrated 0001-Related-rhbz-652604-better-survive-exceptions-thrown.patch
- drop integrated 0001-Related-rhbz-702833-addEventListener-without-removeE.patch
- drop integrated 0001-Related-rhbz-711087-band-aid.patch
- drop integrated 0001-Related-rhbz-718976-crash-in-SwTxtSizeInfo-GetMultiC.patch
- drop integrated 0001-Related-rhbz-730225-avoid-segv-in-ld-this-was-set-to.patch
- drop integrated 0001-Related-rhbz-753201-fedora-ant-java-1.5.0-gcj-won-t-.patch
- drop integrated 0001-Resolves-fdo-32665-handle-that-FreeSerif-lacks-some-.patch
- drop integrated 0001-Resolves-rhbz-693265-fix-crash-from-unhandled-except.patch
- drop integrated 0001-Resolves-rhbz-695509-crash-in-RefreshDocumentLB.patch
- drop integrated 0001-Resolves-rhbz-713154-pdf-export-dialog-too-tall-to-f.patch
- drop integrated 0001-Resolves-rhbz-715549-use-fontconfig-s-detected-forma.patch
- drop integrated 0001-Resolves-rhbz-738255-avoid-crash-on-NULL-pointer.patch
- drop integrated 0001-Resolves-rhbz-751290-KDE-black-on-dark-tooltips.patch
- drop integrated 0001-add-Oracle-Java-1.7.0-recognition.patch
- drop integrated 0001-avoid-using-com.sun.org-apis.patch
- drop integrated 0001-bubble-down-configure-test-findings-on-visibility.patch
- drop integrated 0001-fix-horizontal-scrollbars-with-KDE-oxygen-style-bnc-.patch
- drop integrated 0001-gtk3-fix-cairo-canvas-crash-for-non-X-or-svp-backend.patch
- drop integrated 0001-helgrind-Related-rhbz-655686-get-order-of-shutdown-c.patch
- drop integrated 0001-rhbz-667082-do-not-crash-importing-section-containin.patch
- drop integrated 0001-rhbz-702635-set-correct-page-number-when-exporting-s.patch
- drop integrated Backport-reading-AES-encrypted-ODF-1.2-documents.patch
- drop integrated gdb-pretty-printers.patch
- drop integrated kde4configure.patch
- drop integrated libreoffice-ppc64.patch
- drop integrated openoffice.org-3.3.0.ooo108637.sfx2.uisavedir.patch
- drop integrated openoffice.org-3.3.0.ooo113273.desktop.resolvelinks.patch
- drop integrated vbahelper.visibility.patch
* Tue Nov 29 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.4.2-5 * Tue Nov 29 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.4.2-5
- Resolves: rhbz#757653 fix headless crash with cairo canvas - Resolves: rhbz#757653 fix headless crash with cairo canvas

@ -38,8 +38,8 @@
# SAL_NO_XINITTHREADS=true; export SAL_NO_XINITTHREADS # SAL_NO_XINITTHREADS=true; export SAL_NO_XINITTHREADS
# execute binary # execute binary
-exec "$sd_prog/unopkg.bin" "$@" "$JVMFWKPARAMS" \ -exec "$sd_prog/unopkg.bin" "$@" $JVMFWKPARAMS \
+"$sd_prog/unopkg.bin" "$@" "$JVMFWKPARAMS" \ +"$sd_prog/unopkg.bin" "$@" $JVMFWKPARAMS \
"-env:INIFILENAME=vnd.sun.star.pathname:$sd_prog/redirectrc" "-env:INIFILENAME=vnd.sun.star.pathname:$sd_prog/redirectrc"
- -
+if [ -n "$INSTDIR" ]; then +if [ -n "$INSTDIR" ]; then

@ -1,6 +1,6 @@
diff -ru vcl.orig/unx/source/fontmanager/fontconfig.cxx vcl/unx/source/fontmanager/fontconfig.cxx diff -ru vcl.orig/unx/source/fontmanager/fontconfig.cxx vcl/unx/source/fontmanager/fontconfig.cxx
--- vcl.orig/unx/source/fontmanager/fontconfig.cxx 2009-10-08 13:25:00.000000000 +0100 --- vcl.orig/unx/source/fontmanager/fontconfig.cxx 2009-10-08 13:25:00.000000000 +0100
+++ vcl/unx/source/fontmanager/fontconfig.cxx 2009-10-08 13:51:51.000000000 +0100 +++ vcl/generic/fontmanager/fontconfig.cxx 2009-10-08 13:51:51.000000000 +0100
@@ -92,6 +92,9 @@ @@ -92,6 +92,9 @@
#include "sal/alloca.h" #include "sal/alloca.h"
@ -183,14 +183,3 @@ diff -ru vcl.orig/unx/source/fontmanager/fontconfig.cxx vcl/unx/source/fontmanag
addtopattern(rWrapper, pPattern, rItalic, rWeight, rWidth, rPitch); addtopattern(rWrapper, pPattern, rItalic, rWeight, rWidth, rPitch);
// query fontconfig for a substitute // query fontconfig for a substitute
diff -ru vcl.orig/util/makefile.mk vcl/util/makefile.mk
--- vcl.orig/util/makefile.mk 2009-10-08 13:25:00.000000000 +0100
+++ vcl/util/makefile.mk 2009-10-08 13:25:09.000000000 +0100
@@ -298,6 +298,7 @@
# libs for generic plugin
SHL2STDLIBS=\
$(VCLLIB)\
+ $(I18NUTILLIB) \
$(I18NPAPERLIB) \
$(I18NISOLANGLIB) \
$(TOOLSLIB) \

@ -1,41 +0,0 @@
diff -r 3c24aa9a7810 sfx2/source/doc/guisaveas.cxx
--- a/sfx2/source/doc/guisaveas.cxx Sat Jan 23 16:31:03 2010 +0000
+++ b/sfx2/source/doc/guisaveas.cxx Sun Jan 24 17:16:37 2010 +0000
@@ -231,7 +231,7 @@
sal_Bool bSetStandardName,
::rtl::OUString& aSuggestedName,
sal_Bool bPreselectPassword,
- const ::rtl::OUString& aSuggestedDir,
+ ::rtl::OUString& aSuggestedDir,
sal_Int16 nDialog,
const ::rtl::OUString& rStandardDir,
const ::com::sun::star::uno::Sequence< ::rtl::OUString >& rBlackList
@@ -731,7 +731,7 @@
sal_Bool bSetStandardName,
::rtl::OUString& aSuggestedName,
sal_Bool bPreselectPassword,
- const ::rtl::OUString& aSuggestedDir,
+ ::rtl::OUString& aSuggestedDir,
sal_Int16 nDialog,
const ::rtl::OUString& rStandardDir,
const ::com::sun::star::uno::Sequence< ::rtl::OUString >& rBlackList)
@@ -927,6 +927,7 @@
INetURLObject aURL( pFileDlg->GetPath() );
// the path should be provided outside since it might be used for further calls to the dialog
aSuggestedName = aURL.GetName( INetURLObject::DECODE_WITH_CHARSET );
+ aSuggestedDir = pFileDlg->GetDisplayDirectory();
// old filter options should be cleared in case different filter is used
@@ -1412,10 +1413,8 @@
sal_Bool bExit = sal_False;
while ( !bExit )
{
+ // in case the dialog is opened a second time the folder should be the same as previously navigated to by the user, not what was handed over by initial parameters
bUseFilterOptions = aModelData.OutputFileDialog( nStoreMode, aFilterProps, bSetStandardName, aSuggestedName, bPreselectPassword, aSuggestedDir, nDialog, sStandardDir, aBlackList );
-
- // in case the dialog is opend a second time the folder should be the same as before, not what was handed over by parameters
- aSuggestedDir = ::rtl::OUString();
if ( nStoreMode == SAVEAS_REQUESTED )
{
// in case of saving check filter for possible alien warning

@ -1,55 +0,0 @@
diff -ru desktop.orig/source/deployment/misc/dp_misc.cxx desktop/source/deployment/misc/dp_misc.cxx
--- desktop.orig/source/deployment/misc/dp_misc.cxx 2010-07-20 08:31:24.000000000 +0100
+++ desktop/source/deployment/misc/dp_misc.cxx 2010-07-20 09:12:23.000000000 +0100
@@ -143,6 +143,23 @@
return pipe.is();
}
+//get modification time
+static bool getModifyTimeTargetFile(const OUString &rFileURL, TimeValue &rTime)
+{
+ ::osl::DirectoryItem item;
+ if (::osl::DirectoryItem::get(rFileURL, item) != ::osl::File::E_None)
+ return false;
+
+ ::osl::FileStatus stat(FileStatusMask_ModifyTime|FileStatusMask_Type|FileStatusMask_LinkTargetURL);
+ if (item.getFileStatus(stat) != ::osl::File::E_None)
+ return false;
+
+ if( stat.getFileType() == ::osl::FileStatus::Link )
+ return getModifyTimeTargetFile(stat.getLinkTargetURL(), rTime);
+
+ rTime = stat.getModifyTime();
+ return true;
+}
//Returns true if the Folder was more recently modified then
//the lastsynchronized file. That is the repository needs to
@@ -181,15 +198,12 @@
//compare the modification time of the extension folder and the last
//modified file
- ::osl::FileStatus statFolder(FileStatusMask_ModifyTime);
- ::osl::FileStatus statFile(FileStatusMask_ModifyTime);
- if (itemExtFolder.getFileStatus(statFolder) == ::osl::File::E_None)
+ TimeValue timeFolder;
+ if (getModifyTimeTargetFile(folderURL, timeFolder))
{
- if (itemFile.getFileStatus(statFile) == ::osl::File::E_None)
+ TimeValue timeFile;
+ if (getModifyTimeTargetFile(fileURL, timeFile))
{
- TimeValue timeFolder = statFolder.getModifyTime();
- TimeValue timeFile = statFile.getModifyTime();
-
if (timeFile.Seconds < timeFolder.Seconds)
bNeedsSync = true;
}
@@ -204,6 +218,7 @@
OSL_ASSERT(0);
bNeedsSync = true;
}
+
return bNeedsSync;
}

@ -1,34 +1,20 @@
185d60944ea767075d27247c3162b3bc 185d60944ea767075d27247c3162b3bc-unowinreg.dll bf6ce92d8d69f1dec4836a7249e10436 libreoffice-core-3.5.0.0.tar.bz2
0ff7d225d087793c8c2c680d77aac3e7 0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2 346304e8699ca8d8d642072bff79909d libreoffice-binfilter-3.5.0.0.tar.bz2
067201ea8b126597670b5eff72e1f66c 067201ea8b126597670b5eff72e1f66c-mythes-1.2.0.tar.gz
fdb27bfe2dbe2e7b57ae194d9bf36bab fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
1f24ab1d39f4a51faf22244c94a6203f 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
798b2ffdc8bcfe7bca2cf92b62caf685 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip 798b2ffdc8bcfe7bca2cf92b62caf685 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
35c94d2df8893241173de1d16b6034c0 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip 35c94d2df8893241173de1d16b6034c0 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
ada24d37d8d638b3d8a9985e80bc2978 ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip ada24d37d8d638b3d8a9985e80bc2978 ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
18f577b374d60b3c760a3a3350407632 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz 18f577b374d60b3c760a3a3350407632 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
17410483b5b5f267aa18b7e00b65e6e0 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip 17410483b5b5f267aa18b7e00b65e6e0 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
b4cae0700aa1c2aef7eb7f345365e6f1 b4cae0700aa1c2aef7eb7f345365e6f1-translate-toolkit-1.8.1.tar.bz2 b4cae0700aa1c2aef7eb7f345365e6f1 b4cae0700aa1c2aef7eb7f345365e6f1-translate-toolkit-1.8.1.tar.bz2
03c019658ec49050c8103ba0f10b5067 redhat-langpacks.tar.gz a8b25a0bf696fd126a08319d88998492 a8b25a0bf696fd126a08319d88998492-libvisio-0.0.11.tar.bz2
f447fd4ffe54aab9561c6caa262754b3 libreoffice-calc-3.4.4.2.tar.bz2 e1c178b18f130b40494561f02bc1a948 e1c178b18f130b40494561f02bc1a948-libexttextcat-3.2.0.tar.bz2
a0b19441245d7627c299d7014d110b32 libreoffice-help-3.5.0.0.tar.bz2
7c2549f6b0a8bb604e6c4c729ffdcfe6 7c2549f6b0a8bb604e6c4c729ffdcfe6-libcmis-0.1.0.tar.gz
0981bda6548a8c8233ffce2b6e4b2a23 0981bda6548a8c8233ffce2b6e4b2a23-mysql-connector-c++-1.1.0.tar.gz
b9dee0572120c87906ed6e2fb4696b69 libreoffice-translations-3.5.0.0.tar.bz2
185d60944ea767075d27247c3162b3bc 185d60944ea767075d27247c3162b3bc-unowinreg.dll
1531d95e2d359f7fc2295f1b5d2a23cb redhat-langpacks.tar.gz
74939c9ea525374776f09bf972ede99f libreoffice-multiliblauncher.sh 74939c9ea525374776f09bf972ede99f libreoffice-multiliblauncher.sh
97fe698737a35c8803712d4e08007620 libreoffice-components-3.4.4.2.tar.bz2 fdb27bfe2dbe2e7b57ae194d9bf36bab fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
acff44d97a5106d9b53c747dabeb0800 libreoffice-extensions-3.4.4.2.tar.bz2 a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
620d43a0b9f36388f423e030513864ef libreoffice-extras-3.4.4.2.tar.bz2 1f24ab1d39f4a51faf22244c94a6203f 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
4c5b1ed870363eca2602f0cb42a8415a libreoffice-filters-3.4.4.2.tar.bz2
702c6ca31525d7d2c2ded86c77b0bd2e libreoffice-help-3.4.4.2.tar.bz2
ac9b3acf78f43c1395d0e2dedc860f30 libreoffice-impress-3.4.4.2.tar.bz2
be8b13f83045f0a53b69fe76d6d72e9c libreoffice-artwork-3.4.4.2.tar.bz2
db423cbb1cee416b718138044a5de930 libreoffice-base-3.4.4.2.tar.bz2
d8d2c41cb86bc8ba2a07e001a5317abb libreoffice-libs-core-3.4.4.2.tar.bz2
4d4af2fc06dbe33ec2307df812f7abe1 libreoffice-libs-extern-3.4.4.2.tar.bz2
1398a566eb76598bf3005e187fc2386c libreoffice-libs-extern-sys-3.4.4.2.tar.bz2
dd962d2d57f88b9e07e665adad3cabbc libreoffice-libs-gui-3.4.4.2.tar.bz2
fff0fc9cd16ef1eb2b2ed5d0a6e77f95 libreoffice-postprocess-3.4.4.2.tar.bz2
e54d41d39e63d04ac4a88ce79e37af98 libreoffice-sdk-3.4.4.2.tar.bz2
dbc71403040f447683bf55d1f0be3cad libreoffice-testing-3.4.4.2.tar.bz2
69ce5b72f44b008d0e78767c5b1dbf39 libreoffice-ure-3.4.4.2.tar.bz2
34a2e8ae6b81a042966740263c53e135 libreoffice-writer-3.4.4.2.tar.bz2
882e7035b77c63b8aa6fd0039f3075c0 libreoffice-translations-3.4.4.2.tar.bz2
31944d2139d6d81ef1131bd513530621 libreoffice-bootstrap-3.4.4.2.tar.bz2

@ -1,33 +0,0 @@
--- vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:27:51.507604173 +0000
+++ vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:28:26.230045727 +0000
@@ -238,7 +238,7 @@
// including a HelperInterface implementation
template< typename Ifc1 >
-class ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 >
+class VBAHELPER_DLLPUBLIC ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 >
{
typedef InheritedHelperInterfaceImpl< Ifc1 > BaseColBase;
protected:
--- sc/Library_vbaobj.mk
+++ sc/Library_vbaobj.mk
@@ -118,7 +118,6 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\
sc/source/ui/vba/vbaquerytable \
sc/source/ui/vba/vbarange \
sc/source/ui/vba/vbasheetobject \
- sc/source/ui/vba/vbasheetobjects \
sc/source/ui/vba/vbastyle \
sc/source/ui/vba/vbastyles \
sc/source/ui/vba/vbatextboxshape \
@@ -133,6 +132,11 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\
sc/source/ui/vba/vbawsfunction \
))
+$(eval $(call gb_Library_add_cxxobjects,vbaobj,\
+ sc/source/ui/vba/vbasheetobjects \
+ , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
+))
+
ifneq (,$(filter LINUX DRAGONFLY OPENBSD FREEBSD NETBSD, $(OS)))
$(eval $(call gb_Library_set_ldflags,vbaobj,\
$$(LDFLAGS) \
Loading…
Cancel
Save