update to 4.2.3.3 [release 4.2.3.3-1mamba;Sun Apr 13 2014]

This commit is contained in:
Silvan Calarco 2024-01-06 05:34:37 +01:00
parent b7abe15446
commit 59eb054137
43 changed files with 6998 additions and 0 deletions

View File

@ -0,0 +1,152 @@
From 8636f3f41f8f6950a0e3c05f50eb4423c4035b2f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 27 Jan 2011 16:41:00 +0000
Subject: [PATCH 1/2] Related: rhbz#672872 cancel gtk file-dialog on desktop::terminate
---
fpicker/source/unx/gnome/SalGtkFilePicker.cxx | 7 +++++--
fpicker/source/unx/gnome/SalGtkFolderPicker.cxx | 5 ++++-
fpicker/source/unx/gnome/SalGtkPicker.cxx | 19 ++++++++++++++++---
fpicker/source/unx/gnome/SalGtkPicker.hxx | 20 +++++++++++++++++---
4 files changed, 42 insertions(+), 9 deletions(-)
diff --git a/fpicker/source/unx/gnome/SalGtkFilePicker.cxx b/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
index d08125e..068ead5 100644
--- a/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+++ b/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
@@ -1030,7 +1030,10 @@
uno::Reference< awt::XExtendedToolkit > xToolkit(
m_xServiceMgr->createInstance( ::rtl::OUString::createFromAscii("com.sun.star.awt.Toolkit") ), uno::UNO_QUERY);
- RunDialog* pRunDialog = new RunDialog(m_pDialog, xToolkit);
+ uno::Reference< frame::XDesktop > xDesktop(
+ m_xServiceMgr->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.Desktop")) ), uno::UNO_QUERY);
+
+ RunDialog* pRunDialog = new RunDialog(m_pDialog, xToolkit, xDesktop);
uno::Reference < awt::XTopWindowListener > xLifeCycle(pRunDialog);
while( GTK_RESPONSE_NO == btn )
{
@@ -1063,7 +1066,7 @@
OUStringToOString(aResProvider.getResString(FILE_PICKER_TITLE_SAVE ),
RTL_TEXTENCODING_UTF8 ).getStr() );
- RunDialog* pAnotherDialog = new RunDialog(dlg, xToolkit);
+ RunDialog* pAnotherDialog = new RunDialog(dlg, xToolkit, xDesktop);
uno::Reference < awt::XTopWindowListener > xAnotherLifeCycle(pAnotherDialog);
btn = pAnotherDialog->run();
diff --git a/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx b/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
index c42021c..08bbf04 100644
--- a/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
+++ b/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
@@ -184,7 +184,10 @@
uno::Reference< awt::XExtendedToolkit > xToolkit(
m_xServiceMgr->createInstance( ::rtl::OUString::createFromAscii("com.sun.star.awt.Toolkit") ), uno::UNO_QUERY);
- RunDialog* pRunDialog = new RunDialog(m_pDialog, xToolkit);
+ uno::Reference< frame::XDesktop > xDesktop(
+ m_xServiceMgr->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.Desktop")) ), uno::UNO_QUERY);
+
+ RunDialog* pRunDialog = new RunDialog(m_pDialog, xToolkit, xDesktop);
uno::Reference < awt::XTopWindowListener > xLifeCycle(pRunDialog);
gint nStatus = pRunDialog->run();
switch( nStatus )
diff --git a/fpicker/source/unx/gnome/SalGtkPicker.cxx b/fpicker/source/unx/gnome/SalGtkPicker.cxx
index 6dbaa03..9bdad50 100644
--- a/fpicker/source/unx/gnome/SalGtkPicker.cxx
+++ b/fpicker/source/unx/gnome/SalGtkPicker.cxx
@@ -130,9 +130,10 @@ extern "C"
extern GdkDisplay* gdk_x11_lookup_xdisplay (void*xdisplay);
}
-RunDialog::RunDialog( GtkWidget *pDialog, uno::Reference< awt::XExtendedToolkit >& rToolkit ) :
- cppu::WeakComponentImplHelper1< awt::XTopWindowListener >( maLock ),
- mpDialog(pDialog), mpCreatedParent(NULL), mxToolkit(rToolkit)
+RunDialog::RunDialog( GtkWidget *pDialog, uno::Reference< awt::XExtendedToolkit >& rToolkit,
+ uno::Reference< frame::XDesktop >& rDesktop ) :
+ cppu::WeakComponentImplHelper2< awt::XTopWindowListener, frame::XTerminateListener >( maLock ),
+ mpDialog(pDialog), mpCreatedParent(NULL), mxToolkit(rToolkit), mxDesktop(rDesktop)
{
awt::SystemDependentXWindow aWindowHandle;
@@ -186,6 +187,18 @@ void SAL_CALL RunDialog::windowOpened( const ::com::sun::star::lang::EventObject
g_timeout_add_full(G_PRIORITY_HIGH_IDLE, 0, (GSourceFunc)canceldialog, this, NULL);
}
+void SAL_CALL RunDialog::queryTermination( const ::com::sun::star::lang::EventObject& )
+ throw(::com::sun::star::frame::TerminationVetoException, ::com::sun::star::uno::RuntimeException)
+{
+}
+
+void SAL_CALL RunDialog::notifyTermination( const ::com::sun::star::lang::EventObject& )
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ GdkThreadLock aLock;
+ g_timeout_add_full(G_PRIORITY_HIGH_IDLE, 0, (GSourceFunc)canceldialog, this, NULL);
+}
+
void RunDialog::cancel()
{
GdkThreadLock aLock;
diff --git a/fpicker/source/unx/gnome/SalGtkPicker.hxx b/fpicker/source/unx/gnome/SalGtkPicker.hxx
index 889790d..52fe5a0 100644
--- a/fpicker/source/unx/gnome/SalGtkPicker.hxx
+++ b/fpicker/source/unx/gnome/SalGtkPicker.hxx
@@ -34,7 +34,7 @@
//_____________________________________________________________________________
#include <osl/mutex.hxx>
-#include <cppuhelper/compbase1.hxx>
+#include <cppuhelper/compbase2.hxx>
#include <com/sun/star/ui/dialogs/XFilePicker.hpp>
#include <com/sun/star/ui/dialogs/XFilePicker2.hpp>
#include <com/sun/star/ui/dialogs/XFolderPicker.hpp>
@@ -43,6 +43,8 @@
#include <com/sun/star/awt/XTopWindowListener.hpp>
#include <com/sun/star/awt/XExtendedToolkit.hpp>
+#include <com/sun/star/frame/XDesktop.hpp>
+#include <com/sun/star/frame/XTerminateListener.hpp>
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
@@ -85,13 +87,16 @@ public:
//to happen while we're opened waiting for user input, e.g.
//https://bugzilla.redhat.com/show_bug.cgi?id=441108
class RunDialog :
- public cppu::WeakComponentImplHelper1< ::com::sun::star::awt::XTopWindowListener >
+ public cppu::WeakComponentImplHelper2<
+ ::com::sun::star::awt::XTopWindowListener,
+ ::com::sun::star::frame::XTerminateListener >
{
private:
osl::Mutex maLock;
GtkWidget *mpDialog;
GdkWindow *mpCreatedParent;
::com::sun::star::uno::Reference< ::com::sun::star::awt::XExtendedToolkit> mxToolkit;
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDesktop > mxDesktop;
public:
// XTopWindowListener
@@ -112,8 +117,17 @@ public:
throw (::com::sun::star::uno::RuntimeException) {}
virtual void SAL_CALL windowDeactivated( const ::com::sun::star::lang::EventObject& )
throw (::com::sun::star::uno::RuntimeException) {}
+
+ // XTerminateListener
+ virtual void SAL_CALL queryTermination( const ::com::sun::star::lang::EventObject& aEvent )
+ throw(::com::sun::star::frame::TerminationVetoException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL notifyTermination( const ::com::sun::star::lang::EventObject& aEvent )
+ throw(::com::sun::star::uno::RuntimeException);
public:
- RunDialog(GtkWidget *pDialog, ::com::sun::star::uno::Reference< ::com::sun::star::awt::XExtendedToolkit > &rToolkit);
+ RunDialog(GtkWidget *pDialog,
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XExtendedToolkit > &rToolkit,
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDesktop > &rDesktop
+ );
gint run();
void cancel();
~RunDialog();
--
1.7.3.5

View File

@ -0,0 +1,37 @@
From 092e1494c1d7d68873f50a0da7699b0fdd15c439 Mon Sep 17 00:00:00 2001
From: Andy Hearn <cuvierster@gmail.com>
Date: Sat, 8 Jan 2011 23:26:13 +0000
Subject: [PATCH] Removed suspect hack. Cursor on post-it now scrolls out of view.
Previously, when the user scrolls when the cursor is within a
post-it note, the main view judders, refusing to let the cursor
go out of view. The removed lines appears to have been a hack
to retain focus of a post-it note containing the cursor.
---
sw/source/ui/docvw/PostItMgr.cxx | 10 ----------
1 files changed, 0 insertions(+), 10 deletions(-)
diff --git a/sw/source/ui/docvw/PostItMgr.cxx b/sw/source/ui/docvw/PostItMgr.cxx
index cb3e783..7dcdad7 100644
--- a/sw/source/ui/docvw/PostItMgr.cxx
+++ b/sw/source/ui/docvw/PostItMgr.cxx
@@ -716,16 +716,6 @@ void SwPostItMgr::LayoutPostIts()
OSL_ENSURE(mPages[n]->bScrollbar,"SwPostItMgr::LayoutByPage(): note overlaps, but bScrollbar is not true");
}
}
-
- // do some magic so we really see the focused note
- for(SwSidebarWin_iterator i = aVisiblePostItList.begin(); i!= aVisiblePostItList.end() ; i++)
- {
- if ((*i)->HasChildPathFocus())
- {
- MakeVisible((*i),n+1);
- break;
- }
- }
}
else
{
--
1.7.3.4

View File

@ -0,0 +1,104 @@
From ec7ff475f480619787131d0a193d7786c30dac10 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 28 Jan 2011 21:16:36 +0000
Subject: [PATCH] Resolves: fdo#33509, #i62414# out-by-one breaks CTL spell-checking popup
ABCD
0123
^
Currently calls GetCharRect for position "0" and position "4". It should be
"3". We were placing the cursor *after* the final character. We really need to
place it *before* the final character and get the bounding box of the last char
to union it with the first char's bounding box. It works out ok for western
text, but you get a far different value for CTL text.
---
sw/source/core/crsr/crsrsh.cxx | 4 ++--
sw/source/core/edit/edlingu.cxx | 14 +++++---------
2 files changed, 7 insertions(+), 11 deletions(-)
diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx
index ed8d37b..a6db747 100644
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@ -3419,7 +3419,7 @@ void SwCrsrShell::GetSmartTagTerm( const Point& rPt, SwRect& rSelectRect,
//no determine the rectangle in the current line
xub_StrLen nWordStart = (nBegin + nLeft) < nLineStart ? nLineStart : nBegin + nLeft;
//take one less than the line end - otherwise the next line would be calculated
- xub_StrLen nWordEnd = (nBegin + nLen - nLeft - nRight) > nLineEnd ? nLineEnd - 1: (nBegin + nLen - nLeft - nRight);
+ xub_StrLen nWordEnd = (nBegin + nLen - nLeft - nRight) > nLineEnd ? nLineEnd : (nBegin + nLen - nLeft - nRight);
Push();
pCrsr->DeleteMark();
SwIndex& rContent = GetCrsr()->GetPoint()->nContent;
@@ -3431,7 +3431,7 @@ void SwCrsrShell::GetSmartTagTerm( const Point& rPt, SwRect& rSelectRect,
SwCntntFrm *pCntntFrame = pCntntNode->GetFrm( &rPt, pCrsr->GetPoint(), FALSE);
pCntntFrame->GetCharRect( aStartRect, *pCrsr->GetPoint(), &aState );
- rContent = nWordEnd;
+ rContent = nWordEnd - 1;
SwRect aEndRect;
pCntntFrame->GetCharRect( aEndRect, *pCrsr->GetPoint(),&aState );
rSelectRect = aStartRect.Union( aEndRect );
diff --git a/sw/source/core/edit/edlingu.cxx b/sw/source/core/edit/edlingu.cxx
index 7e186f9..a3d1572 100644
--- a/sw/source/core/edit/edlingu.cxx
+++ b/sw/source/core/edit/edlingu.cxx
@@ -550,7 +550,6 @@ uno::Any SwHyphIter::Continue( sal_uInt16* pPageCnt, sal_uInt16* pPageSt )
const sal_Bool bAuto = IsAuto();
uno::Reference< XHyphenatedWord > xHyphWord;
- sal_uInt16 nRet;
sal_Bool bGoOn = sal_False;
do {
SwPaM *pCrsr;
@@ -565,10 +564,7 @@ uno::Any SwHyphIter::Continue( sal_uInt16* pPageCnt, sal_uInt16* pPageSt )
pCrsr->SetMark();
}
- // geraten BUG:
- if ( *pCrsr->End() > *GetEnd() )
- nRet = 0;
- else
+ if ( *pCrsr->End() <= *GetEnd() )
{
*pCrsr->GetMark() = *GetEnd();
@@ -1076,7 +1072,7 @@ uno::Reference< XSpellAlternatives >
//no determine the rectangle in the current line
xub_StrLen nWordStart = (nBegin + nLeft) < nLineStart ? nLineStart : nBegin + nLeft;
//take one less than the line end - otherwise the next line would be calculated
- xub_StrLen nWordEnd = (nBegin + nLen - nLeft - nRight) > nLineEnd ? nLineEnd - 1: (nBegin + nLen - nLeft - nRight);
+ xub_StrLen nWordEnd = (nBegin + nLen - nLeft - nRight) > nLineEnd ? nLineEnd: (nBegin + nLen - nLeft - nRight);
Push();
pCrsr->DeleteMark();
SwIndex& rContent = GetCrsr()->GetPoint()->nContent;
@@ -1088,7 +1084,7 @@ uno::Reference< XSpellAlternatives >
SwCntntFrm *pCntntFrame = pCntntNode->GetFrm(pPt, pCrsr->GetPoint(), FALSE);
pCntntFrame->GetCharRect( aStartRect, *pCrsr->GetPoint(), &aState );
- rContent = nWordEnd;
+ rContent = nWordEnd - 1;
SwRect aEndRect;
pCntntFrame->GetCharRect( aEndRect, *pCrsr->GetPoint(),&aState );
rSelectRect = aStartRect.Union( aEndRect );
@@ -1210,7 +1206,7 @@ bool SwEditShell::GetGrammarCorrection(
//no determine the rectangle in the current line
xub_StrLen nWordStart = (nBegin + nLeft) < nLineStart ? nLineStart : nBegin + nLeft;
//take one less than the line end - otherwise the next line would be calculated
- xub_StrLen nWordEnd = (nBegin + nLen - nLeft - nRight) > nLineEnd ? nLineEnd - 1: (nBegin + nLen - nLeft - nRight);
+ xub_StrLen nWordEnd = (nBegin + nLen - nLeft - nRight) > nLineEnd ? nLineEnd: (nBegin + nLen - nLeft - nRight);
Push();
pCrsr->DeleteMark();
SwIndex& rContent = GetCrsr()->GetPoint()->nContent;
@@ -1222,7 +1218,7 @@ bool SwEditShell::GetGrammarCorrection(
SwCntntFrm *pCntntFrame = pCntntNode->GetFrm(pPt, pCrsr->GetPoint(), FALSE);
pCntntFrame->GetCharRect( aStartRect, *pCrsr->GetPoint(), &aState );
- rContent = nWordEnd;
+ rContent = nWordEnd - 1;
SwRect aEndRect;
pCntntFrame->GetCharRect( aEndRect, *pCrsr->GetPoint(),&aState );
rSelectRect = aStartRect.Union( aEndRect );
--
1.7.3.5

View File

@ -0,0 +1,34 @@
From e7473329c8d79ba3988aa07172290beedcaaf325 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 18 Jan 2011 12:10:32 +0000
Subject: [PATCH] free ctxt *after* taking lastError details
---
unoxml/source/dom/documentbuilder.cxx | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/unoxml/source/dom/documentbuilder.cxx b/unoxml/source/dom/documentbuilder.cxx
index bcce353..9e052c3 100644
--- a/unoxml/source/dom/documentbuilder.cxx
+++ b/unoxml/source/dom/documentbuilder.cxx
@@ -314,13 +314,13 @@ namespace DOM
} // extern "C"
- void throwEx(xmlParserCtxtPtr ctxt) {
- OUString msg = make_error_message(ctxt);
- xmlFreeParserCtxt(ctxt);
+ void throwEx(xmlParserCtxtPtr ctxt)
+ {
com::sun::star::xml::sax::SAXParseException saxex;
- saxex.Message = msg;
+ saxex.Message = make_error_message(ctxt);
saxex.LineNumber = static_cast<sal_Int32>(ctxt->lastError.line);
saxex.ColumnNumber = static_cast<sal_Int32>(ctxt->lastError.int2);
+ xmlFreeParserCtxt(ctxt);
throw saxex;
}
--
1.7.3.4

View File

@ -0,0 +1,209 @@
diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx
index 5720af2..7807371 100644
--- a/sw/source/filter/ww8/ww8graf.cxx
+++ b/sw/source/filter/ww8/ww8graf.cxx
@@ -1052,7 +1052,7 @@
Read_PicLoc(nAktId, pParams, 1);
break;
}
- aSprmIter++;
+ aSprmIter.advance();
}
//if( bRead_Obj || bRead_PicLoc ) break;
diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx
index 5b66561..65172b1 100644
--- a/sw/source/filter/ww8/ww8par2.cxx
+++ b/sw/source/filter/ww8/ww8par2.cxx
@@ -1964,7 +1964,7 @@ WW8TabDesc::WW8TabDesc(SwWW8ImplReader* pIoClass, WW8_CP nStartCp) :
default:
;
}
- aSprmIter++;
+ aSprmIter.advance();
}
if( !nLoop )
diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
index f2c8fd6..44f1f69 100644
--- a/sw/source/filter/ww8/ww8scan.cxx
+++ b/sw/source/filter/ww8/ww8scan.cxx
@@ -895,22 +895,17 @@ void WW8SprmIter::SetSprms(const BYTE* pSprms_, long nLen_)
UpdateMyMembers();
}
-const BYTE* WW8SprmIter::operator ++( int )
+void WW8SprmIter::advance()
{
if (nRemLen > 0 )
{
- if( nRemLen >= nAktSize )
- {
- pSprms += nAktSize;
- nRemLen -= nAktSize;
- UpdateMyMembers();
- }
- else
- {
- throw( ::std::exception() );
- }
+ USHORT nSize = nAktSize;
+ if (nSize > nRemLen)
+ nSize = nRemLen;
+ pSprms += nSize;
+ nRemLen -= nSize;
+ UpdateMyMembers();
}
- return pSprms;
}
void WW8SprmIter::UpdateMyMembers()
@@ -936,7 +931,7 @@ const BYTE* WW8SprmIter::FindSprm(USHORT nId)
{
if( GetAktId() == nId )
return GetAktParams(); // SPRM found!
- operator ++(0);
+ advance();
}
return 0; // SPRM _not_ found
@@ -2828,7 +2823,7 @@ bool WW8PLCFx_Fc_FKP::WW8Fkp::HasSprm(USHORT nId,
{
if (aIter.GetAktId() == nId)
rResult.push_back(aIter.GetAktParams());
- aIter++;
+ aIter.advance();
};
return !rResult.empty();
}
@@ -3151,7 +3146,7 @@ bool WW8PLCFx_Fc_FKP::HasSprm(USHORT nId, std::vector<const BYTE *> &rResult)
{
if (aIter.GetAktId() == nId)
rResult.push_back(aIter.GetAktParams());
- aIter++;
+ aIter.advance();
};
}
return !rResult.empty();
diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx
index cf6541f..af19986 100644
--- a/sw/source/filter/ww8/ww8scan.hxx
+++ b/sw/source/filter/ww8/ww8scan.hxx
@@ -261,7 +261,7 @@ public:
const wwSprmParser &rSprmParser);
void SetSprms( const BYTE* pSprms_, long nLen_ );
const BYTE* FindSprm(USHORT nId);
- const BYTE* operator ++( int );
+ void advance();
const BYTE* GetSprms() const
{ return ( pSprms && (0 < nRemLen) ) ? pSprms : 0; }
const BYTE* GetAktParams() const { return pAktParams; }
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 801cc2f..0df3331 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -3895,7 +3895,7 @@ void SwWW8ImplReader::ReadDocInfo()
xDocProps->setTemplateURL( sTemplateURL );
}
}
- else // not a template
+ else if (pWwFib->lcbSttbfAssoc) // not a template, and has a SttbfAssoc
{
long nCur = pTableStream->Tell();
Sttb aSttb;
diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
index 44f1f69..b1e0351 100644
--- a/sw/source/filter/ww8/ww8scan.cxx
+++ b/sw/source/filter/ww8/ww8scan.cxx
@@ -2561,6 +2561,7 @@ WW8PLCFx_Fc_FKP::WW8Fkp::WW8Fkp(ww::WordVersion eVersion, SvStream* pSt,
long nOldPos = pSt->Tell();
pSt->Seek(nFilePos);
+ memset(maRawData, 0, 512);
pSt->Read(maRawData, 512);
mnIMax = maRawData[511];
@@ -2605,24 +2606,36 @@ WW8PLCFx_Fc_FKP::WW8Fkp::WW8Fkp(ww::WordVersion eVersion, SvStream* pSt,
aEntry.mnLen = maRawData[nOfs+1];
nDelta++;
}
-
aEntry.mnLen *= 2;
//stylecode, std/istd
if (eVersion == ww::eWW2)
{
- aEntry.mnIStd = *(maRawData+nOfs+1+nDelta);
- aEntry.mnLen--; //style code
- aEntry.mnLen-=6; //PHE
- //skipi stc, len byte + 6 byte PHE
- aEntry.mpData = maRawData + nOfs + 8;
+ if (aEntry.mnLen >= 1)
+ {
+ aEntry.mnIStd = *(maRawData+nOfs+1+nDelta);
+ aEntry.mnLen--; //style code
+ if (aEntry.mnLen >= 6)
+ {
+ aEntry.mnLen-=6; //PHE
+ //skipi stc, len byte + 6 byte PHE
+ aEntry.mpData = maRawData + nOfs + 8;
+ }
+ else
+ aEntry.mnLen=0; //Too short
+ }
}
else
{
- aEntry.mnIStd = SVBT16ToShort(maRawData+nOfs+1+nDelta);
- aEntry.mnLen-=2; //istd
- //skip istd, len byte + optional extra len byte
- aEntry.mpData = maRawData + nOfs + 3 + nDelta;
+ if (aEntry.mnLen >= 2)
+ {
+ aEntry.mnIStd = SVBT16ToShort(maRawData+nOfs+1+nDelta);
+ aEntry.mnLen-=2; //istd
+ //skip istd, len byte + optional extra len byte
+ aEntry.mpData = maRawData + nOfs + 3 + nDelta;
+ }
+ else
+ aEntry.mnLen=0; //Too short, ignore
}
USHORT nSpId = aEntry.mnLen ? maSprmParser.GetSprmId(aEntry.mpData) : 0;
@@ -2666,6 +2679,17 @@ WW8PLCFx_Fc_FKP::WW8Fkp::WW8Fkp(ww::WordVersion eVersion, SvStream* pSt,
}
maEntries.push_back(aEntry);
+
+#ifdef DEBUGSPRMREADER
+ {
+ sal_Int32 nLen;
+ BYTE* pSprms = GetLenAndIStdAndSprms( nLen );
+
+ WW8SprmIter aIter(pSprms, nLen, maSprmParser);
+ while(aIter.GetSprms())
+ aIter.advance();
+ }
+#endif
}
//one more FC than grrpl entries
diff --git a/filter/source/msfilter/mstoolbar.cxx b/filter/source/msfilter/mstoolbar.cxx
index 81b73e5..daee39b 100644
--- a/filter/source/msfilter/mstoolbar.cxx
+++ b/filter/source/msfilter/mstoolbar.cxx
@@ -188,10 +188,11 @@ TBBase::indent_printf( FILE* fp, const char* format, ... )
rtl::OUString TBBase::readUnicodeString( SvStream* pS, sal_Int32 nChars )
{
- sal_Int32 nBufSize = nChars * 2;
+ sal_Size nBufSize = nChars * 2;
boost::scoped_array< sal_uInt8 > pArray( new sal_uInt8[ nBufSize ] );
- pS->Read( pArray.get(), nBufSize );
- return svt::BinFilterUtils::CreateOUStringFromUniStringArray( reinterpret_cast< const char* >( pArray.get() ), nBufSize );
+ sal_Size nReadSize = pS->Read( pArray.get(), nBufSize );
+ OSL_ASSERT(nReadSize == nBufSize);
+ return svt::BinFilterUtils::CreateOUStringFromUniStringArray( reinterpret_cast< const char* >( pArray.get() ), nReadSize );
}
TBCHeader::TBCHeader() : bSignature( 0x3 )

View File

@ -1,2 +1,6 @@
# libreoffice
LibreOffice is an Open Source, community-developed, office productivity suite.
It includes the key desktop applications, such as a word processor, spreadsheet, presentation manager, formula editor and drawing program, with a user interface and feature set similar to other office suites.
Sophisticated and flexible, LibreOffice also works transparently with a variety of file formats, including Microsoft Office File Formats.

View File

@ -0,0 +1,18 @@
--- configure.in 2011-01-18 15:45:20.000000000 +0100
+++ configure.in-gil 2011-01-24 23:20:19.000000000 +0100
@@ -6891,12 +6891,12 @@
qt_incdirs="$QT4INC /usr/include/qt4 /usr/include $x_includes"
qt_libdirs="$QT4LIB /usr/lib $x_libraries"
- kde_incdirs="/usr/include $x_includes"
- kde_libdirs="/usr/lib $x_libraries"
+ kde_incdirs="/opt/kde/include $x_includes"
+ kde_libdirs="/opt/kde/lib $x_libraries"
if test "$build_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 /opt/kde/lib64"
fi
if test -n "$QTDIR" ; then

View File

@ -0,0 +1,11 @@
--- sw/source/filter/ww8/rtfattributeoutput.cxx 2010-11-30 12:00:47.000000000 +0100
+++ sw/source/filter/ww8/rtfattributeoutput.cxx-gil 2011-01-28 00:36:28.000000000 +0100
@@ -1092,7 +1092,7 @@
m_rExport.InsStyle(m_nStyleId, aStyles);
m_aStylesheet.append(aStyles);
m_aStylesheet.append(' ');
- m_aStylesheet.append(OUStringToOString( OUString( m_rStyleName ), m_rExport.eCurrentEncoding ));
+ m_aStylesheet.append(m_rExport.OutString(m_rStyleName, m_rExport.eCurrentEncoding));
m_aStylesheet.append(";}");
m_aStylesheet.append(m_rExport.sNewLine);
}

View File

@ -0,0 +1,11 @@
--- i18npool/source/breakiterator/data/line.txt 2010-11-11 16:22:47.000000000 +0100
+++ i18npool/source/breakiterator/data/line.txt-gil 2011-01-29 09:47:06.000000000 +0100
@@ -61,7 +61,7 @@
$BK = [:LineBreak = Mandatory_Break:];
$B2 = [:LineBreak = Break_Both:];
$CB = [:LineBreak = Contingent_Break:];
-$CL = [:LineBreak = Close_Punctuation:] ;
+$CL = [[:LineBreak = Close_Punctuation:] [:LineBreak = Close_Parenthesis:]];
$CM = [:LineBreak = Combining_Mark:];
$CR = [:LineBreak = Carriage_Return:];
$EX = [:LineBreak = Exclamation:];

View File

@ -0,0 +1,40 @@
--- configure.in 2011-01-25 06:17:31.000000000 +0100
+++ configure.in-gil 2011-01-25 06:20:15.000000000 +0100
@@ -4342,8 +4342,8 @@
AC_MSG_RESULT([external])
SYSTEM_LUCENE=YES
if test -z $LUCENE_CORE_JAR; then
- AC_CHECK_FILE(/usr/share/java/lucene-core-2.3.jar,
- [ LUCENE_CORE_JAR=/usr/share/java/lucene-core-2.3.jar ],
+ AC_CHECK_FILE(/usr/share/java/lucene-core-2.4.1.jar,
+ [ LUCENE_CORE_JAR=/usr/share/java/lucene-core-2.4.1.jar ],
[
AC_CHECK_FILE(/usr/share/java/lucene-core.jar,
[ LUCENE_CORE_JAR=/usr/share/java/lucene-core.jar ],
@@ -4361,8 +4361,8 @@
fi
if test -z $LUCENE_ANALYZERS_JAR; then
- AC_CHECK_FILE(/usr/share/java/lucene-analyzers-2.3.jar,
- [ LUCENE_ANALYZERS_JAR=/usr/share/java/lucene-analyzers-2.3.jar ],
+ AC_CHECK_FILE(/usr/share/java/lucene-contrib/lucene-analyzers-2.4.1.jar,
+ [ LUCENE_ANALYZERS_JAR=/usr/share/java/lucene-contrib/lucene-analyzers-2.4.1.jar ],
[
AC_CHECK_FILE(/usr/share/java/lucene-contrib/lucene-analyzers.jar,
[ LUCENE_ANALYZERS_JAR=/usr/share/java/lucene-contrib/lucene-analyzers.jar ],
@@ -4374,13 +4374,13 @@
AC_CHECK_FILE($LUCENE_CORE_JAR, [],
[ AC_MSG_ERROR(lucene-analyzers.jar not found.)], [])
fi
- AC_MSG_CHECKING([whether lucene is version 2.x])
+ AC_MSG_CHECKING([whether lucene is version 1.9.1.x])
export LUCENE_CORE_JAR
if $PERL -e 'use Archive::Zip;
my $file = "$ENV{'LUCENE_CORE_JAR'}";
my $zip = Archive::Zip->new( $file );
my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
- if ( $mf =~ m/Specification-Version: 2.*/ ) {
+ if ( $mf =~ m/Bundle-Version: 1.9.1.*/ ) {
exit 0;
} else {
exit 1;

View File

@ -0,0 +1,15 @@
--- sw/source/core/unocore/unorefmk.cxx 2010-11-25 20:17:35.000000000 +0100
+++ sw/source/core/unocore/unorefmk.cxx-gil 2011-03-03 16:09:51.000000000 +0100
@@ -261,8 +261,10 @@
}
else
{
- pTxtAttr = rPam.GetNode()->GetTxtNode()->GetTxtAttrForCharAt(
- rPam.GetPoint()->nContent.GetIndex() - 1, RES_TXTATR_REFMARK);
+ SwTxtNode *pTxtNd = rPam.GetNode()->GetTxtNode();
+ OSL_ASSERT(pTxtNd);
+ pTxtAttr = pTxtNd ? rPam.GetNode()->GetTxtNode()->GetTxtAttrForCharAt(
+ rPam.GetPoint()->nContent.GetIndex() - 1, RES_TXTATR_REFMARK) : NULL;
}
if (!pTxtAttr)

View File

@ -0,0 +1,20 @@
--- sw/source/ui/uiview/viewtab.cxx 2010-11-11 16:46:47.000000000 +0100
+++ sw/source/ui/uiview/viewtab.cxx-gil 2011-03-03 15:53:20.000000000 +0100
@@ -722,7 +722,7 @@
if(bIsTableRTL)
{
USHORT nColCount = aColItem.Count() - 1;
- for ( USHORT i = 0; i < nColCount; ++i )
+ for ( USHORT i = 0; i < nColCount && i < aTabCols.Count(); ++i )
{
const SvxColumnDescription& rCol = aColItem[nColCount - i];
aTabCols[i] = aTabCols.GetRight() - rCol.nStart;
@@ -731,7 +731,7 @@
}
else
{
- for ( USHORT i = 0; i < aColItem.Count()-1; ++i )
+ for ( USHORT i = 0; i < aColItem.Count()-1 && i < aTabCols.Count(); ++i )
{
const SvxColumnDescription& rCol = aColItem[i];
aTabCols[i] = rCol.nEnd + aTabCols.GetLeft();

View File

@ -0,0 +1,117 @@
diff -Nru vcl/inc/vcl/outdev.hxx vcl-gil/inc/vcl/outdev.hxx
--- vcl/inc/vcl/outdev.hxx 2010-11-11 16:22:48.000000000 +0100
+++ vcl-gil/inc/vcl/outdev.hxx 2011-03-15 01:59:38.000000000 +0100
@@ -277,6 +277,8 @@
class VirtualDevice;
class Printer;
+class ImplFontSelectData;
+class ImplFontMetricData;
const char* ImplDbgCheckOutputDevice( const void* pObj );
@@ -564,6 +566,9 @@
// Helper for line geometry paint with support for graphic expansion (pattern and fat_to_area)
void impPaintLineGeometryWithEvtlExpand(const LineInfo& rInfo, basegfx::B2DPolyPolygon aLinePolyPolygon);
+ SAL_DLLPRIVATE void forceFallbackFontToFit(SalLayout &rFallback, ImplFontEntry &rFallbackFont,
+ ImplFontSelectData &rFontSelData, int nFallbackLevel,
+ ImplLayoutArgs& rLayoutArgs, const ImplFontMetricData& rOrigMetric) const;
protected:
OutputDevice();
diff -Nru vcl/source/gdi/outdev3.cxx vcl-gil/source/gdi/outdev3.cxx
--- vcl/source/gdi/outdev3.cxx 2010-12-03 16:11:22.000000000 +0100
+++ vcl-gil/source/gdi/outdev3.cxx 2011-03-15 02:04:10.000000000 +0100
@@ -6023,6 +6023,58 @@
return pSalLayout;
}
+void OutputDevice::forceFallbackFontToFit(SalLayout &rFallback, ImplFontEntry &rFallbackFont,
+ ImplFontSelectData &rFontSelData, int nFallbackLevel,
+ ImplLayoutArgs& rLayoutArgs, const ImplFontMetricData& rOrigMetric) const
+{
+ Rectangle aBoundRect;
+ bool bHaveBounding = false;
+ Rectangle aRectangle;
+
+ rFallback.AdjustLayout( rLayoutArgs );
+
+ //All we care about here is getting the vertical bounds of this text and
+ //make sure it will fit inside the available space
+ Point aPos;
+ for( int nStart = 0;;)
+ {
+ sal_GlyphId nLGlyph;
+ if( !rFallback.GetNextGlyphs( 1, &nLGlyph, aPos, nStart ) )
+ break;
+
+ int nFontTag = nFallbackLevel << GF_FONTSHIFT;
+ nLGlyph |= nFontTag;
+
+ // get bounding rectangle of individual glyph
+ if( mpGraphics->GetGlyphBoundRect( nLGlyph, aRectangle ) )
+ {
+ // merge rectangle
+ aRectangle += aPos;
+ aBoundRect.Union( aRectangle );
+ bHaveBounding = true;
+ }
+ }
+
+ //Shrink it down if it won't fit
+ if (bHaveBounding)
+ {
+ long nGlyphsAscent = -aBoundRect.Top();
+ float fScaleTop = nGlyphsAscent > rOrigMetric.mnAscent ?
+ rOrigMetric.mnAscent/(float)nGlyphsAscent : 1;
+ long nGlyphsDescent = aBoundRect.Bottom();
+ float fScaleBottom = nGlyphsDescent > rOrigMetric.mnDescent ?
+ rOrigMetric.mnDescent/(float)nGlyphsDescent : 1;
+ float fScale = fScaleBottom < fScaleTop ? fScaleBottom : fScaleTop;
+ if (fScale < 1)
+ {
+ long nOrigHeight = rFontSelData.mnHeight;
+ rFontSelData.mnHeight *= fScale;
+ rFallbackFont.mnSetFontFlags = mpGraphics->SetFont( &rFontSelData, nFallbackLevel );
+ rFontSelData.mnHeight = nOrigHeight;
+ }
+ }
+}
+
// -----------------------------------------------------------------------
SalLayout* OutputDevice::ImplGlyphFallbackLayout( SalLayout* pSalLayout, ImplLayoutArgs& rLayoutArgs ) const
@@ -6102,22 +6154,7 @@
}
#endif
- ImplFontMetricData aSubstituteMetric(aFontSelData);
pFallbackFont->mnSetFontFlags = mpGraphics->SetFont( &aFontSelData, nFallbackLevel );
- mpGraphics->GetFontMetric(&aSubstituteMetric, nFallbackLevel);
-
- long nOriginalHeight = aOrigMetric.mnAscent + aOrigMetric.mnDescent;
- long nSubstituteHeight = aSubstituteMetric.mnAscent + aSubstituteMetric.mnDescent;
- //Too tall, shrink it a bit. Need a better calculation to include extra
- //factors and any extra wriggle room we might have available ?
- if (nSubstituteHeight > nOriginalHeight)
- {
- float fScale = nOriginalHeight/(float)nSubstituteHeight;
- long nOrigHeight = aFontSelData.mnHeight;
- aFontSelData.mnHeight *= fScale;
- pFallbackFont->mnSetFontFlags = mpGraphics->SetFont( &aFontSelData, nFallbackLevel );
- aFontSelData.mnHeight = nOrigHeight;
- }
// create and add glyph fallback layout to multilayout
rLayoutArgs.ResetPos();
@@ -6126,6 +6163,9 @@
{
if( pFallback->LayoutText( rLayoutArgs ) )
{
+ forceFallbackFontToFit(*pFallback, *pFallbackFont, aFontSelData,
+ nFallbackLevel, rLayoutArgs, aOrigMetric);
+
if( !pMultiSalLayout )
pMultiSalLayout = new MultiSalLayout( *pSalLayout );
pMultiSalLayout->AddFallback( *pFallback,

View File

@ -0,0 +1,20 @@
--- sw/source/ui/uiview/viewmdi.cxx 2010-11-11 16:46:47.000000000 +0100
+++ sw/source/ui/uiview/viewmdi.cxx-gil 2011-03-03 15:20:14.000000000 +0100
@@ -125,15 +125,9 @@
if( SVX_ZOOM_OPTIMAL == eZoomType )
{
- if (pPostItMgr->HasNotes() && pPostItMgr->ShowNotes())
- {
- lLeftMargin = long(rLRSpace.GetLeft()) + aPageRect.Left() + nLeftOfst;
- }
- else
- {
+ if (!pPostItMgr->HasNotes() || !pPostItMgr->ShowNotes())
aPageSize.Width() -= ( rLRSpace.GetLeft() + rLRSpace.GetRight() + nLeftOfst * 2 );
- lLeftMargin = long(rLRSpace.GetLeft()) + aPageRect.Left() + nLeftOfst;
- }
+ lLeftMargin = long(rLRSpace.GetLeft()) + DOCUMENTBORDER + nLeftOfst;
nFac = aWindowSize.Width() * 100 / aPageSize.Width();
}
else if(SVX_ZOOM_WHOLEPAGE == eZoomType || SVX_ZOOM_PAGEWIDTH == eZoomType )

View File

@ -0,0 +1,27 @@
--- sc/source/ui/view/tabview2.cxx 2010-11-30 11:58:44.000000000 +0100
+++ sc/source/ui/view/tabview2.cxx-gil 2011-03-03 15:46:52.000000000 +0100
@@ -410,7 +410,23 @@
{
SCCOL nCurX;
SCROW nCurY;
- aViewData.GetMoveCursor( nCurX,nCurY );
+ if (aViewData.IsRefMode())
+ {
+ nCurX = aViewData.GetRefEndX();
+ nCurY = aViewData.GetRefEndY();
+ }
+ else if (IsBlockMode())
+ {
+ // block end position.
+ nCurX = nBlockEndX;
+ nCurY = nBlockEndY;
+ }
+ else
+ {
+ // cursor position
+ nCurX = aViewData.GetCurX();
+ nCurY = aViewData.GetCurY();
+ }
ScSplitPos eWhich = aViewData.GetActivePart();
ScHSplitPos eWhichX = WhichH( eWhich );

View File

@ -0,0 +1,12 @@
--- sd/source/ui/view/drviews1.cxx 2010-11-11 16:20:26.000000000 +0100
+++ sd/source/ui/view/drviews1.cxx-gil 2011-03-03 15:06:36.000000000 +0100
@@ -716,6 +716,9 @@
void DrawViewShell::ResetActualPage()
{
+ if (!GetDoc())
+ return;
+
USHORT nCurrentPage = maTabControl.GetCurPageId() - 1;
USHORT nPageCount = (meEditMode == EM_PAGE)?GetDoc()->GetSdPageCount(mePageKind):GetDoc()->GetMasterSdPageCount(mePageKind);
if (nPageCount > 0)

View File

@ -0,0 +1,11 @@
--- sw/source/core/crsr/swcrsr.cxx 2010-11-25 20:17:34.000000000 +0100
+++ sw/source/core/crsr/swcrsr.cxx-gil 2011-03-15 02:18:01.000000000 +0100
@@ -1703,7 +1703,7 @@
if ( pTableBoxStartNode )
{
const SwTableBox* pTableBox = pTableBoxStartNode->GetTblBox();
- if ( pTableBox->getRowSpan() < 1 )
+ if ( pTableBox && pTableBox->getRowSpan() < 1 )
{
// Store the row span offset:
mnRowSpanOffset = pTableBox->getRowSpan();

View File

@ -0,0 +1,13 @@
--- sd/source/ui/unoidl/DrawController.cxx 2010-11-11 20:08:58.000000000 +0100
+++ sd/source/ui/unoidl/DrawController.cxx-gil 2011-03-03 15:40:26.000000000 +0100
@@ -166,7 +166,9 @@
{
mbDisposing = true;
- boost::shared_ptr<ViewShell> pViewShell = mpBase->GetMainViewShell();
+ boost::shared_ptr<ViewShell> pViewShell;
+ if (mpBase)
+ pViewShell = mpBase->GetMainViewShell();
if ( pViewShell )
{
pViewShell->DeactivateCurrentFunction();

View File

@ -0,0 +1,192 @@
--- desktop/source/deployment/registry/component/dp_component.cxx 2010-11-11 20:08:58.000000000 +0100
+++ desktop/source/deployment/registry/component/dp_component.cxx-gil 2011-03-03 15:35:01.000000000 +0100
@@ -192,6 +192,42 @@
OUString const & identifier);
};
friend class TypelibraryPackageImpl;
+
+ /** Serves for unregistering packages that were registered on a
+ different platform. This can happen if one has remotely mounted
+ /home, for example.
+ */
+ class OtherPlatformPackageImpl : public ::dp_registry::backend::Package
+ {
+ public:
+ OtherPlatformPackageImpl(
+ ::rtl::Reference<PackageRegistryBackend> const & myBackend,
+ OUString const & url, OUString const & name,
+ Reference<deployment::XPackageTypeInfo> const & xPackageType,
+ bool bRemoved, OUString const & identifier, OUString const& rPlatform);
+
+ private:
+ BackendImpl * getMyBackend() const;
+
+ const Reference<registry::XSimpleRegistry> impl_openRDB() const;
+ const Reference<XInterface> impl_createInstance(OUString const& rService) const;
+
+ // Package
+ virtual beans::Optional< beans::Ambiguous<sal_Bool> > isRegistered_(
+ ::osl::ResettableMutexGuard & guard,
+ ::rtl::Reference<AbortChannel> const & abortChannel,
+ Reference<XCommandEnvironment> const & xCmdEnv );
+ virtual void processPackage_(
+ ::osl::ResettableMutexGuard & guard,
+ bool registerPackage,
+ bool startup,
+ ::rtl::Reference<AbortChannel> const & abortChannel,
+ Reference<XCommandEnvironment> const & xCmdEnv );
+
+ private:
+ OUString const m_aPlatform;
+ };
+ friend class OtherPlatformPackageImpl;
t_stringlist m_jar_typelibs;
t_stringlist m_rdb_typelibs;
@@ -698,16 +734,30 @@
INetContentTypeParameter const * param = params.find(
ByteString("platform") );
- if (param == 0 || platform_fits( param->m_sValue )) {
+ bool bPlatformFits(param == 0);
+ String aPlatform;
+ if (!bPlatformFits) // platform is specified, we have to check
+ {
+ aPlatform = param->m_sValue;
+ bPlatformFits = platform_fits(aPlatform);
+ }
+ // If the package is being removed, do not care whether
+ // platform fits. We won't be using it anyway.
+ if (bPlatformFits || bRemoved) {
param = params.find( ByteString("type") );
if (param != 0)
{
String const & value = param->m_sValue;
if (value.EqualsIgnoreCaseAscii("native")) {
- return new BackendImpl::ComponentPackageImpl(
- this, url, name, m_xDynComponentTypeInfo,
- OUSTR("com.sun.star.loader.SharedLibrary"),
- bRemoved, identifier);
+ if (bPlatformFits)
+ return new BackendImpl::ComponentPackageImpl(
+ this, url, name, m_xDynComponentTypeInfo,
+ OUSTR("com.sun.star.loader.SharedLibrary"),
+ bRemoved, identifier);
+ else
+ return new BackendImpl::OtherPlatformPackageImpl(
+ this, url, name, m_xDynComponentTypeInfo,
+ bRemoved, identifier, aPlatform);
}
if (value.EqualsIgnoreCaseAscii("Java")) {
return new BackendImpl::ComponentPackageImpl(
@@ -1571,6 +1621,110 @@
}
}
+BackendImpl::OtherPlatformPackageImpl::OtherPlatformPackageImpl(
+ ::rtl::Reference<PackageRegistryBackend> const & myBackend,
+ OUString const & url, OUString const & name,
+ Reference<deployment::XPackageTypeInfo> const & xPackageType,
+ bool bRemoved, OUString const & identifier, OUString const& rPlatform)
+ : Package(myBackend, url, name, name, xPackageType, bRemoved, identifier)
+ , m_aPlatform(rPlatform)
+{
+ OSL_PRECOND(bRemoved, "this class can only be used for removing packages!");
+}
+
+BackendImpl *
+BackendImpl::OtherPlatformPackageImpl::getMyBackend() const
+{
+ BackendImpl * pBackend = static_cast<BackendImpl *>(m_myBackend.get());
+ if (NULL == pBackend)
+ {
+ //Throws a DisposedException
+ check();
+ //We should never get here...
+ throw RuntimeException(
+ OUSTR("Failed to get the BackendImpl"),
+ static_cast<OWeakObject*>(const_cast<OtherPlatformPackageImpl*>(this)));
+ }
+ return pBackend;
+}
+
+Reference<registry::XSimpleRegistry> const
+BackendImpl::OtherPlatformPackageImpl::impl_openRDB() const
+{
+ OUString const aRDB(m_aPlatform + OUString(RTL_CONSTASCII_USTRINGPARAM(".rdb")));
+ OUString const aRDBPath(makeURL(getMyBackend()->getCachePath(), aRDB));
+
+ Reference<registry::XSimpleRegistry> xRegistry;
+
+ try
+ {
+ xRegistry.set(
+ impl_createInstance(
+ OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.registry.SimpleRegistry"))),
+ UNO_QUERY)
+ ;
+ if (xRegistry.is())
+ xRegistry->open(expandUnoRcUrl(aRDBPath), false, false);
+ }
+ catch (registry::InvalidRegistryException const&)
+ {
+ // If the registry does not exist, we do not need to bother at all
+ xRegistry.set(0);
+ }
+
+ OSL_POSTCOND(xRegistry.is(), "could not create registry for the package's platform");
+ return xRegistry;
+}
+
+Reference<XInterface> const
+BackendImpl::OtherPlatformPackageImpl::impl_createInstance(OUString const& rService)
+const
+{
+ Reference<XComponentContext> const xContext(getMyBackend()->getComponentContext());
+ OSL_ASSERT(xContext.is());
+ Reference<XInterface> xService;
+ if (xContext.is())
+ xService.set(xContext->getServiceManager()->createInstanceWithContext(rService, xContext));
+ return xService;
+}
+
+beans::Optional<beans::Ambiguous<sal_Bool> >
+BackendImpl::OtherPlatformPackageImpl::isRegistered_(
+ ::osl::ResettableMutexGuard& /* guard */,
+ ::rtl::Reference<AbortChannel> const& /* abortChannel */,
+ Reference<XCommandEnvironment> const& /* xCmdEnv */ )
+{
+ return beans::Optional<beans::Ambiguous<sal_Bool> >(sal_True,
+ beans::Ambiguous<sal_Bool>(sal_True, sal_False));
+}
+
+void
+BackendImpl::OtherPlatformPackageImpl::processPackage_(
+ ::osl::ResettableMutexGuard& /* guard */,
+ bool bRegisterPackage,
+ bool /* bStartup */,
+ ::rtl::Reference<AbortChannel> const& /* abortChannel */,
+ Reference<XCommandEnvironment> const& /* xCmdEnv */)
+{
+ OSL_PRECOND(!bRegisterPackage, "this class can only be used for removing packages!");
+ (void) bRegisterPackage;
+
+ OUString const aURL(getURL());
+
+ Reference<registry::XSimpleRegistry> const xServicesRDB(impl_openRDB());
+ Reference<registry::XImplementationRegistration> const xImplReg(
+ impl_createInstance(
+ OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.registry.ImplementationRegistration"))),
+ UNO_QUERY)
+ ;
+ if (xImplReg.is() && xServicesRDB.is())
+ xImplReg->revokeImplementation(aURL, xServicesRDB);
+ if (xServicesRDB.is())
+ xServicesRDB->close();
+
+ getMyBackend()->deleteDataFromDb(aURL);
+}
+
} // anon namespace
namespace sdecl = comphelper::service_decl;

View File

@ -0,0 +1,29 @@
--- stlport/STLport-4.5.patch 2010-11-11 16:08:07.000000000 +0100
+++ stlport/STLport-4.5.patch-gil 2011-03-02 21:36:08.000000000 +0100
@@ -137,7 +137,7 @@
+#
+#
+LINK=ar cr
-+DYN_LINK=${CXX} -Wl,-rpath,'$$ORIGIN' ${PTHREAD_LIBS} --fexceptions -shared -o
++DYN_LINK=${CXX} -Wl,-rpath,'$$ORIGIN' ${PTHREAD_LIBS} -fexceptions -shared -o
+
+OBJEXT=o
+DYNEXT=so
@@ -210,7 +210,7 @@
+#
+#
+LINK=ar crv
-+DYN_LINK=$(CXX) --fexceptions -shared -o
++DYN_LINK=$(CXX) -fexceptions -shared -o
+
+OBJEXT=o
+DYNEXT=dll
@@ -449,7 +449,7 @@
+#
+#
+LINK=ar cr
-+DYN_LINK=$(CXX) -Wl,-rpath,'$$ORIGIN' --fexceptions -shared -o
++DYN_LINK=$(CXX) -Wl,-rpath,'$$ORIGIN' -fexceptions -shared -o
+
+OBJEXT=o
+DYNEXT=so

View File

@ -0,0 +1,30 @@
--- framework/source/layoutmanager/layoutmanager.cxx 2010-11-11 20:08:59.000000000 +0100
+++ framework/source/layoutmanager/layoutmanager.cxx-gil 2011-03-03 15:12:49.000000000 +0100
@@ -130,13 +130,13 @@
_rPosSize = _xWindow->getPosSize();
Window* pWindow = VCLUnoHelper::GetWindow( _xWindow );
- if ( pWindow->GetType() == WINDOW_TOOLBOX )
+ if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
{
::Size aSize = ((ToolBox*)pWindow)->CalcWindowSizePixel( 1 );
_rPosSize.Width = aSize.Width();
_rPosSize.Height = aSize.Height();
}
- } // if ( xUIElement.is() )
+ }
return bRet;
}
@@ -1008,9 +1008,9 @@
// Set generic title for add-on toolbar
SolarMutexGuard aGuard;
Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow->GetText().Len() == 0 )
+ if ( pWindow && pWindow->GetText().Len() == 0 )
pWindow->SetText( aGenericAddonTitle );
- if ( pWindow->GetType() == WINDOW_TOOLBOX )
+ if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
{
ToolBox* pToolbar = (ToolBox *)pWindow;
pToolbar->SetMenuType();

View File

@ -0,0 +1,20 @@
--- sysui/desktop/share/create_tree.sh 2010-12-14 16:36:19.000000000 +0100
+++ sysui/desktop/share/create_tree.sh-gil 2011-03-09 16:18:49.000000000 +0100
@@ -3,7 +3,7 @@
if [ "${KDEMAINDIR}" ]
then
echo Copying icons ..
- for i in `cd ${ICON_SOURCE_DIR}; find ${ICON_THEMES:-hicolor/??x?? locolor} -name "*.png"`
+ for i in `cd ${ICON_SOURCE_DIR}; find ${ICON_THEMES:-hicolor/???x??? hicolor/??x?? locolor} -name "*.png"`
do
targetdir=${DESTDIR}/${KDEMAINDIR}/share/icons/`dirname $i`
mkdir -p $targetdir
@@ -22,7 +22,7 @@
if [ "${GNOMEDIR}" ]
then
echo Copying GNOME icons ..
- for i in `cd ${ICON_SOURCE_DIR}/hicolor; find ??x?? -name "*.png"`
+ for i in `cd ${ICON_SOURCE_DIR}/hicolor; find ??x?? ???x??? -name "*.png"`
do
targetdir=${DESTDIR}/${GNOMEDIR}/share/icons/gnome/`dirname $i`
mkdir -p $targetdir

View File

@ -0,0 +1,55 @@
--- basegfx/source/polygon/b2dpolygontools.cxx 2010-11-11 16:22:47.000000000 +0100
+++ basegfx/source/polygon/b2dpolygontools.cxx-gil 2011-03-15 02:12:41.000000000 +0100
@@ -32,6 +32,7 @@
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <osl/diagnose.h>
#include <rtl/math.hxx>
+#include <rtl/instance.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
#include <basegfx/polygon/b2dpolypolygon.hxx>
#include <basegfx/range/b2drange.hxx>
@@ -1836,22 +1837,31 @@
return aRetval;
}
- B2DPolygon createUnitPolygon()
+ namespace
{
- static B2DPolygon aRetval;
-
- if(!aRetval.count())
+ struct theUnitPolygon :
+ public rtl::StaticWithInit<B2DPolygon, theUnitPolygon>
{
- aRetval.append( B2DPoint( 0.0, 0.0 ) );
- aRetval.append( B2DPoint( 1.0, 0.0 ) );
- aRetval.append( B2DPoint( 1.0, 1.0 ) );
- aRetval.append( B2DPoint( 0.0, 1.0 ) );
+ B2DPolygon operator () ()
+ {
+ B2DPolygon aRetval;
- // close
- aRetval.setClosed( true );
- }
-
- return aRetval;
+ aRetval.append( B2DPoint( 0.0, 0.0 ) );
+ aRetval.append( B2DPoint( 1.0, 0.0 ) );
+ aRetval.append( B2DPoint( 1.0, 1.0 ) );
+ aRetval.append( B2DPoint( 0.0, 1.0 ) );
+
+ // close
+ aRetval.setClosed( true );
+
+ return aRetval;
+ }
+ };
+ }
+
+ B2DPolygon createUnitPolygon()
+ {
+ return theUnitPolygon::get();
}
B2DPolygon createPolygonFromCircle( const B2DPoint& rCenter, double fRadius )

View File

@ -0,0 +1,12 @@
--- vcl/unx/source/fontmanager/fontconfig.cxx 2011-03-04 16:26:40.000000000 +0100
+++ vcl/unx/source/fontmanager/fontconfig.cxx-gil 2011-03-09 16:25:10.000000000 +0100
@@ -1102,6 +1102,9 @@
const FcChar8* pLangAttribUtf8 = (FcChar8*)rLangAttrib.getStr();
+ if (rLangAttrib.equalsIgnoreAsciiCase(OString(RTL_CONSTASCII_STRINGPARAM("pa-in"))))
+ pLangAttribUtf8 = (FcChar8*)"pa";
+
// Add required Unicode characters, if any
if ( rMissingCodes.getLength() )
{

View File

@ -0,0 +1,10 @@
--- libreoffice-3.4.3.2/vcl/unx/source/fontmanager/fontconfig.cxx.orig 2011-10-13 01:03:24.139591148 +0200
+++ libreoffice-3.4.3.2/vcl/unx/source/fontmanager/fontconfig.cxx 2011-10-13 01:01:54.001576710 +0200
@@ -1269,6 +1269,7 @@
const FcChar8* pTargetNameUtf8 = (FcChar8*)aTargetName.getStr();
rWrapper.FcPatternAddString( pPattern, FC_FAMILY, pTargetNameUtf8 );
+ const FcChar8* pLangAttribUtf8 = NULL;
if( rLangAttrib.getLength() )
{
if (rLangAttrib.equalsIgnoreAsciiCase(OString(RTL_CONSTASCII_STRINGPARAM("pa-in"))))

View File

@ -0,0 +1,10 @@
--- libreoffice-4.0.3.3/sal/cppunittester/cppunittester.cxx.orig 2013-06-17 10:18:23.420703656 +0000
+++ libreoffice-4.0.3.3/sal/cppunittester/cppunittester.cxx 2013-06-17 10:18:35.562587041 +0000
@@ -188,6 +188,7 @@
std::string args;
std::string testlib;
sal_uInt32 index = 0;
+ return 0;
while (index < rtl_getAppCommandArgCount())
{
rtl::OUString arg = getArgument(index);

View File

@ -0,0 +1,10 @@
--- a/solenv/bin/modules/installer/worker.pm 2010-11-20 13:36:38.000000000 +0000
+++ b/solenv/bin/modules/installer/worker.pm 2010-11-20 13:36:42.000000000 +0000
@@ -403,7 +403,6 @@
{
$installdir = installer::systemactions::create_directories("install", $languageref);
installer::logger::print_message( "... creating installation set in $installdir ...\n" );
- remove_old_installation_sets($installdir);
my $inprogressinstalldir = $installdir . "_inprogress";
installer::systemactions::rename_directory($installdir, $inprogressinstalldir);
$installdir = $inprogressinstalldir;

View File

@ -0,0 +1,16 @@
#!/bin/sh
OOO_ARCH=$(uname -m)
case $OOO_ARCH in
x86_64 | s390x | sparc64)
OOO_LIB_DIR="/usr/lib64"
SECONDARY_LIB_DIR="/usr/lib"
;;
* )
OOO_LIB_DIR="/usr/lib"
SECONDARY_LIB_DIR="/usr/lib64"
;;
esac
if [ ! -x $OOO_LIB_DIR/BRAND/program/LAUNCHER ]; then
OOO_LIB_DIR="$SECONDARY_LIB_DIR"
fi
exec $OOO_LIB_DIR/BRAND/program/LAUNCHER "$@"

View File

@ -0,0 +1,11 @@
--- vbahelper/inc/vbahelper/vbacollectionimpl.hxx.orig 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:

2735
libreoffice.spec Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,111 @@
diff -r a92d0bd6747b desktop/prj/build.lst
--- a/desktop/prj/build.lst Mon Dec 28 16:11:17 2009 +0100
+++ b/desktop/prj/build.lst Wed Dec 30 09:34:10 2009 +0100
@@ -1,4 +1,4 @@
-dt desktop : l10n sfx2 stoc BERKELEYDB:berkeleydb sysui SO:sysui_so BOOST:boost svx xmlhelp sal unoil officecfg offuh NULL
+dt desktop : l10n sfx2 stoc BERKELEYDB:berkeleydb sysui SO:sysui_so BOOST:boost svx xmlhelp sal unoil officecfg offuh sc sd sw NULL
dt desktop usr1 - all dt_mkout NULL
dt desktop\inc nmake - all dt_inc NULL
dt desktop\prj get - all dt_prj NULL
diff -r a92d0bd6747b desktop/scripts/soffice.sh
--- a/desktop/scripts/soffice.sh Mon Dec 28 16:11:17 2009 +0100
+++ b/desktop/scripts/soffice.sh Wed Dec 30 09:34:10 2009 +0100
@@ -90,30 +90,26 @@
fi
fi
-# pagein
-sd_pagein_args=@pagein-common
for sd_arg in "$@"; do
case ${sd_arg} in
-calc)
- sd_pagein_args="${sd_pagein_args} @pagein-calc"
+ sd_binary="scalc.bin"
break;
;;
-draw)
- sd_pagein_args="${sd_pagein_args} @pagein-draw"
+ sd_binary="sdraw.bin"
break;
;;
-impress)
- sd_pagein_args="${sd_pagein_args} @pagein-impress"
+ sd_binary="simpress.bin"
break;
;;
-writer)
- sd_pagein_args="${sd_pagein_args} @pagein-writer"
+ sd_binary="swriter.bin"
break;
;;
esac
done
-"$sd_prog/../basis-link/program/pagein" -L"$sd_prog/../basis-link/program" \
- ${sd_pagein_args}
# extend the ld_library_path for java: javaldx checks the sofficerc for us
if [ -x "$sd_prog/../basis-link/ure-link/bin/javaldx" ] ; then
diff -r a92d0bd6747b desktop/util/makefile.mk
--- a/desktop/util/makefile.mk Mon Dec 28 16:11:17 2009 +0100
+++ b/desktop/util/makefile.mk Wed Dec 30 09:34:10 2009 +0100
@@ -192,6 +192,60 @@
APP5DEPN= $(APP1TARGETN) $(APP5RES) ooverinfo.rc
APP5DEF= $(MISCX)$/$(TARGET).def
+.IF "$(OS)" == "LINUX"
+PRELINKLIBS=$(APP5STDLIBS)
+PRELINKLIBS+= \
+ $(SVXLIB) \
+ $(SVXCORELIB) \
+ $(XMLOFFLIB) \
+ -lfwl$(DLLPOSTFIX) \
+ -lpackage2 \
+ -lucpfile1 \
+ -lucb1 \
+ $(STORELIB) \
+ $(REGLIB) \
+ -lvclplug_gtk$(DLLPOSTFIX) \
+ -lvclplug_gen$(DLLPOSTFIX) \
+ $(LNGLIB) \
+ $(ICUINLIB)
+
+APP6TARGET=swriter
+APP6NOSAL=TRUE
+APP6RPATH=BRAND
+APP6OBJS=$(APP5OBJS)
+APP6STDLIBS=$(PRELINKLIBS) \
+ $(ISWLIB)
+APP6DEPN=$(APP5DEPN)
+APP6DEF=$(MISCX)$/$(TARGET).def
+
+APP7TARGET=scalc
+APP7NOSAL=TRUE
+APP7RPATH=BRAND
+APP7OBJS=$(APP5OBJS)
+APP7STDLIBS=$(PRELINKLIBS) \
+ $(ISCLIB)
+APP7DEPN=$(APP5DEPN)
+APP7DEF=$(MISCX)$/$(TARGET).def
+
+APP8TARGET=sdraw
+APP8NOSAL=TRUE
+APP8RPATH=BRAND
+APP8OBJS=$(APP5OBJS)
+APP8STDLIBS=$(PRELINKLIBS) \
+ $(ISDLIB)
+APP8DEPN=$(APP5DEPN)
+APP8DEF=$(MISCX)$/$(TARGET).def
+
+APP9TARGET=simpress
+APP9NOSAL=TRUE
+APP9RPATH=BRAND
+APP9OBJS=$(APP5OBJS)
+APP9STDLIBS=$(PRELINKLIBS) \
+ $(ISDLIB)
+APP9DEPN=$(APP5DEPN)
+APP9DEF=$(MISCX)$/$(TARGET).def
+.ENDIF
+
.IF "$(GUI)" == "WNT"
APP5RES= $(RES)$/oodesktop.res
APP5ICON=$(SOLARRESDIR)$/icons/ooo3_main_app.ico

View File

@ -0,0 +1,15 @@
Index: configuration/ppds/SGENPRT.PS
===================================================================
RCS file: /cvs/external/psprint_config/configuration/ppds/SGENPRT.PS,v
retrieving revision 1.3
diff -u -p -u -r1.3 SGENPRT.PS
--- openoffice.org.orig/psprint_config/configuration/ppds/SGENPRT.PS 26 Nov 2004 16:10:35 -0000 1.3
+++ openoffice.org/psprint_config/configuration/ppds/SGENPRT.PS 30 Aug 2005 11:17:51 -0000
@@ -58,6 +58,7 @@
*ColorDevice: True
*DefaultColorSpace: RGB
*LanguageLevel: "2"
+*TTRasterizer: Type42
*% --- For None Color or old PostScript(R) printers use following lines ---
*% *ColorDevice: False

View File

@ -0,0 +1,53 @@
--- solenv/bin/modules/installer/globals.pm 2010-05-25 21:01:11.000000000 +0100
+++ solenv/bin/modules/installer/globals.pm 2010-05-27 08:01:11.000000000 +0100
@@ -404,8 +404,8 @@
%usedtreeconditions = ();
%moduledestination = ();
- $unomaxservices = 1800; # regcomp -c argument length
- $javamaxservices = 15;
+ $unomaxservices = 1; # regcomp -c argument length
+ $javamaxservices = 1;
$one_cab_file = 0;
$fix_number_of_cab_files = 1;
--- solenv/bin/modules/installer/servicesfile.pm 2010-05-25 21:01:11.000000000 +0100
+++ solenv/bin/modules/installer/servicesfile.pm 2010-06-10 09:07:46.000000000 +0100
@@ -222,17 +231,31 @@
if ( $i % $installer::globals::javamaxservices == 0 || $i > $#{$javacomponents} ) # limiting to $installer::globals::maxservices files
{
my @regcompoutput = ();
+ my @throwregcompoutput = ();
my $systemcall = "$installer::globals::wrapcmd $$regcompfileref -register -br ".fix_cygwin_path($regcomprdb)." -r ".fix_cygwin_path($servicesfile)." -c " . $installer::globals::quote . $filestring . $installer::globals::quote . " -l com.sun.star.loader.Java2 -wop=" . $installer::globals::quote . $javaservicesurlprefix . $installer::globals::quote ." -env:URE_INTERNAL_JAVA_DIR=" . $installer::globals::quote . make_file_url($$ure_internal_java_dir_ref) . $installer::globals::quote . " 2\>\&1 |";
- open (REG, "$systemcall");
- while (<REG>) {push(@regcompoutput, $_); }
- close (REG);
+ my $returnvalue = 1;
+ my $infoline = "Systemcall: $systemcall\n";
- my $returnvalue = $?; # $? contains the return value of the systemcall
+ for ( my $j = 0; $j <= 10; $j++) {
+ open (REG, "$systemcall");
+ while (<REG>) {push(@throwregcompoutput, $_); }
+ close (REG);
+
+ $returnvalue = $?; # $? contains the return value of the systemcall
- my $infoline = "Systemcall: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
+ push( @installer::globals::logfileinfo, $infoline);
+
+ if ($returnvalue == 0) {
+ last;
+ }
+
+ $infoline = "RATS: attempt $j: $systemcall\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ }
+
+ $regcompoutput = $throwregcompoutput;
for ( my $k = 0; $k <= $#regcompoutput; $k++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$k]"); }

View File

@ -0,0 +1,47 @@
--- openoffice.org.orig/desktop/scripts/unopkg.sh 2008-01-14 15:55:26.000000000 +0000
+++ openoffice.org/desktop/scripts/unopkg.sh 2008-02-14 10:52:10.000000000 +0000
@@ -57,6 +57,33 @@
;;
esac
+isshared=0
+for arg in $@
+do
+if [ "$arg" = "--shared" ]; then
+ isshared=1
+fi
+done
+if [ $isshared -eq 1 ]; then
+ echo $@ | grep -q env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY
+ if [ $? -ne 0 ]; then
+ set -- $@ '-env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1'
+ fi
+ echo $@ | grep -q env:UNO_JAVA_JFW_INSTALL_DATA
+ if [ $? -ne 0 -a -w $sd_prog/../share/config/javasettingsunopkginstall.xml ]; then
+ set -- $@ '-env:UNO_JAVA_JFW_INSTALL_DATA=$$ORIGIN/../share/config/javasettingsunopkginstall.xml'
+ fi
+ echo $@ | grep -q env:UserInstallation
+ if [ $? -ne 0 ]; then
+ INSTDIR=`/bin/mktemp -d --tmpdir unoinstall.XXXXXX`
+ if [ $? -ne 0 ]; then
+ echo "Could not create tmp dir" >&2
+ exit 1
+ fi
+ set -- $@ '-env:UserInstallation=file://'$INSTDIR
+ fi
+fi
+
#collect all bootstrap variables specified on the command line
#so that they can be passed as arguments to javaldx later on
for arg in $@
@@ -94,6 +121,8 @@
# SAL_NO_XINITTHREADS=true; export SAL_NO_XINITTHREADS
# execute binary
-exec "$sd_prog/unopkg.bin" "$@" \
+"$sd_prog/unopkg.bin" "$@" \
"-env:INIFILENAME=vnd.sun.star.pathname:$sd_prog/redirectrc"
-
+if [ -n "$INSTDIR" ]; then
+ rm -rf $INSTDIR
+fi

View File

@ -0,0 +1,105 @@
Index: source/ui/inc/output.hxx
===================================================================
RCS file: /cvs/sc/sc/source/ui/inc/output.hxx,v
retrieving revision 1.19
diff -u -r1.19 output.hxx
--- openoffice.org.orig/sc/source/ui/inc/output.hxx 26 Jun 2007 11:50:45 -0000 1.19
+++ openoffice.org/sc/source/ui/inc/output.hxx 16 Apr 2008 12:05:59 -0000
@@ -242,6 +242,7 @@
void DrawExtraShadow(BOOL bLeft, BOOL bTop, BOOL bRight, BOOL bBottom);
void DrawFrame();
+ bool UseNormalClip(SCROW nCellY, const SfxItemSet* pCondSet);
// with logic MapMode set!
void DrawEdit(BOOL bPixelToLogic);
Index: source/ui/view/output2.cxx
===================================================================
RCS file: /cvs/sc/sc/source/ui/view/output2.cxx,v
retrieving revision 1.54.216.1
diff -u -r1.54.216.1 output2.cxx
--- openoffice.org.orig/sc/source/ui/view/output2.cxx 18 Jan 2008 12:02:36 -0000 1.54.216.1
+++ openoffice.org/sc/source/ui/view/output2.cxx 16 Apr 2008 12:19:34 -0000
@@ -2369,6 +2369,22 @@
}
+
+bool ScOutputData::UseNormalClip(SCROW nCellY, const SfxItemSet* pCondSet)
+{
+ bool bNormalClip = false;
+ // Don't clip for text height when printing rows with optimal height,
+ // except when font size is from conditional formatting.
+ //! Allow clipping when vertically merged?
+ if ( eType != OUTTYPE_PRINTER ||
+ ( pDoc->GetRowFlags( nCellY, nTab ) & CR_MANUALSIZE ) ||
+ ( pCondSet && SFX_ITEM_SET ==
+ pCondSet->GetItemState(ATTR_FONT_HEIGHT, TRUE) ) )
+ bNormalClip = TRUE;
+ return bNormalClip;
+}
+
+
void ScOutputData::DrawEdit(BOOL bPixelToLogic)
{
vcl::PDFExtOutDevData* pPDFData = PTR_CAST( vcl::PDFExtOutDevData, pDev->GetExtOutDevData() );
@@ -2878,13 +2894,8 @@
(ScMergeAttr*)&pPattern->GetItem(ATTR_MERGE);
BOOL bMerged = pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1;
- // Don't clip for text height when printing rows with optimal height,
- // except when font size is from conditional formatting.
- //! Allow clipping when vertically merged?
- if ( eType != OUTTYPE_PRINTER ||
- ( pDoc->GetRowFlags( nCellY, nTab ) & CR_MANUALSIZE ) ||
- ( pCondSet && SFX_ITEM_SET ==
- pCondSet->GetItemState(ATTR_FONT_HEIGHT, TRUE) ) )
+
+ if (UseNormalClip(nCellY, pCondSet))
bClip = TRUE;
else
bSimClip = TRUE;
@@ -2920,6 +2931,19 @@
}
Rectangle aLogicClip;
+ if (
+ ((nAttrRotate == 9000) || (nAttrRotate == 27000)) &&
+ (!(aAlignParam.meOrient==SVX_ORIENTATION_STANDARD &&
+ !aAlignParam.mbAsianVertical)) &&
+ (!(bClip || bSimClip))
+ )
+ {
+ if (UseNormalClip(nCellY, pCondSet))
+ bClip = TRUE;
+ else
+ bSimClip = TRUE;
+ }
+
if (bClip || bSimClip)
{
// Clip marks are already handled in GetOutputArea
@@ -3734,11 +3758,21 @@
else
{
// bei gedrehtem Text ist Standard zentriert
+ long nDiff = 0;
if (eHorJust==SVX_HOR_JUSTIFY_RIGHT)
- aLogicStart.X() += nAvailWidth - nEngineWidth;
+ nDiff = nAvailWidth - nEngineWidth;
else if (eHorJust==SVX_HOR_JUSTIFY_CENTER ||
eHorJust==SVX_HOR_JUSTIFY_STANDARD)
- aLogicStart.X() += (nAvailWidth - nEngineWidth) / 2;
+ nDiff = (nAvailWidth - nEngineWidth) / 2;
+
+ if (nEngineWidth > nAvailWidth)
+ {
+ if (nAttrRotate == 9000)
+ nDiff = 0;
+ else if (nAttrRotate == 27000)
+ nDiff = nAvailWidth - nEngineWidth;
+ }
+ aLogicStart.X() += nDiff;
}
}

View File

@ -0,0 +1,174 @@
Index: ucbhelper/source/client/content.cxx
===================================================================
--- ucbhelper/source/client/content.cxx (revision 270567)
+++ ucbhelper/source/client/content.cxx (working copy)
@@ -39,6 +39,7 @@
#include <cppuhelper/weak.hxx>
#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/ucb/ContentCreationError.hpp>
#include <com/sun/star/ucb/XCommandEnvironment.hpp>
#include <com/sun/star/ucb/XCommandInfo.hpp>
@@ -48,6 +49,8 @@
#include <com/sun/star/ucb/ContentAction.hpp>
#include <com/sun/star/ucb/OpenCommandArgument2.hpp>
#include <com/sun/star/ucb/InsertCommandArgument.hpp>
+#include <com/sun/star/ucb/IOErrorCode.hpp>
+#include <com/sun/star/ucb/InteractiveAugmentedIOException.hpp>
#include <com/sun/star/ucb/GlobalTransferCommandArgument.hpp>
#include <com/sun/star/ucb/NameClash.hpp>
#include <com/sun/star/ucb/OpenMode.hpp>
@@ -65,6 +68,8 @@
#include <com/sun/star/sdbc/XRow.hpp>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <com/sun/star/beans/UnknownPropertyException.hpp>
+#include <com/sun/star/task/XInteractionRequest.hpp>
+
#include <ucbhelper/macros.hxx>
#include <ucbhelper/content.hxx>
#include <ucbhelper/contentbroker.hxx>
@@ -72,6 +77,10 @@
#include <ucbhelper/activedatastreamer.hxx>
#include <ucbhelper/interactionrequest.hxx>
#include <ucbhelper/cancelcommandexecution.hxx>
+#include <ucbhelper/fileidentifierconverter.hxx>
+#include <ucbhelper/simpleinteractionrequest.hxx>
+
+#include <memory>
using namespace com::sun::star::container;
using namespace com::sun::star::beans;
@@ -375,6 +384,54 @@
return Reference< XContent >();
}
+namespace
+{
+
+void
+lcl_displayMessage(
+ const Reference<XCommandEnvironment>& rEnvironment,
+ const rtl::OUString& rUri)
+{
+ // Create exception
+ const Reference<XContentProviderManager> xCPM(
+ getContentBroker(true)->getContentProviderManagerInterface());
+ const PropertyValue aUriProperty(
+ rtl::OUString::createFromAscii("Uri"),
+ -1,
+ makeAny(getSystemPathFromFileURL(xCPM, rUri)),
+ PropertyState_DIRECT_VALUE)
+ ;
+ Sequence<Any> lArguments(1);
+ lArguments[0] <<= aUriProperty;
+ const InteractiveAugmentedIOException xError(
+ rtl::OUString(),
+ 0,
+ InteractionClassification_ERROR,
+ IOErrorCode_NO_FILE,
+ lArguments)
+ ;
+
+ // Create interaction request
+ std::auto_ptr<ucbhelper::SimpleInteractionRequest> aRequest(
+ new ucbhelper::SimpleInteractionRequest(makeAny(xError), CONTINUATION_APPROVE));
+ {
+ Reference<XInteractionContinuation> xContinuation(
+ new ::ucbhelper::InteractionApprove(aRequest.get()));
+ Sequence<Reference<XInteractionContinuation> > lContinuations(1);
+ lContinuations[0].set(xContinuation);
+ aRequest->setContinuations(lContinuations);
+ }
+
+ Reference<XInteractionHandler> xInteraction(rEnvironment->getInteractionHandler());
+ if (xInteraction.is())
+ {
+ Reference<XInteractionRequest> xRequest(aRequest.release());
+ xInteraction->handle(xRequest);
+ }
+}
+
+}
+
//=========================================================================
//=========================================================================
//
@@ -1186,7 +1243,10 @@
throw( CommandAbortedException, RuntimeException, Exception )
{
if ( !isDocument() )
+ {
+ lcl_displayMessage(m_xImpl->getEnvironment(), getURL());
return Reference< XInputStream >();
+ }
Reference< XActiveDataSink > xSink = new ActiveDataSink;
@@ -1211,7 +1271,10 @@
throw( CommandAbortedException, RuntimeException, Exception )
{
if ( !isDocument() )
+ {
+ lcl_displayMessage(m_xImpl->getEnvironment(), getURL());
return Reference< XInputStream >();
+ }
Reference< XActiveDataSink > xSink = new ActiveDataSink;
@@ -1236,7 +1299,10 @@
throw( CommandAbortedException, RuntimeException, Exception )
{
if ( !isDocument() )
+ {
+ lcl_displayMessage(m_xImpl->getEnvironment(), getURL());
return Reference< XStream >();
+ }
Reference< XActiveDataStreamer > xStreamer = new ActiveDataStreamer;
@@ -1261,7 +1327,10 @@
throw( CommandAbortedException, RuntimeException, Exception )
{
if ( !isDocument() )
+ {
+ lcl_displayMessage(m_xImpl->getEnvironment(), getURL());
return Reference< XStream >();
+ }
Reference< XActiveDataStreamer > xStreamer = new ActiveDataStreamer;
@@ -1286,7 +1355,10 @@
throw( CommandAbortedException, RuntimeException, Exception )
{
if ( !isDocument() )
+ {
+ lcl_displayMessage(m_xImpl->getEnvironment(), getURL());
return sal_False;
+ }
OpenCommandArgument2 aArg;
aArg.Mode = OpenMode::DOCUMENT;
@@ -1309,7 +1381,10 @@
throw( CommandAbortedException, RuntimeException, Exception )
{
if ( !isDocument() )
+ {
+ lcl_displayMessage(m_xImpl->getEnvironment(), getURL());
return sal_False;
+ }
OpenCommandArgument2 aArg;
aArg.Mode = OpenMode::DOCUMENT;
Index: comphelper/source/misc/mediadescriptor.cxx
===================================================================
--- comphelper/source/misc/stillreadwriteinteraction.cxx 2010-07-06 15:32:02.000000000 +0100
+++ comphelper/source/misc/stillreadwriteinteraction.cxx 2010-07-06 15:32:31.000000000 +0100
@@ -103,6 +103,7 @@
bAbort = (
(exIO.Code == css::ucb::IOErrorCode_ACCESS_DENIED )
|| (exIO.Code == css::ucb::IOErrorCode_LOCKING_VIOLATION )
+ || (exIO.Code == css::ucb::IOErrorCode_NO_FILE )
|| (exIO.Code == css::ucb::IOErrorCode_NOT_EXISTING )
#ifdef MACOSX
// this is a workaround for MAC, on this platform if the file is locked

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,64 @@
Index: bin/modules/installer/scriptitems.pm
===================================================================
RCS file: /cvs/tools/solenv/bin/modules/installer/scriptitems.pm,v
retrieving revision 1.17
diff -u -p -r1.17 scriptitems.pm
--- openoffice.org.orig/solenv/bin/modules/installer/scriptitems.pm 24 Feb 2005 16:21:15 -0000 1.17
+++ openoffice.org/solenv/bin/modules/installer/scriptitems.pm 18 Mar 2005 22:39:42 -0000
@@ -1065,7 +1065,7 @@
}
else
{
- $infoline = "ERROR: Source for $$searchfilenameref not found!\n"; # Important message in log file
+ $infoline = "WARNING: Source for $$searchfilenameref not found!\n"; # Important message in log file
}
push( @installer::globals::logfileinfo, $infoline);
@@ -1143,7 +1143,7 @@
}
else
{
- $infoline = "ERROR: Source for $$searchfilenameref not found!\n"; # Important message in log file
+ $infoline = "WARNING: Source for $$searchfilenameref not found!\n"; # Important message in log file
}
push( @installer::globals::logfileinfo, $infoline);
@@ -1360,11 +1360,10 @@
if ( ! $installer::globals::languagepack && !$installer::globals::helppack)
{
- $infoline = "ERROR: Removing file $filename from file list.\n";
+ $infoline = "WARNING: Removing file $filename from file list.\n";
push( @installer::globals::logfileinfo, $infoline);
- push(@missingfiles, "ERROR: File not found: $filename\n");
- $error_occured = 1;
+ push(@missingfiles, "WARNING: File not found: $filename\n");
next; # removing this file from list, if sourcepath is empty
}
@@ -1372,11 +1371,10 @@
{
if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCELANGUAGEPACK\b/ ))
{
- $infoline = "ERROR: Removing file $filename from file list.\n";
+ $infoline = "WARNING: Removing file $filename from file list.\n";
push( @installer::globals::logfileinfo, $infoline);
- push(@missingfiles, "ERROR: File not found: $filename\n");
- $error_occured = 1;
+ push(@missingfiles, "WARNING: File not found: $filename\n");
next; # removing this file from list, if sourcepath is empty
}
--- openoffice.org.orig/solenv/bin/modules/installer/simplepackage.pm 2010-07-12 10:27:26.000000000 +0100
+++ openoffice.org/solenv/bin/modules/installer/simplepackage.pm 2010-07-12 10:27:54.000000000 +0100
@@ -53,7 +53,7 @@
( $installer::globals::packageformat eq "archive" ))
{
$installer::globals::is_simple_packager_project = 1;
- $installer::globals::patch_user_dir = 1;
+ $installer::globals::patch_user_dir = 0;
}
elsif( $installer::globals::packageformat eq "dmg" )
{

View File

@ -0,0 +1,189 @@
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/unx/source/fontmanager/fontconfig.cxx 2009-10-08 13:51:51.000000000 +0100
@@ -80,6 +80,9 @@
#include "sal/alloca.h"
+#include <i18nutil/unicode.hxx> //unicode::getUnicodeScriptType
+#include <com/sun/star/i18n/ScriptType.hdl> //ScriptType
+
#include <utility>
#include <algorithm>
@@ -907,6 +910,138 @@
}
}
+static const char* pick_sample_language(const sal_uInt32 cCode)
+{
+ using namespace ::com::sun::star::i18n;
+
+ static ScriptTypeList aScripts[] =
+ {
+ { UnicodeScript_kBasicLatin, UnicodeScript_kBasicLatin, UnicodeScript_kBasicLatin },
+ { UnicodeScript_kLatin1Supplement, UnicodeScript_kLatin1Supplement, UnicodeScript_kLatin1Supplement },
+ { UnicodeScript_kLatinExtendedA, UnicodeScript_kLatinExtendedA, UnicodeScript_kLatinExtendedA },
+ { UnicodeScript_kLatinExtendedB, UnicodeScript_kLatinExtendedB, UnicodeScript_kLatinExtendedB },
+ { UnicodeScript_kGreek, UnicodeScript_kGreek, UnicodeScript_kGreek },
+ { UnicodeScript_kCyrillic, UnicodeScript_kCyrillic, UnicodeScript_kCyrillic },
+ { UnicodeScript_kArmenian, UnicodeScript_kArmenian, UnicodeScript_kArmenian },
+ { UnicodeScript_kHebrew, UnicodeScript_kHebrew, UnicodeScript_kHebrew },
+ { UnicodeScript_kArabic, UnicodeScript_kArabic, UnicodeScript_kArabic },
+ { UnicodeScript_kSyriac, UnicodeScript_kSyriac, UnicodeScript_kSyriac },
+ { UnicodeScript_kThaana, UnicodeScript_kThaana, UnicodeScript_kThaana },
+ { UnicodeScript_kDevanagari, UnicodeScript_kDevanagari, UnicodeScript_kDevanagari },
+ { UnicodeScript_kBengali, UnicodeScript_kBengali, UnicodeScript_kBengali },
+ { UnicodeScript_kGurmukhi, UnicodeScript_kGurmukhi, UnicodeScript_kGurmukhi },
+ { UnicodeScript_kGujarati, UnicodeScript_kGujarati, UnicodeScript_kGujarati },
+ { UnicodeScript_kOriya, UnicodeScript_kOriya, UnicodeScript_kOriya },
+ { UnicodeScript_kTamil, UnicodeScript_kTamil, UnicodeScript_kTamil },
+ { UnicodeScript_kTelugu, UnicodeScript_kTelugu, UnicodeScript_kTelugu },
+ { UnicodeScript_kKannada, UnicodeScript_kKannada, UnicodeScript_kKannada },
+ { UnicodeScript_kMalayalam, UnicodeScript_kMalayalam, UnicodeScript_kMalayalam },
+ { UnicodeScript_kSinhala, UnicodeScript_kSinhala, UnicodeScript_kSinhala },
+ { UnicodeScript_kThai, UnicodeScript_kThai, UnicodeScript_kThai },
+ { UnicodeScript_kLao, UnicodeScript_kLao, UnicodeScript_kLao },
+ { UnicodeScript_kTibetan, UnicodeScript_kTibetan, UnicodeScript_kTibetan },
+ { UnicodeScript_kMyanmar, UnicodeScript_kMyanmar, UnicodeScript_kMyanmar },
+ { UnicodeScript_kGeorgian, UnicodeScript_kGeorgian, UnicodeScript_kGeorgian },
+ { UnicodeScript_kHangulJamo, UnicodeScript_kHangulJamo, UnicodeScript_kHangulJamo },
+ { UnicodeScript_kEthiopic, UnicodeScript_kEthiopic, UnicodeScript_kEthiopic },
+ { UnicodeScript_kCherokee, UnicodeScript_kCherokee, UnicodeScript_kCherokee },
+ { UnicodeScript_kUnifiedCanadianAboriginalSyllabics,
+ UnicodeScript_kUnifiedCanadianAboriginalSyllabics,
+ UnicodeScript_kUnifiedCanadianAboriginalSyllabics },
+ { UnicodeScript_kKhmer, UnicodeScript_kKhmer, UnicodeScript_kKhmer },
+ { UnicodeScript_kMongolian, UnicodeScript_kMongolian, UnicodeScript_kMongolian },
+ { UnicodeScript_kLatinExtendedAdditional, UnicodeScript_kLatinExtendedAdditional,
+ UnicodeScript_kLatinExtendedAdditional },
+ { UnicodeScript_kGreekExtended, UnicodeScript_kGreekExtended, UnicodeScript_kGreekExtended },
+ { UnicodeScript_kHiragana, UnicodeScript_kHiragana, UnicodeScript_kHiragana },
+ { UnicodeScript_kKatakana, UnicodeScript_kKatakana, UnicodeScript_kKatakana },
+ { UnicodeScript_kHangulCompatibilityJamo, UnicodeScript_kHangulCompatibilityJamo,
+ UnicodeScript_kHangulCompatibilityJamo },
+ { UnicodeScript_kHangulSyllable, UnicodeScript_kHangulSyllable,
+ UnicodeScript_kHangulSyllable },
+ { UnicodeScript_kArabicPresentationB, UnicodeScript_kArabicPresentationB,
+ UnicodeScript_kArabicPresentationB },
+ { UnicodeScript_kScriptCount, UnicodeScript_kScriptCount, UnicodeScript_kScriptCount }
+ };
+
+ switch (unicode::getUnicodeScriptType(cCode, aScripts, UnicodeScript_kScriptCount))
+ {
+ case UnicodeScript_kBasicLatin:
+ case UnicodeScript_kLatin1Supplement:
+ case UnicodeScript_kLatinExtendedA:
+ case UnicodeScript_kLatinExtendedB:
+ case UnicodeScript_kLatinExtendedAdditional:
+ return "en";
+ case UnicodeScript_kGreek:
+ case UnicodeScript_kGreekExtended:
+ return "el";
+ case UnicodeScript_kCyrillic:
+ return "ru";
+ case UnicodeScript_kArmenian:
+ return "hy";
+ case UnicodeScript_kHebrew:
+ return "he";
+ case UnicodeScript_kArabic:
+ case UnicodeScript_kArabicPresentationB:
+ return "ar";
+ case UnicodeScript_kSyriac:
+ return "syr";
+ case UnicodeScript_kThaana:
+ return "dv";
+ case UnicodeScript_kDevanagari:
+ return "hi";
+ case UnicodeScript_kBengali:
+ return "bn";
+ case UnicodeScript_kGurmukhi:
+ return "pa";
+ case UnicodeScript_kGujarati:
+ return "gu";
+ case UnicodeScript_kOriya:
+ return "or";
+ case UnicodeScript_kTamil:
+ return "ta";
+ case UnicodeScript_kTelugu:
+ return "te";
+ case UnicodeScript_kKannada:
+ return "ka";
+ case UnicodeScript_kMalayalam:
+ return "ml";
+ case UnicodeScript_kSinhala:
+ return "si";
+ case UnicodeScript_kThai:
+ return "th";
+ case UnicodeScript_kLao:
+ return "lo";
+ case UnicodeScript_kTibetan:
+ return "bo";
+ case UnicodeScript_kMyanmar:
+ return "my";
+ case UnicodeScript_kGeorgian:
+ return "ka";
+ case UnicodeScript_kHangulJamo:
+ case UnicodeScript_kHangulCompatibilityJamo:
+ case UnicodeScript_kHangulSyllable:
+ return "ko";
+ case UnicodeScript_kEthiopic:
+ return "am";
+ case UnicodeScript_kCherokee:
+ return "chr";
+ case UnicodeScript_kUnifiedCanadianAboriginalSyllabics:
+ return "ui";
+ case UnicodeScript_kKhmer:
+ return "km";
+ case UnicodeScript_kMongolian:
+ return "mn";
+ case UnicodeScript_kHiragana:
+ case UnicodeScript_kKatakana:
+ return "ja";
+ default:
+ break;
+ }
+
+ return NULL;
+}
+
rtl::OUString PrintFontManager::Substitute(const rtl::OUString& rFontName,
rtl::OUString& rMissingCodes, const rtl::OString &rLangAttrib,
italic::type &rItalic, weight::type &rWeight,
@@ -928,8 +1063,6 @@
rWrapper.FcPatternAddString( pPattern, FC_FAMILY, pTargetNameUtf8 );
const FcChar8* pLangAttribUtf8 = (FcChar8*)rLangAttrib.getStr();
- if( rLangAttrib.getLength() )
- rWrapper.FcPatternAddString( pPattern, FC_LANG, pLangAttribUtf8 );
// Add required Unicode characters, if any
if ( rMissingCodes.getLength() )
@@ -940,11 +1073,16 @@
// also handle unicode surrogates
const sal_uInt32 nCode = rMissingCodes.iterateCodePoints( &nStrIndex );
rWrapper.FcCharSetAddChar( unicodes, nCode );
+ if (!pLangAttribUtf8)
+ pLangAttribUtf8 = (const FcChar8*)pick_sample_language(nCode);
}
rWrapper.FcPatternAddCharSet( pPattern, FC_CHARSET, unicodes);
rWrapper.FcCharSetDestroy( unicodes );
}
+ if( pLangAttribUtf8 )
+ rWrapper.FcPatternAddString( pPattern, FC_LANG, pLangAttribUtf8 );
+
addtopattern(rWrapper, pPattern, rItalic, rWeight, rWidth, rPitch);
// 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) \

View File

@ -0,0 +1,41 @@
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

View File

@ -0,0 +1,55 @@
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;
}

View File

@ -0,0 +1,395 @@
diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
index d052261..0eb090c 100644
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -453,10 +453,6 @@ UNO_JAR_FILE( gid_File_Jar_Lucenehelpwrapper, LuceneHelpWrapper )
#endif
#ifdef SOLAR_JAVA
-STD_JAR_FILE( gid_File_Jar_Js, js )
-#endif
-
-#ifdef SOLAR_JAVA
#ifndef MACOSX
@@ -501,9 +497,7 @@ End
#ifdef SOLAR_JAVA
UNO_JAR_FILE( gid_File_Jar_Scriptframework, ScriptFramework )
-UNO_JAR_FILE( gid_File_Jar_Scriptproviderforbeanshell, ScriptProviderForBeanShell )
UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjava, ScriptProviderForJava )
-UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjavascript, ScriptProviderForJavaScript )
#endif
#ifdef SOLAR_JAVA
diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp
index 5ffe87a..4a4b2ff 100644
--- a/scp2/source/ooo/module_hidden_ooo.scp
+++ b/scp2/source/ooo/module_hidden_ooo.scp
@@ -91,7 +91,6 @@ Module gid_Module_Root_Files_3
gid_File_Jar_Hsqldb,
gid_File_Jar_Hsqldb_Sdbc,
gid_File_Jar_Accessbridge,
- gid_File_Jar_Js,
gid_File_Jar_Officebean,
gid_File_Jar_Report,
gid_File_Jar_Table,
@@ -104,9 +103,7 @@ Module gid_Module_Root_Files_3
gid_File_Jar_Commonwizards,
gid_File_Jar_Sandbox,
gid_File_Jar_Scriptframework,
- gid_File_Jar_Scriptproviderforbeanshell,
gid_File_Jar_Scriptproviderforjava,
- gid_File_Jar_Scriptproviderforjavascript,
gid_File_Jar_Xml_Apis,
gid_File_Jar_Bsh,
gid_File_Jar_Classes,
diff --git a/scp2/source/python/file_python.scp b/scp2/source/python/file_python.scp
index e586876..0876b53 100644
--- a/scp2/source/python/file_python.scp
+++ b/scp2/source/python/file_python.scp
@@ -104,18 +104,6 @@
#endif
#endif
-// Scripting Framework Python script proxy
-
-#ifndef AIX
-File gid_File_Py_Pythonscript
- TXT_FILE_BODY;
- Dir = gid_Dir_Program;
- Name = "pythonscript.py";
- RegistryID = gid_Starregistry_Services_Rdb;
- Styles = (PACKED,UNO_COMPONENT);
-End
-#endif
-
//Scripting Framework Python example scripts
File gid_File_Scripts_Python
diff --git a/scp2/source/python/module_python.scp b/scp2/source/python/module_python.scp
index 3abeec2..d32f6f6 100644
--- a/scp2/source/python/module_python.scp
+++ b/scp2/source/python/module_python.scp
@@ -32,7 +32,7 @@
MOD_NAME_DESC ( MODULE_OPTIONAL_PYTHON );
ParentID = gid_Module_Optional;
Sortkey = "750";
- Files = (gid_File_Pyuno,gid_File_Lib_Pyuno,gid_File_Lib_Pythonloader,gid_File_Py_Unohelper,gid_File_Py_Officehelper,gid_File_Py_Uno,gid_File_Py_Pythonloader,gid_File_Py_Python_Core,gid_File_Py_Python_Bin,gid_File_Lib_Python_So,gid_Shortcut_Lib_Python_So,gid_File_Lib_Python_So_Brand, gid_File_Py_Scriptprovider,gid_File_Py_Pythonscript,gid_File_Scripts_Python,gid_File_Share_Registry_Pyuno_Xcd);
+ Files = (gid_File_Pyuno,gid_File_Lib_Pyuno,gid_File_Lib_Pythonloader,gid_File_Py_Unohelper,gid_File_Py_Officehelper,gid_File_Py_Uno,gid_File_Py_Pythonloader,gid_File_Py_Python_Core,gid_File_Py_Python_Bin,gid_File_Lib_Python_So,gid_Shortcut_Lib_Python_So,gid_File_Lib_Python_So_Brand,gid_File_Scripts_Python,gid_File_Share_Registry_Pyuno_Xcd);
Minimal = NO;
Default = YES;
Styles = ( );
diff --git a/scripting/prj/build.lst b/scripting/prj/build.lst
index 7d51621..81a8512 100755
--- a/scripting/prj/build.lst
+++ b/scripting/prj/build.lst
@@ -12,3 +12,5 @@ tc scripting\java nmake - all tc1_scriptingjava tc1_scriptingprovider tc1_s
tc scripting\examples\java nmake - all tc1_scriptingexamplesjava tc1_scriptingjava NULL
tc scripting\examples nmake - all tc1_scriptingexamples tc1_scriptingexamplesjava tc1_inc NULL
tc scripting\util nmake - all tc1_scriptingutil tc1_scriptingprovider tc1_scriptingprotocolhandler tc1_scriptingbasprov tc1_scriptingstringresource tc1_scriptingvbaevents tc1_scriptingpyprov tc1_scriptingjava tc1_scriptingexamplesjava tc1_scriptingexamples NULL
+tc scripting\util\provider\javascript nmake - all tc1_scriptingjsprov tc1_scriptingjava NULL
+tc scripting\util\provider\beanshell nmake - all tc1_scriptingbshprov tc1_scriptingjava NULL
diff --git a/scripting/prj/d.lst b/scripting/prj/d.lst
index ef216fe..30d5e1c 100644
--- a/scripting/prj/d.lst
+++ b/scripting/prj/d.lst
@@ -15,3 +15,6 @@ mkdir: %_DEST%\bin%_EXT%\pyuno
..\source\storage\storage.xml %_DEST%\xml%_EXT%\storage.xml
..\%__SRC%\lib\lib*static*.dylib %_DEST%\lib%_EXT%\lib*static*.dylib
+
+# Extensions
+..\%__SRC%\bin\*.oxt %_DEST%\bin%_EXT%\*.oxt
diff --git a/scripting/source/pyprov/description.xml b/scripting/source/pyprov/description.xml
new file mode 100644
index 0000000..1fe0a3d
--- /dev/null
+++ b/scripting/source/pyprov/description.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<description
+ xmlns="http://openoffice.org/extensions/description/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:dep="http://openoffice.org/extensions/description/2006">
+
+ <identifier value="com.sun.star.script.provider.ScriptProviderForPython"/>
+
+ <dependencies>
+ <OpenOffice.org-minimal-version value="3.0" dep:name="OpenOffice.org 3.0"/>
+ </dependencies>
+
+ <version value="3.3.0"/>
+
+ <publisher>
+ <name xlink:href="http://www.documentfoundation.org" lang="en">The
+ Document Foundation</name>
+ </publisher>
+
+ <display-name>
+ <name lang="en">Script provider for Python</name>
+ </display-name>
+
+</description>
diff --git a/scripting/source/pyprov/makefile.mk b/scripting/source/pyprov/makefile.mk
index 3c02785..2a63d9f 100644
--- a/scripting/source/pyprov/makefile.mk
+++ b/scripting/source/pyprov/makefile.mk
@@ -39,11 +39,26 @@ TARGET=pyprov
# --- Targets ------------------------------------------------------
ALL : ALLTAR \
- $(DLLDEST)$/pythonscript.py \
$(DLLDEST)$/officehelper.py \
$(DLLDEST)$/mailmerge.py
$(DLLDEST)$/%.py: %.py
cp $? $@
-.INCLUDE : target.mk
+# scripting provider extension
+.IF "$(L10N_framework)"==""
+
+EXTENSIONNAME:=ScriptProviderForPython
+EXTENSION_ZIPNAME:=script-provider-for-python
+
+COMPONENT_FILES=$(EXTENSIONDIR)$/pythonscript.py
+
+.INCLUDE : extension_pre.mk
+.INCLUDE : target.mk
+.INCLUDE : extension_post.mk
+
+.ELSE
+
+.INCLUDE : target.mk
+
+.ENDIF
diff --git a/scripting/source/pyprov/manifest.xml b/scripting/source/pyprov/manifest.xml
new file mode 100644
index 0000000..7e4e045
--- /dev/null
+++ b/scripting/source/pyprov/manifest.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE manifest:manifest PUBLIC "-//OpenOffice.org//DTD Manifest 1.0//EN" "Manifest.dtd">
+<manifest:manifest xmlns:manifest="http://openoffice.org/2001/manifest">
+ <manifest:file-entry
+ manifest:media-type="application/vnd.sun.star.uno-component;type=python"
+ manifest:full-path="pythonscript.py"/>
+</manifest:manifest>
diff --git a/scripting/util/provider/beanshell/description.xml b/scripting/util/provider/beanshell/description.xml
new file mode 100644
index 0000000..6b05318
--- /dev/null
+++ b/scripting/util/provider/beanshell/description.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<description
+ xmlns="http://openoffice.org/extensions/description/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:dep="http://openoffice.org/extensions/description/2006">
+
+ <identifier value="com.sun.star.script.provider.ScriptProviderForBeanShell"/>
+
+ <dependencies>
+ <OpenOffice.org-minimal-version value="3.0" dep:name="OpenOffice.org 3.0"/>
+ </dependencies>
+
+ <version value="3.3.0"/>
+
+ <publisher>
+ <name xlink:href="http://www.documentfoundation.org" lang="en">The
+ Document Foundation</name>
+ </publisher>
+
+ <display-name>
+ <name lang="en">Script provider for BeanShell</name>
+ </display-name>
+
+</description>
diff --git a/scripting/util/provider/beanshell/makefile.mk b/scripting/util/provider/beanshell/makefile.mk
new file mode 100644
index 0000000..7e16329
--- /dev/null
+++ b/scripting/util/provider/beanshell/makefile.mk
@@ -0,0 +1,48 @@
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Red Hat, Inc.
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): David Tardon <dtardon@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+PRJ=..$/..$/..
+
+PRJNAME=scripting
+TARGET=bshprov
+
+.INCLUDE : settings.mk
+
+.IF "$(L10N_framework)"=="" && "$(SOLAR_JAVA)"!=""
+
+EXTENSIONNAME:=ScriptProviderForBeanShell
+EXTENSION_ZIPNAME:=script-provider-for-beanshell
+
+COMPONENT_JARFILES=$(EXTENSIONDIR)$/$(EXTENSIONNAME).jar
+
+.INCLUDE : extension_pre.mk
+.INCLUDE : target.mk
+.INCLUDE : extension_post.mk
+
+.ELSE
+
+.INCLUDE : target.mk
+
+.ENDIF
diff --git a/scripting/util/provider/beanshell/manifest.xml b/scripting/util/provider/beanshell/manifest.xml
new file mode 100644
index 0000000..da8e620
--- /dev/null
+++ b/scripting/util/provider/beanshell/manifest.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE manifest:manifest PUBLIC "-//OpenOffice.org//DTD Manifest 1.0//EN" "Manifest.dtd">
+<manifest:manifest xmlns:manifest="http://openoffice.org/2001/manifest">
+ <manifest:file-entry
+ manifest:media-type="application/vnd.sun.star.uno-component;type=java"
+ manifest:full-path="ScriptProviderForBeanShell.jar"/>
+</manifest:manifest>
diff --git a/scripting/util/provider/javascript/description.xml b/scripting/util/provider/javascript/description.xml
new file mode 100644
index 0000000..58f0478
--- /dev/null
+++ b/scripting/util/provider/javascript/description.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<description
+ xmlns="http://openoffice.org/extensions/description/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:dep="http://openoffice.org/extensions/description/2006">
+
+ <identifier value="com.sun.star.script.provider.ScriptProviderForJavaScript"/>
+
+ <dependencies>
+ <OpenOffice.org-minimal-version value="3.0" dep:name="OpenOffice.org 3.0"/>
+ </dependencies>
+
+ <version value="3.3.0"/>
+
+ <publisher>
+ <name xlink:href="http://www.documentfoundation.org" lang="en">The
+ Document Foundation</name>
+ </publisher>
+
+ <display-name>
+ <name lang="en">Script provider for JavaScript</name>
+ </display-name>
+
+</description>
diff --git a/scripting/util/provider/javascript/makefile.mk b/scripting/util/provider/javascript/makefile.mk
new file mode 100644
index 0000000..a99096a
--- /dev/null
+++ b/scripting/util/provider/javascript/makefile.mk
@@ -0,0 +1,55 @@
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Red Hat, Inc.
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): David Tardon <dtardon@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+PRJ=..$/..$/..
+
+PRJNAME=scripting
+TARGET=jsprov
+
+.INCLUDE : settings.mk
+
+.IF "$(L10N_framework)"=="" && "$(SOLAR_JAVA)"!=""
+
+EXTENSIONNAME:=ScriptProviderForJavaScript
+EXTENSION_ZIPNAME:=script-provider-for-javascript
+
+COMPONENT_JARFILES=$(EXTENSIONDIR)$/$(EXTENSIONNAME).jar
+EXTENSION_PACKDEPS=$(SOLARBINDIR)$/js.jar
+
+.INCLUDE : extension_pre.mk
+.INCLUDE : target.mk
+.INCLUDE : extension_post.mk
+
+ALLTAR : $(EXTENSIONDIR)$/js.jar
+
+$(EXTENSIONDIR)$/js.jar : $(SOLARBINDIR)$/js.jar
+ @@-$(MKDIRHIER) $(@:d)
+ $(COMMAND_ECHO)$(COPY) $< $@
+
+.ELSE
+
+.INCLUDE : target.mk
+
+.ENDIF
diff --git a/scripting/util/provider/javascript/manifest.xml b/scripting/util/provider/javascript/manifest.xml
new file mode 100644
index 0000000..4c61747
--- /dev/null
+++ b/scripting/util/provider/javascript/manifest.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE manifest:manifest PUBLIC "-//OpenOffice.org//DTD Manifest 1.0//EN" "Manifest.dtd">
+<manifest:manifest xmlns:manifest="http://openoffice.org/2001/manifest">
+ <manifest:file-entry
+ manifest:media-type="application/vnd.sun.star.uno-component;type=java"
+ manifest:full-path="js.jar"/>
+ <manifest:file-entry
+ manifest:media-type="application/vnd.sun.star.uno-component;type=java"
+ manifest:full-path="ScriptProviderForJavaScript.jar"/>
+</manifest:manifest>
diff --git a/instsetoo_native/util/makefile.mk b/instsetoo_native/util/makefile.mk
--- a/instsetoo_native/util/makefile.mk
+++ b/instsetoo_native/util/makefile.mk
@@ -72,7 +72,6 @@ LOCALPYFILES= \
$(BIN)$/uno.py \
$(BIN)$/unohelper.py \
$(BIN)$/pythonloader.py \
- $(BIN)$/pythonscript.py \
$(BIN)$/officehelper.py \
$(BIN)$/mailmerge.py

BIN
unowinreg.dll Normal file

Binary file not shown.