From 0e6b718affdb8a17e58ff3fa0599cc32ea311f13 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Wed, 1 Oct 2008 18:22:22 +0000 Subject: #i92516# migrate CWS printerpullpages to svn --- sfx2/source/view/viewprn.cxx | 146 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 141 insertions(+), 5 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 0d496c7ccfe7..734673d75525 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: viewprn.cxx,v $ - * $Revision: 1.36 $ + * $Revision: 1.36.128.3 $ * * This file is part of OpenOffice.org. * @@ -33,6 +33,8 @@ #include #include +#include "com/sun/star/view/XRenderable.hpp" + #include #ifndef _MSGBOX_HXX //autogen #include @@ -64,13 +66,137 @@ #include #include +#include "toolkit/awt/vclxdevice.hxx" + #include "view.hrc" #include "helpid.hrc" +using namespace com::sun::star; +using namespace com::sun::star::uno; + TYPEINIT1(SfxPrintingHint, SfxHint); // ----------------------------------------------------------------------- +class SfxPrinterListener : public vcl::PrinterListener +{ + Reference< frame::XModel > mxModel; +public: + SfxPrinterListener( const Reference< frame::XModel >& i_xModel ) + : mxModel( i_xModel ) + { + } + + virtual ~SfxPrinterListener(); + + virtual int getPageCount() const; + virtual void getPageParameters( int i_nPage, JobSetup& o_rPageSetup, Size& o_rPageSize ) const; + virtual void printPage( int i_nPage ) const; + virtual void setListeners(); // optional + virtual void jobFinished(); // optional +}; + +SfxPrinterListener::~SfxPrinterListener() +{ +} + +int SfxPrinterListener::getPageCount() const +{ + int nPages = 0; + boost::shared_ptr pPrinter( getPrinter() ); + if( mxModel.is() && pPrinter ) + { + Reference< view::XRenderable > xRenderable( mxModel, UNO_QUERY ); + if( xRenderable.is() ) + { + VCLXDevice* pXDevice = new VCLXDevice(); + pXDevice->SetOutputDevice( &(*pPrinter) ); + + Sequence< beans::PropertyValue > aRenderOptions( 1 ); + aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); + aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); + + nPages = xRenderable->getRendererCount( makeAny( mxModel ), aRenderOptions ); + } + } + return nPages; +} + +void SfxPrinterListener::getPageParameters( int i_nPage, JobSetup& o_rPageSetup, Size& o_rPageSize ) const +{ + Size aPageSize; + boost::shared_ptr pPrinter( getPrinter() ); + + // FIXME: get page setup from writer + o_rPageSetup = pPrinter->GetJobSetup(); + + if( mxModel.is() && pPrinter ) + { + Reference< view::XRenderable > xRenderable( mxModel, UNO_QUERY ); + if( xRenderable.is() ) + { + VCLXDevice* pXDevice = new VCLXDevice(); + pXDevice->SetOutputDevice( &(*pPrinter) ); + + Sequence< beans::PropertyValue > aRenderOptions( 1 ); + aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); + aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); + + sal_Int32 nPages = xRenderable->getRendererCount( makeAny( mxModel ), aRenderOptions ); + + if( i_nPage < nPages ) + { + Sequence< beans::PropertyValue > aRenderProps( xRenderable->getRenderer( i_nPage, makeAny( mxModel ), aRenderOptions ) ); + + for( sal_Int32 nProperty = 0, nPropertyCount = aRenderProps.getLength(); nProperty < nPropertyCount; ++nProperty ) + { + if( aRenderProps[ nProperty ].Name == rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PageSize" ) ) ) + { + awt::Size aSize; + aRenderProps[ nProperty].Value >>= aSize; + aPageSize.Width() = aSize.Width; + aPageSize.Height() = aSize.Height; + } + } + } + } + } + o_rPageSize = aPageSize; +} + +void SfxPrinterListener::printPage( int i_nPage ) const +{ + boost::shared_ptr pPrinter( getPrinter() ); + if( mxModel.is() && pPrinter ) + { + Reference< view::XRenderable > xRenderable( mxModel, UNO_QUERY ); + if( xRenderable.is() ) + { + VCLXDevice* pXDevice = new VCLXDevice(); + pXDevice->SetOutputDevice( &(*pPrinter) ); + + Sequence< beans::PropertyValue > aRenderOptions( 1 ); + aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); + aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); + + sal_Int32 nPages = xRenderable->getRendererCount( makeAny( mxModel ), aRenderOptions ); + + if( i_nPage < nPages ) + xRenderable->render( i_nPage, makeAny( mxModel ), aRenderOptions ); + } + } +} + +void SfxPrinterListener::setListeners() +{ +} + +void SfxPrinterListener::jobFinished() +{ +} + +// ----------------------------------------------------------------------- + void DisableRanges( PrintDialog& rDlg, SfxPrinter* pPrinter ) /* [Beschreibung] @@ -401,7 +527,6 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - case SID_PRINTDOC: case SID_SETUPPRINTER: case SID_PRINTER_NAME : { @@ -708,8 +833,7 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - case SID_PRINTDOCDIRECT: + //case SID_PRINTDOCDIRECT: { if ( SID_PRINTDOCDIRECT == nId ) { @@ -810,8 +934,20 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) } delete pPrintDlg; - break; } + + break; + + case SID_PRINTDOC: + case SID_PRINTDOCDIRECT: + { + Reference< frame::XModel > xModel( GetObjectShell()->GetModel() ); + boost::shared_ptr pListener( new SfxPrinterListener( xModel ) ); + // FIXME: job setup + // FIXME: job properties + Printer::PrintJob( pListener, JobSetup(), com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet >() ); + } + break; } } -- cgit v1.2.3 From 1ba89b54d2a661c2e01cf726b7c4e53001737288 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Thu, 30 Oct 2008 14:31:29 +0000 Subject: #i92516# prepare app specific print dialog elements --- sfx2/inc/sfx2/viewsh.hxx | 6 ++ sfx2/source/view/viewprn.cxx | 129 +++++++++++++++++++------------------------ sfx2/source/view/viewsh.cxx | 13 +++++ 3 files changed, 75 insertions(+), 73 deletions(-) (limited to 'sfx2') diff --git a/sfx2/inc/sfx2/viewsh.hxx b/sfx2/inc/sfx2/viewsh.hxx index 96c58a223387..a847d1ecaa11 100644 --- a/sfx2/inc/sfx2/viewsh.hxx +++ b/sfx2/inc/sfx2/viewsh.hxx @@ -35,6 +35,7 @@ #include "sal/types.h" #include #include +#include #include #include #include @@ -287,6 +288,11 @@ public: */ void SetCurrentDocument() const; + /** get an XRenderable instance that can render this docuement + */ + virtual com::sun::star::uno::Reference< com::sun::star::view::XRenderable > GetRenderable(); + + virtual void MarginChanged(); const Size& GetMargin() const; void SetMargin( const Size& ); diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 734673d75525..a36b6a9e74d9 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -80,22 +80,43 @@ TYPEINIT1(SfxPrintingHint, SfxHint); class SfxPrinterListener : public vcl::PrinterListener { - Reference< frame::XModel > mxModel; + Reference< frame::XModel > mxModel; + Reference< view::XRenderable > mxRenderable; + public: - SfxPrinterListener( const Reference< frame::XModel >& i_xModel ) - : mxModel( i_xModel ) - { - } + SfxPrinterListener( const Reference< frame::XModel>& i_xModel, const Reference< view::XRenderable >& i_xRender ); virtual ~SfxPrinterListener(); virtual int getPageCount() const; - virtual void getPageParameters( int i_nPage, JobSetup& o_rPageSetup, Size& o_rPageSize ) const; + virtual Sequence< beans::PropertyValue > getPageParameters( int i_nPage ) const; virtual void printPage( int i_nPage ) const; - virtual void setListeners(); // optional virtual void jobFinished(); // optional }; +SfxPrinterListener::SfxPrinterListener( const Reference< frame::XModel>& i_xModel, const Reference< view::XRenderable >& i_xRender ) + : mxModel( i_xModel ), mxRenderable( i_xRender ) +{ + // initialize extra ui options + if( mxRenderable.is() ) + { + Sequence< beans::PropertyValue > aRenderOptions( 1 ); + aRenderOptions[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ExtraPrintUIOptions" ) ); + Sequence< beans::PropertyValue > aRenderParms( mxRenderable->getRenderer( 0 , makeAny( mxModel ), aRenderOptions ) ); + int nProps = aRenderParms.getLength(); + for( int i = 0; i < nProps; i++ ) + { + if( aRenderParms[i].Name.equalsAscii( "ExtraPrintUIOptions" ) ) + { + Sequence< beans::PropertyValue > aUIProps; + aRenderParms[i].Value >>= aUIProps; + setUIOptions( aUIProps ); + break; + } + } + } +} + SfxPrinterListener::~SfxPrinterListener() { } @@ -104,93 +125,57 @@ int SfxPrinterListener::getPageCount() const { int nPages = 0; boost::shared_ptr pPrinter( getPrinter() ); - if( mxModel.is() && pPrinter ) + if( mxRenderable.is() && pPrinter ) { - Reference< view::XRenderable > xRenderable( mxModel, UNO_QUERY ); - if( xRenderable.is() ) - { - VCLXDevice* pXDevice = new VCLXDevice(); - pXDevice->SetOutputDevice( &(*pPrinter) ); + VCLXDevice* pXDevice = new VCLXDevice(); + pXDevice->SetOutputDevice( &(*pPrinter) ); - Sequence< beans::PropertyValue > aRenderOptions( 1 ); - aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); - aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); + Sequence< beans::PropertyValue > aRenderOptions( 1 ); + aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); + aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); - nPages = xRenderable->getRendererCount( makeAny( mxModel ), aRenderOptions ); - } + nPages = mxRenderable->getRendererCount( makeAny( mxModel ), getJobProperties( aRenderOptions ) ); } return nPages; } -void SfxPrinterListener::getPageParameters( int i_nPage, JobSetup& o_rPageSetup, Size& o_rPageSize ) const +Sequence< beans::PropertyValue > SfxPrinterListener::getPageParameters( int i_nPage ) const { - Size aPageSize; boost::shared_ptr pPrinter( getPrinter() ); + Sequence< beans::PropertyValue > aResult; - // FIXME: get page setup from writer - o_rPageSetup = pPrinter->GetJobSetup(); - - if( mxModel.is() && pPrinter ) + if( mxRenderable.is() && pPrinter ) { - Reference< view::XRenderable > xRenderable( mxModel, UNO_QUERY ); - if( xRenderable.is() ) - { - VCLXDevice* pXDevice = new VCLXDevice(); - pXDevice->SetOutputDevice( &(*pPrinter) ); + VCLXDevice* pXDevice = new VCLXDevice(); + pXDevice->SetOutputDevice( &(*pPrinter) ); - Sequence< beans::PropertyValue > aRenderOptions( 1 ); - aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); - aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); + Sequence< beans::PropertyValue > aRenderOptions( 1 ); + aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); + aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); - sal_Int32 nPages = xRenderable->getRendererCount( makeAny( mxModel ), aRenderOptions ); - - if( i_nPage < nPages ) - { - Sequence< beans::PropertyValue > aRenderProps( xRenderable->getRenderer( i_nPage, makeAny( mxModel ), aRenderOptions ) ); - - for( sal_Int32 nProperty = 0, nPropertyCount = aRenderProps.getLength(); nProperty < nPropertyCount; ++nProperty ) - { - if( aRenderProps[ nProperty ].Name == rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PageSize" ) ) ) - { - awt::Size aSize; - aRenderProps[ nProperty].Value >>= aSize; - aPageSize.Width() = aSize.Width; - aPageSize.Height() = aSize.Height; - } - } - } - } + Sequence< beans::PropertyValue > aJobOptions( getJobProperties( aRenderOptions ) ); + aResult = mxRenderable->getRenderer( i_nPage, makeAny( mxModel ), aJobOptions ); } - o_rPageSize = aPageSize; + return aResult; } void SfxPrinterListener::printPage( int i_nPage ) const { boost::shared_ptr pPrinter( getPrinter() ); - if( mxModel.is() && pPrinter ) + if( mxRenderable.is() && pPrinter ) { - Reference< view::XRenderable > xRenderable( mxModel, UNO_QUERY ); - if( xRenderable.is() ) - { - VCLXDevice* pXDevice = new VCLXDevice(); - pXDevice->SetOutputDevice( &(*pPrinter) ); + VCLXDevice* pXDevice = new VCLXDevice(); + pXDevice->SetOutputDevice( &(*pPrinter) ); - Sequence< beans::PropertyValue > aRenderOptions( 1 ); - aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); - aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); + Sequence< beans::PropertyValue > aRenderOptions( 1 ); + aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); + aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); - sal_Int32 nPages = xRenderable->getRendererCount( makeAny( mxModel ), aRenderOptions ); - - if( i_nPage < nPages ) - xRenderable->render( i_nPage, makeAny( mxModel ), aRenderOptions ); - } + Sequence< beans::PropertyValue > aJobOptions( getJobProperties( aRenderOptions ) ); + mxRenderable->render( i_nPage, makeAny( mxModel ), aJobOptions ); } } -void SfxPrinterListener::setListeners() -{ -} - void SfxPrinterListener::jobFinished() { } @@ -941,11 +926,9 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) case SID_PRINTDOC: case SID_PRINTDOCDIRECT: { - Reference< frame::XModel > xModel( GetObjectShell()->GetModel() ); - boost::shared_ptr pListener( new SfxPrinterListener( xModel ) ); + boost::shared_ptr pListener( new SfxPrinterListener( GetObjectShell()->GetModel(), GetRenderable() ) ); // FIXME: job setup - // FIXME: job properties - Printer::PrintJob( pListener, JobSetup(), com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet >() ); + Printer::PrintJob( pListener, JobSetup() ); } break; } diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index e93f60ac91eb..2cee48f74951 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -2072,3 +2072,16 @@ BOOL SfxViewShell::Escape() { return GetViewFrame()->GetBindings().Execute( SID_TERMINATE_INPLACEACTIVATION ); } + +Reference< view::XRenderable > SfxViewShell::GetRenderable() +{ + Reference< view::XRenderable >xRender; + SfxObjectShell* pObj = GetObjectShell(); + if( pObj ) + { + Reference< frame::XModel > xModel( pObj->GetModel() ); + if( xModel.is() ) + xRender = Reference< view::XRenderable >( xModel, UNO_QUERY ); + } + return xRender; +} -- cgit v1.2.3 From eb33f63659624b99dd8c222bdfb15ff24dcd09af Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Wed, 1 Apr 2009 11:58:13 +0000 Subject: #i92516# add: direct and api properties on print jobs --- sfx2/source/view/viewprn.cxx | 77 +++++++++++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 29 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 47fe1a022b74..902f1d7c0e26 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -82,9 +82,15 @@ class SfxPrinterListener : public vcl::PrinterListener { Reference< frame::XModel > mxModel; Reference< view::XRenderable > mxRenderable; + sal_Bool mbApi; + sal_Bool mbDirect; + Sequence< beans::PropertyValue > getMergedOptions() const; public: - SfxPrinterListener( const Reference< frame::XModel>& i_xModel, const Reference< view::XRenderable >& i_xRender ); + SfxPrinterListener( const Reference< frame::XModel>& i_xModel, + const Reference< view::XRenderable >& i_xRender, + sal_Bool i_bApi, sal_Bool i_bDirect + ); virtual ~SfxPrinterListener(); @@ -94,8 +100,14 @@ public: virtual void jobFinished(); // optional }; -SfxPrinterListener::SfxPrinterListener( const Reference< frame::XModel>& i_xModel, const Reference< view::XRenderable >& i_xRender ) - : mxModel( i_xModel ), mxRenderable( i_xRender ) +SfxPrinterListener::SfxPrinterListener( const Reference< frame::XModel>& i_xModel, + const Reference< view::XRenderable >& i_xRender, + sal_Bool i_bApi, sal_Bool i_bDirect + ) + : mxModel( i_xModel ) + , mxRenderable( i_xRender ) + , mbApi( i_bApi ) + , mbDirect( i_bDirect ) { // initialize extra ui options if( mxRenderable.is() ) @@ -121,20 +133,32 @@ SfxPrinterListener::~SfxPrinterListener() { } +Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const +{ + VCLXDevice* pXDevice = new VCLXDevice(); + boost::shared_ptr pPrinter( getPrinter() ); + pXDevice->SetOutputDevice( &(*pPrinter) ); + + Sequence< beans::PropertyValue > aRenderOptions( 3 ); + aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); + aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); + aRenderOptions[ 1 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsApi" ) ); + aRenderOptions[ 1 ].Value <<= mbApi; + aRenderOptions[ 2 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDirect" ) ); + aRenderOptions[ 2 ].Value <<= mbDirect; + + aRenderOptions = getJobProperties( aRenderOptions ); + return aRenderOptions; +} + int SfxPrinterListener::getPageCount() const { int nPages = 0; boost::shared_ptr pPrinter( getPrinter() ); if( mxRenderable.is() && pPrinter ) { - VCLXDevice* pXDevice = new VCLXDevice(); - pXDevice->SetOutputDevice( &(*pPrinter) ); - - Sequence< beans::PropertyValue > aRenderOptions( 1 ); - aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); - aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); - - nPages = mxRenderable->getRendererCount( makeAny( mxModel ), getJobProperties( aRenderOptions ) ); + Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); + nPages = mxRenderable->getRendererCount( makeAny( mxModel ), aJobOptions ); } return nPages; } @@ -146,14 +170,7 @@ Sequence< beans::PropertyValue > SfxPrinterListener::getPageParameters( int i_nP if( mxRenderable.is() && pPrinter ) { - VCLXDevice* pXDevice = new VCLXDevice(); - pXDevice->SetOutputDevice( &(*pPrinter) ); - - Sequence< beans::PropertyValue > aRenderOptions( 1 ); - aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); - aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); - - Sequence< beans::PropertyValue > aJobOptions( getJobProperties( aRenderOptions ) ); + Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); aResult = mxRenderable->getRenderer( i_nPage, makeAny( mxModel ), aJobOptions ); } return aResult; @@ -164,14 +181,7 @@ void SfxPrinterListener::printPage( int i_nPage ) const boost::shared_ptr pPrinter( getPrinter() ); if( mxRenderable.is() && pPrinter ) { - VCLXDevice* pXDevice = new VCLXDevice(); - pXDevice->SetOutputDevice( &(*pPrinter) ); - - Sequence< beans::PropertyValue > aRenderOptions( 1 ); - aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); - aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); - - Sequence< beans::PropertyValue > aJobOptions( getJobProperties( aRenderOptions ) ); + Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); mxRenderable->render( i_nPage, makeAny( mxModel ), aJobOptions ); } } @@ -931,9 +941,18 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) case SID_PRINTDOC: case SID_PRINTDOCDIRECT: { - boost::shared_ptr pListener( new SfxPrinterListener( GetObjectShell()->GetModel(), GetRenderable() ) ); + boost::shared_ptr pListener( new SfxPrinterListener( GetObjectShell()->GetModel(), + GetRenderable(), + bIsAPI, + nId == SID_PRINTDOCDIRECT + ) ); // FIXME: job setup - Printer::PrintJob( pListener, JobSetup() ); + JobSetup aJobSetup; + if( nId == SID_PRINTDOCDIRECT ) + aJobSetup.SetValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsQuickJob" ) ), + String( RTL_CONSTASCII_USTRINGPARAM( "true" ) ) ); + + Printer::PrintJob( pListener, aJobSetup ); } break; } -- cgit v1.2.3 From 8bb4961b99dbc549df70f6969a6a62b5854f5e20 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Mon, 20 Apr 2009 16:57:13 +0000 Subject: CWS-TOOLING: rebase CWS printerpullpages to trunk@270723 (milestone: DEV300:m46) --- avmedia/source/quicktime/player.cxx | 18 +- avmedia/source/quicktime/player.hxx | 3 +- avmedia/source/quicktime/window.cxx | 49 +- avmedia/source/quicktime/window.hxx | 9 +- basic/source/app/brkpnts.cxx | 8 +- basic/source/app/msgedit.cxx | 37 + basic/source/app/msgedit.hxx | 2 + desktop/source/deployment/gui/dp_gui.hrc | 2 +- desktop/source/deployment/gui/dp_gui_dialog.src | 10 +- desktop/source/deployment/gui/dp_gui_dialog2.cxx | 175 +- desktop/source/deployment/gui/dp_gui_dialog2.hxx | 2 +- desktop/util/makefile.mk | 73 +- desktop/win32/source/setup/makefile.mk | 2 +- desktop/win32/source/setup/setup.cpp | 106 +- desktop/win32/source/setup/setup.hxx | 4 +- desktop/win32/source/setup/setup_main.cxx | 6 +- .../processor3d/defaultprocessor3d.hxx | 7 + .../source/primitive2d/textlayoutdevice.cxx | 3 +- drawinglayer/source/processor2d/vclprocessor2d.cxx | 93 +- .../source/processor3d/zbufferprocessor3d.cxx | 47 +- formula/source/ui/dlg/funcutl.cxx | 8 +- fpicker/source/office/iodlgimp.cxx | 38 - fpicker/source/office/iodlgimp.hxx | 4 - .../source/win32/filepicker/WinFileOpenImpl.cxx | 2 +- framework/inc/classes/fwktabwindow.hxx | 1 + .../accelerators/acceleratorconfiguration.cxx | 14 +- .../classes/actiontriggerseparatorpropertyset.cxx | 2 +- framework/source/classes/fwktabwindow.cxx | 33 +- framework/source/helper/titlehelper.cxx | 8 +- officecfg/registry/data/org/openoffice/Setup.xcu | 10 - readlicense_oo/html/THIRDPARTYLICENSEREADME.html | 15050 ++++++++++++------- scripting/source/pyprov/pythonscript.py | 125 +- sfx2/source/appl/workwin.cxx | 2 +- sfx2/source/dialog/templdlg.cxx | 6 + sfx2/source/doc/objuno.cxx | 2 + svx/inc/svx/optimprove.hxx | 13 +- svx/source/dialog/SpellDialog.cxx | 4 +- svx/source/dialog/dlgfact.cxx | 11 +- svx/source/dialog/hangulhanja.cxx | 4 +- svx/source/dialog/makefile.mk | 2 +- svx/source/dialog/optimprove.cxx | 3 + svx/source/dialog/swpossizetabpage.cxx | 8 +- svx/source/dialog/treeopt.cxx | 43 +- svx/source/editeng/impedit3.cxx | 14 +- svx/source/form/fmctrler.cxx | 2 +- svx/source/form/fmtextcontrolshell.cxx | 21 +- svx/source/svdraw/svdotextdecomposition.cxx | 11 +- sysui/desktop/menus/calc.desktop | 2 +- sysui/desktop/solaris/copyright | 2 +- sysui/desktop/solaris/makefile.mk | 6 +- sysui/desktop/solaris/pkginfo | 2 +- xmloff/source/chart/SchXMLTools.cxx | 13 +- 52 files changed, 10145 insertions(+), 5977 deletions(-) (limited to 'sfx2') diff --git a/avmedia/source/quicktime/player.cxx b/avmedia/source/quicktime/player.cxx index e99c51f9217f..e8289570b5ae 100644 --- a/avmedia/source/quicktime/player.cxx +++ b/avmedia/source/quicktime/player.cxx @@ -75,7 +75,6 @@ namespace avmedia { namespace quicktime { Player::Player( const uno::Reference< lang::XMultiServiceFactory >& rxMgr ) : mxMgr( rxMgr ), - mpMovieView( nil ), mpMovie( nil ), /* GST mbFakeVideo (sal_False ), @@ -114,12 +113,6 @@ Player::~Player() { if( mbInitialized ) { - if( mpMovieView ) - { - [mpMovieView setMovie:nil]; - mpMovieView = nil; - } - if( mpMovie ) { [mpMovie release]; @@ -439,15 +432,12 @@ uno::Reference< ::media::XPlayerWindow > SAL_CALL Player::createPlayerWindow( co if( aSize.Width > 0 && aSize.Height > 0 ) { - ::avmedia::quicktime::Window* pWindow = new ::avmedia::quicktime::Window( mxMgr, *this ); - xRet = pWindow; - sal_IntPtr nPtr = NULL; aArguments[0] >>= nPtr; - mpMovieView = reinterpret_cast< QTMovieView * >(nPtr); - [mpMovieView setMovie: mpMovie]; - [mpMovieView setControllerVisible: NO]; - [mpMovieView setFrameSize: nsSize ]; + NSView* pParentView = reinterpret_cast< NSView * >(nPtr); + + ::avmedia::quicktime::Window* pWindow = new ::avmedia::quicktime::Window( mxMgr, *this, pParentView ); + xRet = pWindow; } return xRet; diff --git a/avmedia/source/quicktime/player.hxx b/avmedia/source/quicktime/player.hxx index 5a2741f034b7..b7cab51005f4 100644 --- a/avmedia/source/quicktime/player.hxx +++ b/avmedia/source/quicktime/player.hxx @@ -83,12 +83,13 @@ public: virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); + QTMovie* getMovie() { return mpMovie; } + private: ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMgr; ::rtl::OUString maURL; - QTMovieView *mpMovieView; // the view containing the movie object, output target and controller QTMovie *mpMovie; // the Movie object /* GST sal_Bool mbFakeVideo; diff --git a/avmedia/source/quicktime/window.cxx b/avmedia/source/quicktime/window.cxx index 367d11b0599d..6c8121d75950 100644 --- a/avmedia/source/quicktime/window.cxx +++ b/avmedia/source/quicktime/window.cxx @@ -28,7 +28,8 @@ * ************************************************************************/ -#include +#include +#include #include "window.hxx" #include "player.hxx" @@ -65,16 +66,33 @@ static ::osl::Mutex& ImplGetOwnStaticMutex() // ------------------------------------------------------------------------------ -Window::Window( const uno::Reference< lang::XMultiServiceFactory >& rxMgr, Player& rPlayer ) : - mxMgr( rxMgr ), +Window::Window( const uno::Reference< lang::XMultiServiceFactory >& i_rxMgr, Player& i_rPlayer, NSView* i_pParentView ) : + mxMgr( i_rxMgr ), maListeners( maMutex ), meZoomLevel( media::ZoomLevel_NOT_AVAILABLE ), - mrPlayer( rPlayer ), - mnPointerType( awt::SystemPointer::ARROW ) + mrPlayer( i_rPlayer ), + mnPointerType( awt::SystemPointer::ARROW ), + mpParentView( i_pParentView ), + mpMovieView( nil ) { ::osl::MutexGuard aGuard( ImplGetOwnStaticMutex() ); + + if( mpParentView ) // sanity check + { + + NSRect aViewRect = [mpParentView frame]; + aViewRect.origin.x = aViewRect.origin.y = 0; + mpMovieView = [[QTMovieView alloc] initWithFrame: aViewRect]; + [mpMovieView setMovie: mrPlayer.getMovie() ]; + [mpMovieView setControllerVisible: NO]; + [mpMovieView setPreservesAspectRatio: YES]; + [mpMovieView setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable]; + [mpParentView addSubview: mpMovieView]; + [mpParentView setAutoresizesSubviews: YES]; + } + OSL_TRACE ("Window::Window"); } @@ -82,6 +100,13 @@ Window::Window( const uno::Reference< lang::XMultiServiceFactory >& rxMgr, Playe Window::~Window() { + if( mpMovieView ) + { + [mpMovieView removeFromSuperview]; + [mpMovieView setMovie:nil]; + [mpMovieView release]; + mpMovieView = nil; + } } bool Window::create( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) @@ -128,7 +153,14 @@ void SAL_CALL Window::setPointerType( sal_Int32 nPointerType ) void SAL_CALL Window::setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, sal_Int16 Flags ) throw (uno::RuntimeException) { - ; + if( mpParentView && mpMovieView ) + { + NSRect aRect = [mpMovieView frame]; + if( (Flags & awt::PosSize::WIDTH) ) + aRect.size.width = Width; + if( (Flags & awt::PosSize::HEIGHT) ) + aRect.size.height = Height; + } } // ------------------------------------------------------------------------------ @@ -138,9 +170,10 @@ awt::Rectangle SAL_CALL Window::getPosSize() { awt::Rectangle aRet; + NSRect aRect = [mpMovieView frame]; aRet.X = aRet.Y = 0; - aRet.Width = 200; - aRet.Height = 100; + aRet.Width = aRect.size.width; + aRet.Height = aRect.size.height; return aRet; } diff --git a/avmedia/source/quicktime/window.hxx b/avmedia/source/quicktime/window.hxx index cb0699ee15f7..1c23a88754bb 100644 --- a/avmedia/source/quicktime/window.hxx +++ b/avmedia/source/quicktime/window.hxx @@ -51,8 +51,10 @@ class Window : public ::cppu::WeakImplHelper2 < ::com::sun::star::media::XPlayer { public: - Window( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxMgr, - Player& rPlayer ); + Window( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& i_rxMgr, + Player& i_rPlayer, + NSView* i_pParentView + ); ~Window(); bool create( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ); @@ -104,6 +106,9 @@ private: Player& mrPlayer; int mnPointerType; + NSView* mpParentView; // parent view for our own private movie view + QTMovieView* mpMovieView; // the view containing the movie object, output target and controller + void ImplLayoutVideoWindow(); }; diff --git a/basic/source/app/brkpnts.cxx b/basic/source/app/brkpnts.cxx index 765d10ff0780..cd1e4d6da19c 100644 --- a/basic/source/app/brkpnts.cxx +++ b/basic/source/app/brkpnts.cxx @@ -111,7 +111,7 @@ void BreakpointWindow::SetBPsInModule() { pModule->SetBP( (USHORT)pBrk->nLine ); #if OSL_DEBUG_LEVEL > 1 - DBG_ASSERT( !pModule->IsCompiled() || pModule->IsBP( (USHORT)pBrk->nLine ), "Brechpunkt wurde nicht gesetzt" ) + DBG_ASSERT( !pModule->IsCompiled() || pModule->IsBP( (USHORT)pBrk->nLine ), "Brechpunkt wurde nicht gesetzt" ); #endif pBrk = Next(); } @@ -152,7 +152,7 @@ void BreakpointWindow::InsertBreakpoint( USHORT nLine ) if ( pModule->SetBP( nLine ) ) { #if OSL_DEBUG_LEVEL > 1 - DBG_ASSERT( !pModule->IsCompiled() || pModule->IsBP( nLine ), "Brechpunkt wurde nicht gesetzt" ) + DBG_ASSERT( !pModule->IsCompiled() || pModule->IsBP( nLine ), "Brechpunkt wurde nicht gesetzt" ); #endif if ( StarBASIC::IsRunning() ) { @@ -165,7 +165,7 @@ void BreakpointWindow::InsertBreakpoint( USHORT nLine ) } } #if OSL_DEBUG_LEVEL > 1 - DBG_ASSERT( !pModule->IsCompiled() || pModule->IsBP( nLine ), "Brechpunkt wurde nicht gesetzt" ) + DBG_ASSERT( !pModule->IsCompiled() || pModule->IsBP( nLine ), "Brechpunkt wurde nicht gesetzt" ); #endif } @@ -282,7 +282,7 @@ void BreakpointWindow::Paint( const Rectangle& ) while ( pBrk ) { #if OSL_DEBUG_LEVEL > 1 - DBG_ASSERT( !pModule->IsCompiled() || pModule->IsBP( pBrk->nLine ), "Brechpunkt wurde nicht gesetzt" ) + DBG_ASSERT( !pModule->IsCompiled() || pModule->IsBP( pBrk->nLine ), "Brechpunkt wurde nicht gesetzt" ); #endif ULONG nLine = pBrk->nLine-1; ULONG nY = nLine*nLineHeight - nCurYOffset; diff --git a/basic/source/app/msgedit.cxx b/basic/source/app/msgedit.cxx index 91b3c2e5ea52..8420977820f1 100644 --- a/basic/source/app/msgedit.cxx +++ b/basic/source/app/msgedit.cxx @@ -37,6 +37,7 @@ Version 2 changed order of entries(New Entries at the end) Version 3 Changed Charset from CHARSET_IBMPC to RTL_TEXTENCODING_UTF8 *************************************************************************/ +#include #include #include #ifndef _MSGBOX_HXX //autogen @@ -61,6 +62,8 @@ Version 3 Changed Charset from CHARSET_IBMPC to RTL_TEXTENCODING_UTF8 USHORT MsgEdit::nMaxLogLen = 0; BOOL MsgEdit::bLimitLogLen = FALSE; +BOOL MsgEdit::bPrintLogToStdout = FALSE; +BOOL MsgEdit::bPrintLogToStdoutSet = FALSE; #define WARNING_PREFIX String( SttResId( S_WARNING_PREFIX ) ) #define VERSION_STRING CUniString("File Format Version: ") @@ -85,6 +88,20 @@ MsgEdit::MsgEdit( AppError* pParent, BasicFrame *pBF, const WinBits& aBits ) aEditTree.SetSelectionMode( MULTIPLE_SELECTION ); if ( aEditTree.GetModel()->GetSortMode() != SortNone ) aEditTree.GetModel()->SetSortMode( SortNone ); + + if ( !bPrintLogToStdoutSet ) + { + bPrintLogToStdoutSet = TRUE; + for ( USHORT i = 0 ; i < Application::GetCommandLineParamCount() ; i++ ) + { + if ( Application::GetCommandLineParam( i ).Copy(0,9).CompareIgnoreCaseToAscii("-printlog") == COMPARE_EQUAL + #ifndef UNX + || Application::GetCommandLineParam( i ).Copy(0,9).CompareIgnoreCaseToAscii("/printlog") == COMPARE_EQUAL + #endif + ) + bPrintLogToStdout = TRUE; + } + } } MsgEdit::~MsgEdit() @@ -177,6 +194,7 @@ void MsgEdit::AddAnyMsg( TTLogMsg *LogMsg ) } String aLogMsg = Impl_MakeSaveText( LogMsg->aDebugData ).AppendAscii("\n"); + if( aStrm.IsOpen() ) { aLogMsg.ConvertLineEnd(LINEEND_CRLF); @@ -186,8 +204,27 @@ void MsgEdit::AddAnyMsg( TTLogMsg *LogMsg ) } if ( !bFileWasChanged ) pAppError->UpdateFileInfo( HAS_BEEN_LOADED ); + + + // now write to stdout + if ( bPrintLogToStdout ) + { + String aPrintMsg, aOriginalMsg; + + aOriginalMsg = LogMsg->aDebugData.aMsg; + // converting to human readable string for adding errors to list in testobject + LogMsg->aDebugData.aMsg = pBasicFrame->GenRealString( LogMsg->aDebugData.aMsg ); + + aPrintMsg = Impl_MakeSaveText( LogMsg->aDebugData ).AppendAscii("\n"); + + // restore Original Msg + LogMsg->aDebugData.aMsg = aOriginalMsg; + + printf( ByteString( aPrintMsg, RTL_TEXTENCODING_UTF8 ).GetBuffer() ); + } } } + // converting to human readable string for adding errors to list in testobject LogMsg->aDebugData.aMsg = pBasicFrame->GenRealString( LogMsg->aDebugData.aMsg ); } diff --git a/basic/source/app/msgedit.hxx b/basic/source/app/msgedit.hxx index 0bc86e9d3b9e..bca0eef72929 100644 --- a/basic/source/app/msgedit.hxx +++ b/basic/source/app/msgedit.hxx @@ -94,6 +94,8 @@ class MsgEdit : public DataEdit static USHORT nMaxLogLen; static BOOL bLimitLogLen; + static BOOL bPrintLogToStdout; + static BOOL bPrintLogToStdoutSet; // has it been initialized yet public: MsgEdit( AppError*, BasicFrame *pBF, const WinBits& ); ~MsgEdit(); diff --git a/desktop/source/deployment/gui/dp_gui.hrc b/desktop/source/deployment/gui/dp_gui.hrc index a85b764da3e9..ada1b58b8de3 100644 --- a/desktop/source/deployment/gui/dp_gui.hrc +++ b/desktop/source/deployment/gui/dp_gui.hrc @@ -204,7 +204,7 @@ #define RID_STR_UNSUPPORTED_PLATFORM (RID_DEPLOYMENT_GUI_START+101) #define RID_WARNINGBOX_UPDATE_SHARED_EXTENSION (RID_DEPLOYMENT_GUI_START+102) -#define RID_WARNINGBOX_ADD_SHARED_EXTENSION (RID_DEPLOYMENT_GUI_START+103) +#define RID_WARNINGBOX_REMOVE_EXTENSION (RID_DEPLOYMENT_GUI_START+103) #define RID_WARNINGBOX_REMOVE_SHARED_EXTENSION (RID_DEPLOYMENT_GUI_START+104) #define RID_WARNINGBOX_ENABLE_SHARED_EXTENSION (RID_DEPLOYMENT_GUI_START+105) #define RID_WARNINGBOX_DISABLE_SHARED_EXTENSION (RID_DEPLOYMENT_GUI_START+106) diff --git a/desktop/source/deployment/gui/dp_gui_dialog.src b/desktop/source/deployment/gui/dp_gui_dialog.src index 96f49555190d..d3730a12536e 100644 --- a/desktop/source/deployment/gui/dp_gui_dialog.src +++ b/desktop/source/deployment/gui/dp_gui_dialog.src @@ -486,14 +486,12 @@ WarningBox RID_WARNINGBOX_INSTALL_EXTENSION { "Click \'Cancel\' to stop the installation."; }; -WARNINGBOX RID_WARNINGBOX_ADD_SHARED_EXTENSION -{ +WarningBox RID_WARNINGBOX_REMOVE_EXTENSION { Buttons = WB_OK_CANCEL; DefButton = WB_DEF_CANCEL; - Message[en-US] = "Make sure that no further users are working with the same " - "%PRODUCTNAME, when changing shared extensions in a multi user environment.\n" - "Click \'OK\' to install the extension.\n" - "Click \'Cancel\' to stop the installation."; + Message[en-US] = "You are about to remove the extension \'%NAME\'.\n" + "Click \'OK\' to remove the extension.\n" + "Click \'Cancel\' to stop removing the extension."; }; WARNINGBOX RID_WARNINGBOX_REMOVE_SHARED_EXTENSION diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.cxx b/desktop/source/deployment/gui/dp_gui_dialog2.cxx index 63c6bcc32388..47bcd507cd90 100644 --- a/desktop/source/deployment/gui/dp_gui_dialog2.cxx +++ b/desktop/source/deployment/gui/dp_gui_dialog2.cxx @@ -55,6 +55,7 @@ #include "comphelper/anytostring.hxx" #include "cppuhelper/exc_hlp.hxx" +#include "cppuhelper/implbase1.hxx" #include "comphelper/processfactory.hxx" #include "ucbhelper/content.hxx" @@ -229,7 +230,8 @@ enum MENU_COMMAND CMD_UPDATE }; -class ExtensionBox_Impl : public ::svt::IExtensionListBox +class ExtensionBox_Impl : public ::svt::IExtensionListBox, + public ::cppu::WeakImplHelper1< ::com::sun::star::lang::XEventListener > { bool m_bHasScrollBar; bool m_bHasActive; @@ -317,7 +319,6 @@ public: void enableButtons( bool bEnable ); void updateEntry( const uno::Reference< deployment::XPackage > &xPackage ); - void removeEntry( const uno::Reference< deployment::XPackage > &xPackage ); void prepareChecking( const uno::Reference< deployment::XPackageManager > &xPackageMgr ); void checkEntries(); @@ -373,7 +374,11 @@ public: 2. one extension can be installed as user and shared extension. */ virtual void select( const OUString & sName ); + //=================================================================================== + // XEventListener + virtual void SAL_CALL disposing( ::com::sun::star::lang::EventObject const & evt ) + throw (::com::sun::star::uno::RuntimeException); }; //------------------------------------------------------------------------------ @@ -461,6 +466,13 @@ ExtensionBox_Impl::ExtensionBox_Impl( ExtMgrDialog* pParent, TheExtensionManager //------------------------------------------------------------------------------ ExtensionBox_Impl::~ExtensionBox_Impl() { + typedef std::vector< TEntry_Impl >::iterator ITER; + +// for ( ITER iIndex = m_vEntries.begin(); iIndex < m_vEntries.end(); ++iIndex ) +// (*iIndex)->m_xPackage->removeEventListener( this ); + + m_vEntries.clear(); + delete m_pOptionsBtn; delete m_pEnableBtn; delete m_pRemoveBtn; @@ -1249,41 +1261,6 @@ bool ExtensionBox_Impl::FindEntryPos( const TEntry_Impl pEntry, const long nStar } } -//------------------------------------------------------------------------------ -void ExtensionBox_Impl::removeEntry( const uno::Reference< deployment::XPackage > &xPackage ) -{ - ::osl::ClearableMutexGuard aGuard( m_entriesMutex ); - typedef std::vector< TEntry_Impl >::iterator ITER; - - for ( ITER iIndex = m_vEntries.begin(); iIndex < m_vEntries.end(); ++iIndex ) - { - if ( (*iIndex)->m_xPackage == xPackage ) - { - long nPos = iIndex - m_vEntries.begin(); - - m_vEntries.erase( iIndex ); - - if ( IsReallyVisible() ) - Invalidate(); - - if ( m_bHasActive ) - { - if ( nPos < m_nActive ) - m_nActive -= 1; - else if ( ( nPos == m_nActive ) && - ( nPos == (long) m_vEntries.size() ) ) - m_nActive -= 1; - - m_bHasActive = false; - //clear before calling out of this method - aGuard.clear(); - selectEntry( m_nActive ); - } - break; - } - } -} - //------------------------------------------------------------------------------ long ExtensionBox_Impl::addEntry( const uno::Reference< deployment::XPackage > &xPackage, const uno::Reference< deployment::XPackageManager > &xPackageManager ) @@ -1292,6 +1269,7 @@ long ExtensionBox_Impl::addEntry( const uno::Reference< deployment::XPackage > & PackageState eState = m_pManager->getPackageState( xPackage ); TEntry_Impl pEntry( new Entry_Impl( xPackage, xPackageManager, eState ) ); + xPackage->addEventListener( this ); ::osl::ClearableMutexGuard guard(m_entriesMutex); if ( m_vEntries.empty() ) @@ -1377,14 +1355,12 @@ void ExtensionBox_Impl::checkEntries() long nNewPos = -1; long nPos = 0; bool bNeedsUpdate = false; - bool bReselectActive = false; ::osl::ClearableMutexGuard guard(m_entriesMutex); typedef std::vector< TEntry_Impl >::iterator ITER; ITER iIndex = m_vEntries.begin(); while ( iIndex < m_vEntries.end() ) { - BOOL bNext = true; if ( (*iIndex)->m_bChecked == false ) { bNeedsUpdate = true; @@ -1396,26 +1372,8 @@ void ExtensionBox_Impl::checkEntries() if ( nPos <= m_nActive ) m_nActive += 1; } - else - { - //We reach this point when we updated an extension. - iIndex = m_vEntries.erase( iIndex ); - bNext = false; - - if ( m_bHasActive ) - { - if ( nPos < m_nActive ) - m_nActive -= 1; - else if ( nPos == m_nActive ) - { - m_bHasActive = false; - bReselectActive = true; - } - } - } } - if ( bNext ) - iIndex++; + iIndex++; } guard.clear(); @@ -1423,15 +1381,6 @@ void ExtensionBox_Impl::checkEntries() if ( nNewPos != - 1) selectEntry( nNewPos ); - else if ( bReselectActive ) - { - { - ::osl::MutexGuard guard2(m_entriesMutex); - if ( m_nActive >= (long) m_vEntries.size() ) - m_nActive = (long) m_vEntries.size() - 1; - } - selectEntry( m_nActive ); - } if ( bNeedsUpdate ) { @@ -1446,30 +1395,6 @@ bool ExtensionBox_Impl::isHCMode() return (bool)GetDisplayBackground().GetColor().IsDark(); } -//------------------------------------------------------------------------------ -/*void ExtensionBox_Impl::DataChanged( DataChangedEvent const & evt ) -{ - SvTreeListBox::DataChanged( evt ); - if (evt.GetType() == DATACHANGED_SETTINGS && - (evt.GetFlags() & SETTINGS_STYLE) != 0 && - m_hiContrastMode != (bool)GetDisplayBackground().GetColor().IsDark()) - { - m_hiContrastMode = ! m_hiContrastMode; - - // Update all images as we changed from/to high contrast mode: - for ( SvLBoxEntry * entry = First(); entry != 0; entry = Next(entry) ) - { - NodeImpl * node = NodeImpl::get(entry); - Image img( node->getIcon() ); - SetExpandedEntryBmp( entry, img ); - SetCollapsedEntryBmp( entry, img ); - } - - // force redraw: - Invalidate(); - } -} -*/ //------------------------------------------------------------------------------ void ExtensionBox_Impl::enableButtons( bool bEnable ) { @@ -1488,6 +1413,48 @@ void ExtensionBox_Impl::enableButtons( bool bEnable ) } } +//------------------------------------------------------------------------------ +// XEventListener +void ExtensionBox_Impl::disposing( lang::EventObject const & rEvt ) + throw ( uno::RuntimeException ) +{ + uno::Reference< deployment::XPackage > xPackage( rEvt.Source, uno::UNO_QUERY ); + + if ( xPackage.is() ) + { + ::osl::ClearableMutexGuard aGuard( m_entriesMutex ); + typedef std::vector< TEntry_Impl >::iterator ITER; + + for ( ITER iIndex = m_vEntries.begin(); iIndex < m_vEntries.end(); ++iIndex ) + { + if ( (*iIndex)->m_xPackage == xPackage ) + { + long nPos = iIndex - m_vEntries.begin(); + + m_vEntries.erase( iIndex ); + + if ( IsReallyVisible() ) + Invalidate(); + + if ( m_bHasActive ) + { + if ( nPos < m_nActive ) + m_nActive -= 1; + else if ( ( nPos == m_nActive ) && + ( nPos == (long) m_vEntries.size() ) ) + m_nActive -= 1; + + m_bHasActive = false; + //clear before calling out of this method + aGuard.clear(); + selectEntry( m_nActive ); + } + break; + } + } + } +} + // ----------------------------------------------------------------------- IMPL_LINK( ExtensionBox_Impl, ScrollHdl, ScrollBar*, pScrBar ) { @@ -1793,6 +1760,19 @@ bool ExtMgrDialog::installExtensionWarn( const OUString &rExtensionName ) const return ( RET_OK == aInfo.Execute() ); } +//------------------------------------------------------------------------------ +bool ExtMgrDialog::removeExtensionWarn( const OUString &rExtensionName ) const +{ + const ::vos::OGuard guard( Application::GetSolarMutex() ); + WarningBox aInfo( const_cast< ExtMgrDialog* >(this), getResId( RID_WARNINGBOX_REMOVE_EXTENSION ) ); + + String sText( aInfo.GetMessText() ); + sText.SearchAndReplaceAllAscii( "%NAME", rExtensionName ); + aInfo.SetMessText( sText ); + + return ( RET_OK == aInfo.Execute() ); +} + //------------------------------------------------------------------------------ bool ExtMgrDialog::enablePackage( const uno::Reference< deployment::XPackageManager > &xPackageManager, const uno::Reference< deployment::XPackage > &xPackage, @@ -1824,6 +1804,12 @@ bool ExtMgrDialog::removePackage( const uno::Reference< deployment::XPackageMana if ( !xPackageManager.is() || !xPackage.is() ) return false; + if ( !IsSharedPkgMgr( xPackageManager ) || m_bDeleteWarning ) + { + if ( ! removeExtensionWarn( xPackage->getDisplayName() ) ) + return false; + } + if ( ! continueOnSharedExtension( xPackageManager, RID_WARNINGBOX_REMOVE_SHARED_EXTENSION, m_bDeleteWarning ) ) return false; @@ -2014,13 +2000,6 @@ void ExtMgrDialog::updatePackageInfo( const uno::Reference< deployment::XPackage m_pExtensionBox->updateEntry( xPackage ); } -//------------------------------------------------------------------------------ -void ExtMgrDialog::removeEntry( const uno::Reference< deployment::XPackage > &xPackage ) -{ - const vos::OGuard aGuard( Application::GetSolarMutex() ); - m_pExtensionBox->removeEntry( xPackage ); -} - // ----------------------------------------------------------------------- IMPL_LINK( ExtMgrDialog, HandleAddBtn, void*, EMPTYARG ) { diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.hxx b/desktop/source/deployment/gui/dp_gui_dialog2.hxx index 2deaad268ec3..bab8d52828a9 100644 --- a/desktop/source/deployment/gui/dp_gui_dialog2.hxx +++ b/desktop/source/deployment/gui/dp_gui_dialog2.hxx @@ -91,6 +91,7 @@ class ExtMgrDialog : public ModelessDialog bool continueOnSharedExtension( const ::com::sun::star::uno::Reference< ::com::sun::star::deployment::XPackageManager > &, const USHORT nResID, bool &bHadWarning ) const; + bool removeExtensionWarn( const ::rtl::OUString &rExtensionTitle ) const; DECL_DLLPRIVATE_LINK( HandleAddBtn, void * ); DECL_DLLPRIVATE_LINK( HandleUpdateBtn, void * ); @@ -126,7 +127,6 @@ public: const ::com::sun::star::uno::Reference< ::com::sun::star::task::XAbortChannel > &xAbortChannel); void updateProgress( const long nProgress ); void updatePackageInfo( const ::com::sun::star::uno::Reference< ::com::sun::star::deployment::XPackage > &xPackage ); - void removeEntry( const ::com::sun::star::uno::Reference< ::com::sun::star::deployment::XPackage > &xPackage ); void prepareChecking( const ::com::sun::star::uno::Reference< ::com::sun::star::deployment::XPackageManager > &xPackageManager ); void checkEntries(); diff --git a/desktop/util/makefile.mk b/desktop/util/makefile.mk index 4365c6d8fcce..b04162cf0ad1 100644 --- a/desktop/util/makefile.mk +++ b/desktop/util/makefile.mk @@ -83,7 +83,42 @@ APP1TARGET=so$/$(TARGET) APP1NOSAL=TRUE APP1RPATH=BRAND APP1OBJS=$(OBJ)$/copyright_ascii_sun.obj $(OBJ)$/main.obj -APP1STDLIBS = $(SALLIB) $(SOFFICELIB) +APP1STDLIBS = \ + $(SALLIB) \ + $(SOFFICELIB) \ + $(COMPHELPERLIB) \ + $(CPPUHELPERLIB) \ + $(CPPULIB) \ + $(I18NISOLANGLIB) \ + $(SALLIB) \ + $(SFXLIB) \ + $(SVLLIB) \ + $(SVTOOLLIB) \ + $(TKLIB) \ + $(TOOLSLIB) \ + $(UCBHELPERLIB) \ + $(UNOTOOLSLIB) \ + $(VCLLIB) \ + $(FWELIB) \ + $(BASICLIB) \ + $(XMLSCRIPTLIB) \ + $(SALHELPERLIB) \ + $(SOTLIB) \ + $(SAXLIB) \ + $(FWILIB) \ + $(ICUUCLIB) \ + $(SJLIB) \ + $(I18NUTILLIB) \ + $(ICULIB) \ + $(JVMFWKLIB) \ + $(BASEGFXLIB) \ + $(ICUDATALIB) \ + $(ICULELIB) \ + $(JVMACCESSLIB) \ + $(SALHELPERLIB) \ + $(VOSLIB) + + .IF "$(GUI)" == "UNX" .IF "$(OS)" == "LINUX" || "$(OS)" == "FREEBSD" APP1STDLIBS+= -lXext -lSM -lICE @@ -112,7 +147,41 @@ APP5TARGET=soffice APP5NOSAL=TRUE APP5RPATH=BRAND APP5OBJS=$(OBJ)$/copyright_ascii_ooo.obj $(OBJ)$/main.obj -APP5STDLIBS = $(SALLIB) $(SOFFICELIB) +APP5STDLIBS = \ + $(SALLIB) \ + $(SOFFICELIB) \ + $(COMPHELPERLIB) \ + $(CPPUHELPERLIB) \ + $(CPPULIB) \ + $(I18NISOLANGLIB) \ + $(SALLIB) \ + $(SFXLIB) \ + $(SVLLIB) \ + $(SVTOOLLIB) \ + $(TKLIB) \ + $(TOOLSLIB) \ + $(UCBHELPERLIB) \ + $(UNOTOOLSLIB) \ + $(VCLLIB) \ + $(FWELIB) \ + $(BASICLIB) \ + $(XMLSCRIPTLIB) \ + $(SALHELPERLIB) \ + $(SOTLIB) \ + $(SAXLIB) \ + $(FWILIB) \ + $(ICUUCLIB) \ + $(SJLIB) \ + $(I18NUTILLIB) \ + $(ICULIB) \ + $(JVMFWKLIB) \ + $(BASEGFXLIB) \ + $(ICUDATALIB) \ + $(ICULELIB) \ + $(JVMACCESSLIB) \ + $(SALHELPERLIB) \ + $(VOSLIB) + .IF "$(OS)" == "LINUX" APP5STDLIBS+= -lXext -lSM -lICE .ENDIF # LINUX diff --git a/desktop/win32/source/setup/makefile.mk b/desktop/win32/source/setup/makefile.mk index 5c8f471f0938..1453e896679f 100644 --- a/desktop/win32/source/setup/makefile.mk +++ b/desktop/win32/source/setup/makefile.mk @@ -75,7 +75,7 @@ LIBSALCPPRT= $(0) APP1NOSAL= TRUE APP1TARGET= loader2 -APP1STDLIBS= $(GDI32LIB) $(ADVAPI32LIB) $(SHELL32LIB) +APP1STDLIBS= $(GDI32LIB) $(ADVAPI32LIB) $(SHELL32LIB) $(MSILIB) .IF "$(COM)"!="GCC" APP1STDLIBS+= libcmt.lib .ENDIF diff --git a/desktop/win32/source/setup/setup.cpp b/desktop/win32/source/setup/setup.cpp index 2782a8de3025..d0619ab11963 100644 --- a/desktop/win32/source/setup/setup.cpp +++ b/desktop/win32/source/setup/setup.cpp @@ -44,7 +44,8 @@ #include #include #include - +#include +#include #include "strsafe.h" #include "setup.hxx" @@ -147,6 +148,7 @@ SetupAppX::SetupAppX() m_bRegNoMsoTypes = false; m_bRegAllMsoTypes = false; m_bIsMinorUpgrade = false; + m_bSupportsPatch = false; m_bIgnoreAlreadyRunning = false; } @@ -446,6 +448,21 @@ boolean SetupAppX::ReadProfile() return bRet; } +//-------------------------------------------------------------------------- +void SetupAppX::AddFileToPatchList( TCHAR* pPath, TCHAR* pFile ) +{ + if ( m_pPatchFiles == NULL ) + { + m_pPatchFiles = new TCHAR[ MAX_STR_LENGTH ]; + StringCchCopy( m_pPatchFiles, MAX_STR_LENGTH, TEXT("\"") ); + } + else + StringCchCat( m_pPatchFiles, MAX_STR_LENGTH, TEXT(";") ); + + StringCchCat( m_pPatchFiles, MAX_STR_LENGTH, pPath ); + StringCchCat( m_pPatchFiles, MAX_STR_LENGTH, pFile ); +} + //-------------------------------------------------------------------------- boolean SetupAppX::GetPatches() { @@ -475,19 +492,18 @@ boolean SetupAppX::GetPatches() if ( hFindPatches != INVALID_HANDLE_VALUE ) { - bool fNextFile = false; - m_pPatchFiles = new TCHAR[ MAX_STR_LENGTH ]; - StringCchCopy( m_pPatchFiles, MAX_STR_LENGTH, TEXT("\"") ); - StringCchCat( m_pPatchFiles, MAX_STR_LENGTH, pBaseDir ); - StringCchCat( m_pPatchFiles, MAX_STR_LENGTH, aFindFileData.cFileName ); + if ( ! IsPatchInstalled( pBaseDir, aFindFileData.cFileName ) ) + AddFileToPatchList( pBaseDir, aFindFileData.cFileName ); while ( FindNextFile( hFindPatches, &aFindFileData ) ) { - StringCchCat( m_pPatchFiles, MAX_STR_LENGTH, TEXT(";") ); - StringCchCat( m_pPatchFiles, MAX_STR_LENGTH, pBaseDir ); - StringCchCat( m_pPatchFiles, MAX_STR_LENGTH, aFindFileData.cFileName ); + if ( ! IsPatchInstalled( pBaseDir, aFindFileData.cFileName ) ) + AddFileToPatchList( pBaseDir, aFindFileData.cFileName ); } - StringCchCat( m_pPatchFiles, MAX_STR_LENGTH, TEXT("\"") ); + + if ( m_pPatchFiles != NULL ) + StringCchCat( m_pPatchFiles, MAX_STR_LENGTH, TEXT("\"") ); + FindClose( hFindPatches ); } } @@ -1175,6 +1191,10 @@ boolean SetupAppX::CheckVersion() Log( TEXT( " Found MSI version <%s>, no update needed\r\n" ), pMsiVersion ); bNeedUpdate = false; } + if ( aInfo.dwMajorVersion >= 3 ) + m_bSupportsPatch = true; + else + Log( TEXT("Warning: Patching not supported! MSI-Version <%s>\r\n"), pMsiVersion ); } } @@ -1492,9 +1512,15 @@ void SetupAppX::Log( LPCTSTR pMessage, LPCTSTR pText ) const _tsetlocale( LC_ALL, NULL ), _getmbcp() ); } if ( pText ) + { _ftprintf( m_pLogFile, pMessage, pText ); + OutputDebugStringFormat( pMessage, pText ); + } else + { _ftprintf( m_pLogFile, pMessage ); + OutputDebugStringFormat( pMessage ); + } fflush( m_pLogFile ); } @@ -1924,6 +1950,66 @@ LPTSTR SetupAppX::SetProdToAppTitle( LPCTSTR pProdName ) return m_pAppTitle; } + +//-------------------------------------------------------------------------- +boolean SetupAppX::IsPatchInstalled( TCHAR* pBaseDir, TCHAR* pFileName ) +{ + if ( !m_bSupportsPatch ) + return false; + + PMSIHANDLE hSummaryInfo; + int nLen = lstrlen( pBaseDir ) + lstrlen( pFileName ) + 1; + TCHAR *szDatabasePath = new TCHAR [ nLen ]; + TCHAR sBuf[80]; + + StringCchCopy( szDatabasePath, nLen, pBaseDir ); + StringCchCat( szDatabasePath, nLen, pFileName ); + + UINT nRet = MsiGetSummaryInformation( NULL, szDatabasePath, 0, &hSummaryInfo ); + + if ( nRet != ERROR_SUCCESS ) + { + StringCchPrintf( sBuf, 80, TEXT("ERROR: IsPatchInstalled: MsiGetSummaryInformation returned %u.\r\n"), nRet ); + Log( sBuf ); + return false; + } + + UINT uiDataType; + LPTSTR szPatchID = new TCHAR[ 64 ]; + DWORD cchValueBuf = 64; + nRet = MsiSummaryInfoGetProperty( hSummaryInfo, PID_REVNUMBER, &uiDataType, NULL, NULL, szPatchID, &cchValueBuf ); + + if ( nRet != ERROR_SUCCESS ) + { + StringCchPrintf( sBuf, 80, TEXT("ERROR: IsPatchInstalled: MsiSummaryInfoGetProperty returned %u.\r\n"), nRet ); + Log( sBuf ); + return false; + } + + nRet = MsiGetPatchInfo( szPatchID, INSTALLPROPERTY_LOCALPACKAGE, NULL, NULL ); + + StringCchPrintf( sBuf, 80, TEXT(" GetPatchInfo for (%s) returned (%u)\r\n"), szPatchID, nRet ); + Log( sBuf ); + + delete []szPatchID; + + if ( nRet == ERROR_BAD_CONFIGURATION ) + return false; + else if ( nRet == ERROR_INVALID_PARAMETER ) + return false; + else if ( nRet == ERROR_MORE_DATA ) + return true; + else if ( nRet == ERROR_SUCCESS ) + return true; + else if ( nRet == ERROR_UNKNOWN_PRODUCT ) + return false; + else if ( nRet == ERROR_UNKNOWN_PROPERTY ) + return false; + else return false; + + return false; +} + //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- LanguageDataX::LanguageDataX( LPTSTR pData ) diff --git a/desktop/win32/source/setup/setup.hxx b/desktop/win32/source/setup/setup.hxx index 7e651df5dec7..d74947fa47f2 100644 --- a/desktop/win32/source/setup/setup.hxx +++ b/desktop/win32/source/setup/setup.hxx @@ -93,6 +93,7 @@ class SetupAppX : public SetupApp boolean m_bRegNoMsoTypes :1; boolean m_bRegAllMsoTypes :1; boolean m_bIsMinorUpgrade :1; + boolean m_bSupportsPatch :1; FILE *m_pLogFile; @@ -125,7 +126,8 @@ private: boolean InstallMsi( LPCTSTR pInstaller ); boolean IsTerminalServerInstalled() const; - + void AddFileToPatchList( TCHAR* pPath, TCHAR* pFile ); + boolean IsPatchInstalled( TCHAR* pBaseDir, TCHAR* pFileName ); public: SetupAppX(); ~SetupAppX(); diff --git a/desktop/win32/source/setup/setup_main.cxx b/desktop/win32/source/setup/setup_main.cxx index 24b542a17e8b..b8b54c8f7550 100644 --- a/desktop/win32/source/setup/setup_main.cxx +++ b/desktop/win32/source/setup/setup_main.cxx @@ -111,13 +111,13 @@ extern "C" int __stdcall WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, int ) if ( ! pSetup->ReadProfile() ) throw pSetup->GetError(); + if ( ! pSetup->CheckVersion() ) + throw pSetup->GetError(); + if ( ! pSetup->IsAdminInstall() ) if ( ! pSetup->GetPatches() ) throw pSetup->GetError(); - if ( ! pSetup->CheckVersion() ) - throw pSetup->GetError(); - // CheckForUpgrade() has to be called after calling GetPatches()! if ( ! pSetup->CheckForUpgrade() ) throw pSetup->GetError(); diff --git a/drawinglayer/inc/drawinglayer/processor3d/defaultprocessor3d.hxx b/drawinglayer/inc/drawinglayer/processor3d/defaultprocessor3d.hxx index 7f01f9328153..e965d22ab880 100644 --- a/drawinglayer/inc/drawinglayer/processor3d/defaultprocessor3d.hxx +++ b/drawinglayer/inc/drawinglayer/processor3d/defaultprocessor3d.hxx @@ -40,6 +40,7 @@ #include #include #include +#include ////////////////////////////////////////////////////////////////////////////// // predefines @@ -94,6 +95,9 @@ namespace drawinglayer // the current active transparence texture texture::GeoTexSvx* mpTransparenceGeoTexSvx; + // SvtOptionsDrawinglayer incarnation to react on diverse settings + const SvtOptionsDrawinglayer maDrawinglayerOpt; + // bitfield unsigned mbModulate : 1; unsigned mbFilter : 1; @@ -136,6 +140,9 @@ namespace drawinglayer bool getModulate() const { return mbModulate; } bool getFilter() const { return mbFilter; } bool getSimpleTextureActive() const { return mbSimpleTextureActive; } + + // access to Drawinglayer configuration options + const SvtOptionsDrawinglayer& getOptionsDrawinglayer() const { return maDrawinglayerOpt; } }; } // end of namespace processor3d } // end of namespace drawinglayer diff --git a/drawinglayer/source/primitive2d/textlayoutdevice.cxx b/drawinglayer/source/primitive2d/textlayoutdevice.cxx index ad97637761e9..b8f7d59e6f05 100644 --- a/drawinglayer/source/primitive2d/textlayoutdevice.cxx +++ b/drawinglayer/source/primitive2d/textlayoutdevice.cxx @@ -325,7 +325,8 @@ namespace drawinglayer aRetval.SetOutline(rFontAttributes.getOutline()); #ifdef WIN32 - if(nWidth != nHeight) + // #100424# use higher precision + if(!basegfx::fTools::equal(fFontScaleX, fFontScaleY)) { // #i92757# // Removed the relative calculation with GetFontMetric() usage again. On diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx index b8a21767b839..bc6059c3223b 100644 --- a/drawinglayer/source/processor2d/vclprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx @@ -162,38 +162,56 @@ namespace drawinglayer // #i96581# Get the font forced without FontStretching (use FontHeight as FontWidth) Font aFont(primitive2d::getVclFontFromFontAttributes( rTextCandidate.getFontAttributes(), - aScale.getY(), + + // #i100373# FontScaling + // + // There are two different definitions for unscaled fonts, (1) 0==width and + // (2) height==width where (2) is the more modern one supported on all non-WIN32 + // systems and (1) is the old one coming from WIN16-VCL definitions where + // that ominous FontWidth (available over FontMetric) is involved. While + // WIN32 only supports (1), all other systems support (2). When on WIN32, the + // support for (1) is ensured inside getVclFontFromFontAttributes. + // + // The former usage of (2) leads to problems when it is used on non-WIN32 systems + // and exported to MetaFile FontActions where the scale is taken over unseen. When + // such a MetaFile is imported on a WIN32-System supporting (1), all fonts are + // seen as scaled an look wrong. + // + // The simplest and fastest solution is to fallback to (1) independent from the + // system we are running on. + // + // The best solution would be a system-independent Y-value just expressing the + // font scaling, e.g. when (2) is used and width == height, use 1.0 as Y-Value, + // which would also solve the involved ominous FontWidth value for WIN32-systems. + // This is a region which needs redesign urgently. + // + 0, // aScale.getY(), + aScale.getY(), fRotate, *mpOutputDevice)); if(!basegfx::fTools::equal(aScale.getX(), aScale.getY())) { - // #i96581# font stretching is needed; examine how big the difference between X and Y scaling is - const double fPercent(fabs(1.0 - (aScale.getX() / aScale.getY()))); - static double fMaximumAcceptedPercent(0.05); - static bool bForceAdaption(false); - - if(bForceAdaption || fPercent > fMaximumAcceptedPercent) + // #100424# We have a hint on FontScaling here. To decide a look + // at the pure font's scale is needed, since e.g. SC uses unequally scaled + // MapModes (was: #i96581#, but use available full precision from primitive + // now). aTranslate and fShearX can be reused since no longer needed. + basegfx::B2DVector aFontScale; + double fFontRotate; + rTextCandidate.getTextTransform().decompose(aFontScale, aTranslate, fFontRotate, fShearX); + + if(!basegfx::fTools::equal(aFontScale.getX(), aFontScale.getY())) { - // #i96581# Need to adapt to a FontStretching bigger than acceptable maximum. - // Get font's real width using FontMetric and adapt font to stretched - // font - const FontMetric aFontMetric(mpOutputDevice->GetFontMetric(aFont)); - const double fRealFontWidth(aFontMetric.GetWidth()); - + // indeed a FontScaling. Set at Font. Use the combined scale + // and rotate here aFont = primitive2d::getVclFontFromFontAttributes( rTextCandidate.getFontAttributes(), - fRealFontWidth, + aScale.getX(), aScale.getY(), fRotate, *mpOutputDevice); } - else - { - // #i96581# less than allowed maximum (probably SC's generated MapModes). React - // pragmatically by ignoring the stretching up to this point - } } // handle additional font attributes @@ -673,16 +691,6 @@ namespace drawinglayer (sal_Int32)ceil(aOutlineRange.getMinX()), (sal_Int32)ceil(aOutlineRange.getMinY()), (sal_Int32)floor(aOutlineRange.getMaxX()), (sal_Int32)floor(aOutlineRange.getMaxY())); - if(aDestRectView.Right() > aDestRectView.Left()) - { - aDestRectView.Right()--; - } - - if(aDestRectView.Bottom() > aDestRectView.Top()) - { - aDestRectView.Bottom()--; - } - // get metafile (copy it) GDIMetaFile aMetaFile; @@ -704,9 +712,30 @@ namespace drawinglayer aMetaFile.Rotate((sal_uInt16)(fRotation)); } - // paint it - aMetaFile.WindStart(); - aMetaFile.Play(mpOutputDevice, aDestRectView.TopLeft(), aDestRectView.GetSize()); + // Prepare target output size + Size aDestSize(aDestRectView.GetSize()); + + if(aDestSize.getWidth() && aDestSize.getHeight()) + { + // Get preferred Metafile output size. When it's very equal to the output size, it's probably + // a rounding error somewhere, so correct it to get a 1:1 output without single pixel scalings + // of the Metafile (esp. for contaned Bitmaps, e.g 3D charts) + const Size aPrefSize(mpOutputDevice->LogicToPixel(aMetaFile.GetPrefSize(), aMetaFile.GetPrefMapMode())); + + if(aPrefSize.getWidth() && (aPrefSize.getWidth() - 1 == aDestSize.getWidth() || aPrefSize.getWidth() + 1 == aDestSize.getWidth())) + { + aDestSize.setWidth(aPrefSize.getWidth()); + } + + if(aPrefSize.getHeight() && (aPrefSize.getHeight() - 1 == aDestSize.getHeight() || aPrefSize.getHeight() + 1 == aDestSize.getHeight())) + { + aDestSize.setHeight(aPrefSize.getHeight()); + } + + // paint it + aMetaFile.WindStart(); + aMetaFile.Play(mpOutputDevice, aDestRectView.TopLeft(), aDestSize); + } } // mask group. Force output to VDev and create mask from given mask diff --git a/drawinglayer/source/processor3d/zbufferprocessor3d.cxx b/drawinglayer/source/processor3d/zbufferprocessor3d.cxx index 7a6eefd90a4e..24015903de4c 100644 --- a/drawinglayer/source/processor3d/zbufferprocessor3d.cxx +++ b/drawinglayer/source/processor3d/zbufferprocessor3d.cxx @@ -49,6 +49,7 @@ #include #include #include +#include ////////////////////////////////////////////////////////////////////////////// @@ -556,7 +557,51 @@ namespace drawinglayer if(mpBZPixelRaster) { mpZBufferRasterConverter3D->setCurrentMaterial(rMaterial); - mpZBufferRasterConverter3D->rasterconvertB3DPolygon(rHairline, 0, mpBZPixelRaster->getHeight(), mnAntiAlialize ? mnAntiAlialize : 1); + + if(mnAntiAlialize > 1) + { + const bool bForceLineSnap(getOptionsDrawinglayer().IsAntiAliasing() && getOptionsDrawinglayer().IsSnapHorVerLinesToDiscrete()); + + if(bForceLineSnap) + { + basegfx::B3DHomMatrix aTransform; + basegfx::B3DPolygon aSnappedHairline(rHairline); + const double fScaleDown(1.0 / mnAntiAlialize); + const double fScaleUp(mnAntiAlialize); + + // take oversampling out + aTransform.scale(fScaleDown, fScaleDown, 1.0); + aSnappedHairline.transform(aTransform); + + // snap to integer + aSnappedHairline = basegfx::tools::snapPointsOfHorizontalOrVerticalEdges(aSnappedHairline); + + // add oversampling again + aTransform.identity(); + aTransform.scale(fScaleUp, fScaleUp, 1.0); + + if(false) + { + // when really want to go to single pixel lines, move to center. + // Without this translation, all hor/ver hairlines will be centered exactly + // between two pixel lines (which looks best) + const double fTranslateToCenter(mnAntiAlialize * 0.5); + aTransform.translate(fTranslateToCenter, fTranslateToCenter, 0.0); + } + + aSnappedHairline.transform(aTransform); + + mpZBufferRasterConverter3D->rasterconvertB3DPolygon(aSnappedHairline, 0, mpBZPixelRaster->getHeight(), mnAntiAlialize); + } + else + { + mpZBufferRasterConverter3D->rasterconvertB3DPolygon(rHairline, 0, mpBZPixelRaster->getHeight(), mnAntiAlialize); + } + } + else + { + mpZBufferRasterConverter3D->rasterconvertB3DPolygon(rHairline, 0, mpBZPixelRaster->getHeight(), 1); + } } } diff --git a/formula/source/ui/dlg/funcutl.cxx b/formula/source/ui/dlg/funcutl.cxx index 23f0f2dc66ae..afc7ce05918f 100644 --- a/formula/source/ui/dlg/funcutl.cxx +++ b/formula/source/ui/dlg/funcutl.cxx @@ -724,8 +724,8 @@ IMPL_LINK( ArgInput, EdModifyHdl,ArgEdit*, pEd ) EditBox::EditBox( Window* pParent,WinBits nWinStyle) :Control(pParent,nWinStyle|WB_DIALOGCONTROL) { - pMEdit=new MultiLineEdit(this,WB_LEFT | WB_VSCROLL | nWinStyle & WB_TABSTOP| - WB_NOBORDER | WB_NOHIDESELECTION |WB_IGNORETAB); + pMEdit=new MultiLineEdit(this,WB_LEFT | WB_VSCROLL | (nWinStyle & WB_TABSTOP) | + WB_NOBORDER | WB_NOHIDESELECTION | WB_IGNORETAB); pMEdit->Show(); aOldSel=pMEdit->GetSelection(); @@ -751,7 +751,7 @@ EditBox::EditBox( Window* pParent, const ResId& rResId ) WinBits nStyle=GetStyle(); SetStyle( nStyle| WB_DIALOGCONTROL); - pMEdit=new MultiLineEdit(this,WB_LEFT | WB_VSCROLL | nStyle & WB_TABSTOP| + pMEdit=new MultiLineEdit(this,WB_LEFT | WB_VSCROLL | (nStyle & WB_TABSTOP) | WB_NOBORDER | WB_NOHIDESELECTION | WB_IGNORETAB); pMEdit->Show(); aOldSel=pMEdit->GetSelection(); @@ -861,7 +861,7 @@ long EditBox::PreNotify( NotifyEvent& rNEvt ) { const KeyCode& aKeyCode=rNEvt.GetKeyEvent()->GetKeyCode(); USHORT nKey=aKeyCode.GetCode(); - if(nKey==KEY_RETURN && !aKeyCode.IsShift() || nKey==KEY_TAB) + if( (nKey==KEY_RETURN && !aKeyCode.IsShift()) || nKey==KEY_TAB ) { nResult=GetParent()->Notify(rNEvt); } diff --git a/fpicker/source/office/iodlgimp.cxx b/fpicker/source/office/iodlgimp.cxx index 4f53008eda3d..3a34c1da7be6 100644 --- a/fpicker/source/office/iodlgimp.cxx +++ b/fpicker/source/office/iodlgimp.cxx @@ -130,44 +130,6 @@ namespace }; } -//***************************************************************************** - -String GetRegularExpression_Impl( const String& rFilter ) -{ - String aFilter = rFilter; - aFilter.EraseLeadingChars().EraseTrailingChars(); - String aRegExp = '^'; - - for ( const sal_Unicode *pc = aFilter.GetBuffer(); *pc; ++pc ) - { - if ( '*' == *pc ) - aRegExp += String(RTL_CONSTASCII_USTRINGPARAM(".*")); - else if ( '?' == *pc ) - aRegExp += '.'; - else - { - aRegExp += '\''; - - while ( *pc && *pc != '*' && *pc != '?' ) - { - if ( '\'' == *pc ) - aRegExp += String(RTL_CONSTASCII_USTRINGPARAM("\\\'")); - else - aRegExp += *pc; - pc++; - } - aRegExp += '\''; - - if ( !*pc ) - break; - else - pc--; - } - } - aRegExp += '$'; - return aRegExp; -} - //***************************************************************************** // SvtFileDialogFilter_Impl //***************************************************************************** diff --git a/fpicker/source/office/iodlgimp.hxx b/fpicker/source/office/iodlgimp.hxx index 35fcc7f95df9..5b97455b628a 100644 --- a/fpicker/source/office/iodlgimp.hxx +++ b/fpicker/source/office/iodlgimp.hxx @@ -56,10 +56,6 @@ class SvUShorts; #define FILEDIALOG_DEF_IMAGEBORDER 10 #define FILEDIALOG_DEF_TIMEOUT 250 -//***************************************************************************** - -String GetRegularExpression_Impl( const String& rFilter ); - //***************************************************************************** // SvtFileDialogFilter_Impl //***************************************************************************** diff --git a/fpicker/source/win32/filepicker/WinFileOpenImpl.cxx b/fpicker/source/win32/filepicker/WinFileOpenImpl.cxx index dc53e6318030..a84a54499bc3 100644 --- a/fpicker/source/win32/filepicker/WinFileOpenImpl.cxx +++ b/fpicker/source/win32/filepicker/WinFileOpenImpl.cxx @@ -713,7 +713,7 @@ void CWinFileOpenImpl::EnlargeStdControlLabels() const RECT rcFilterBox; GetWindowRect(hFilterBox, &rcFilterBox); w = rcFilterBox.right - rcFilterBox.left; - h = rcFilterBox.bottom, - rcFilterBox.top; + h = rcFilterBox.bottom - rcFilterBox.top; ScreenToClient(m_hwndFileOpenDlg, (LPPOINT)&rcFilterBox); MoveWindow(hFilterBox, rcFilterBox.left + gap + OFFSET, rcFilterBox.top, w - OFFSET, h, true); diff --git a/framework/inc/classes/fwktabwindow.hxx b/framework/inc/classes/fwktabwindow.hxx index c3acfb17f2da..ba6a2522c2c7 100644 --- a/framework/inc/classes/fwktabwindow.hxx +++ b/framework/inc/classes/fwktabwindow.hxx @@ -117,6 +117,7 @@ private: void ClearEntryList(); TabEntry* FindEntry( sal_Int32 nIndex ) const; + bool RemoveEntry( sal_Int32 nIndex ); DECL_DLLPRIVATE_LINK( ActivatePageHdl, TabControl * ); DECL_DLLPRIVATE_LINK( DeactivatePageHdl, TabControl * ); diff --git a/framework/source/accelerators/acceleratorconfiguration.cxx b/framework/source/accelerators/acceleratorconfiguration.cxx index 330edb9c809a..368bcb738984 100644 --- a/framework/source/accelerators/acceleratorconfiguration.cxx +++ b/framework/source/accelerators/acceleratorconfiguration.cxx @@ -1205,8 +1205,8 @@ void SAL_CALL XCUBasedAcceleratorConfiguration::changesOccurred(const css::util: { ::rtl::OUString sModule; sKey = ::utl::extractFirstFromConfigurationPath(sPath); - if ( sKey.getLength() ) - reloadChanged(sPrimarySecondary, sGlobalModules, sModule, sKey); + if ( sKey.getLength() ) + reloadChanged(sPrimarySecondary, sGlobalModules, sModule, sKey); } else if ( sGlobalModules.equals(CFG_ENTRY_MODULES) ) { @@ -1214,7 +1214,7 @@ void SAL_CALL XCUBasedAcceleratorConfiguration::changesOccurred(const css::util: ::rtl::OUString sDropModule = ::rtl::OUString::createFromAscii("Module['") + sModule + ::rtl::OUString::createFromAscii("']"); sPath = ::utl::dropPrefixFromConfigurationPath(sPath, sDropModule); sKey = ::utl::extractFirstFromConfigurationPath(sPath); - if ( sKey.getLength() ) + if ( sKey.getLength() ) reloadChanged(sPrimarySecondary, sGlobalModules, sModule, sKey); } } @@ -1242,6 +1242,10 @@ void XCUBasedAcceleratorConfiguration::impl_ts_load( sal_Bool bPreferred, const xModules->getByName(m_sModuleCFG) >>= xAccess; } + static KeyMapping aKeyMapping; + const ::rtl::OUString sIsoLang = impl_ts_getLocale().toISO(); + const ::rtl::OUString sDefaultLocale = ::rtl::OUString::createFromAscii("en-US"); + css::uno::Reference< css::container::XNameAccess > xKey; css::uno::Reference< css::container::XNameAccess > xCommand; if (xAccess.is()) @@ -1263,13 +1267,12 @@ void XCUBasedAcceleratorConfiguration::impl_ts_load( sal_Bool bPreferred, const ::std::vector< ::rtl::OUString >::const_iterator pFound; for ( pFound = aLocales.begin(); pFound != aLocales.end(); ++pFound ) { - if ( *pFound == impl_ts_getLocale().toISO() ) + if ( *pFound == sIsoLang ) break; } if ( pFound == aLocales.end() ) { - ::rtl::OUString sDefaultLocale = ::rtl::OUString::createFromAscii("en-US"); for ( pFound = aLocales.begin(); pFound != aLocales.end(); ++pFound ) { if ( *pFound == sDefaultLocale ) @@ -1286,7 +1289,6 @@ void XCUBasedAcceleratorConfiguration::impl_ts_load( sal_Bool bPreferred, const if (sCommand.getLength()<1) continue; - KeyMapping aKeyMapping; css::awt::KeyEvent aKeyEvent; sal_Int32 nIndex = 0; diff --git a/framework/source/classes/actiontriggerseparatorpropertyset.cxx b/framework/source/classes/actiontriggerseparatorpropertyset.cxx index d5cdaf584787..bc07a45eabaa 100644 --- a/framework/source/classes/actiontriggerseparatorpropertyset.cxx +++ b/framework/source/classes/actiontriggerseparatorpropertyset.cxx @@ -324,7 +324,7 @@ throw( IllegalArgumentException ) sal_Bool bReturn = sal_False; // Get new value from any. // IllegalArgumentException() can be thrown! - sal_Int16 aValue ; + sal_Int16 aValue = 0; convertPropertyValue( aValue, aNewValue ); // If value change ... diff --git a/framework/source/classes/fwktabwindow.cxx b/framework/source/classes/fwktabwindow.cxx index cd9ff97dc652..a7c6882751ee 100644 --- a/framework/source/classes/fwktabwindow.cxx +++ b/framework/source/classes/fwktabwindow.cxx @@ -250,6 +250,28 @@ void FwkTabWindow::ClearEntryList() // ----------------------------------------------------------------------- +bool FwkTabWindow::RemoveEntry( sal_Int32 nIndex ) +{ + TabEntryList::iterator pIt; + for ( pIt = m_TabList.begin(); + pIt != m_TabList.end(); + ++pIt ) + { + if ( (*pIt)->m_nIndex == nIndex ) + break; + } + + // remove entry from vector + if ( pIt != m_TabList.end()) + { + m_TabList.erase(pIt); + return true; + } + else + return false; +} + +// ----------------------------------------------------------------------- TabEntry* FwkTabWindow::FindEntry( sal_Int32 nIndex ) const { TabEntry* pEntry = NULL; @@ -281,9 +303,10 @@ IMPL_LINK( FwkTabWindow, ActivatePageHdl, TabControl *, EMPTYARG ) if ( pEntry ) { pTabPage = new FwkTabPage( &m_aTabCtrl, pEntry->m_sPageURL, pEntry->m_xEventHdl, m_xWinProvider ); + pEntry->m_pPage = pTabPage; + m_aTabCtrl.SetTabPage( nId, pTabPage ); pTabPage->Show(); pTabPage->ActivatePage(); - m_aTabCtrl.SetTabPage( nId, pTabPage ); } } else { pTabPage->ActivatePage(); @@ -371,7 +394,13 @@ void FwkTabWindow::ActivatePage( sal_Int32 nIndex ) void FwkTabWindow::RemovePage( sal_Int32 nIndex ) { - m_aTabCtrl.RemovePage( static_cast< USHORT >( nIndex ) ); + TabEntry* pEntry = FindEntry(nIndex); + if ( pEntry ) + { + m_aTabCtrl.RemovePage( static_cast< USHORT >( nIndex ) ); + if (RemoveEntry(nIndex)) + delete pEntry; + } } // ----------------------------------------------------------------------- diff --git a/framework/source/helper/titlehelper.cxx b/framework/source/helper/titlehelper.cxx index 26013575e075..291ed4f00633 100644 --- a/framework/source/helper/titlehelper.cxx +++ b/framework/source/helper/titlehelper.cxx @@ -220,9 +220,13 @@ void SAL_CALL TitleHelper::notifyEvent(const css::document::EventObject& aEvent) aLock.clear (); // <- SYNCHRONIZED - if (aEvent.Source != xOwner - || aEvent.EventName.equalsIgnoreAsciiCaseAscii ("OnTitleChanged") && !xOwner.is()) + if ( + aEvent.Source != xOwner || + (aEvent.EventName.equalsIgnoreAsciiCaseAscii ("OnTitleChanged") && !xOwner.is()) + ) + { return; + } impl_updateTitle (); } diff --git a/officecfg/registry/data/org/openoffice/Setup.xcu b/officecfg/registry/data/org/openoffice/Setup.xcu index 0df270bde06d..75d67f0a017a 100644 --- a/officecfg/registry/data/org/openoffice/Setup.xcu +++ b/officecfg/registry/data/org/openoffice/Setup.xcu @@ -788,11 +788,6 @@ - - - .*/config/javasettings_.*\.xml - - com.sun.star.migration.Basic @@ -808,11 +803,6 @@ .*/autotext/.* .*/autocorr/.* - - - .*/config/javasettings_.*\.xml - - .*/config/.*\.so[bcdegh] .*/config/soffice.cfg/modules/.*/toolbar/custom.*\.xml .*/config/soffice.cfg/modules/.*/images/.* diff --git a/readlicense_oo/html/THIRDPARTYLICENSEREADME.html b/readlicense_oo/html/THIRDPARTYLICENSEREADME.html index 5e802a398a90..9e141afb579b 100644 --- a/readlicense_oo/html/THIRDPARTYLICENSEREADME.html +++ b/readlicense_oo/html/THIRDPARTYLICENSEREADME.html @@ -1,1148 +1,1626 @@ - + THIRDPARTYLICENSEREADME - - - - - - - -DO NOT TRANSLATE OR LOCALIZE THIS DOCUMENT
-
- -
-
The following software may be -included in this product:Bitstram Vera Fonts; Use of any of this -software -is governed -by the terms of the license below:
-

Bitstream, Inc.
-

-

Bitstream Vera Fonts
-

-Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. -Bitstream Vera is a trademark of Bitstream, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a -copy of the fonts accompanying this license (“Fonts”) -and associated -documentation files (the “Font Software”), to reproduce -and distribute -the Font Software, including without limitation the rights to use, -copy, -merge, publish, distribute, and/or sell copies of the Font Software, -and -to permit persons to whom the Font Software is furnished to do so, -subject to the following conditions:
-
-The above copyright and trademark notices and this permission notice -shall be included in all copies of one or more of the Font Software -typefaces.
-
-The Font Software may be modified, altered, or added to, and in -particular the designs of glyphs or characters in the Fonts may be -modified and additional glyphs or characters may be added to the Fonts, -only if the fonts are renamed to names not containing either the words -“Bitstream” or the word “Vera”.
-
-This License becomes null and void to the extent applicable to Fonts or -Font Software that has been modified and is distributed under the -“Bitstream Vera” names.
-
-The Font Software may be sold as part of a larger software package but -no copy of one or more of the Font Software typefaces may be sold by -itself.
-
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF -COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL -BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, -OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT -SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
-
-Except as contained in this notice, the names of Gnome, the Gnome -Foundation, and Bitstream Inc., shall not be used in advertising or -otherwise to promote the sale, use or other dealings in this Font -Software without prior written authorization from the Gnome Foundation -or Bitstream Inc., respectively. For further information, contact: -fonts -at gnome dot org.

-Arev Fonts Copyright -
-Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. -
-Permission is hereby granted, free of charge, to any person obtaining a -copy of -the fonts accompanying this license ("Fonts") and associated -documentation files -(the "Font Software"), to reproduce and distribute the modifications to -the -Bitstream Vera Font Software, including without limitation the rights -to use, -copy, merge, publish, distribute, and/or sell copies of the Font -Software, and -to permit persons to whom the Font Software is furnished to do so, -subject to -the following conditions: -
-The above copyright and trademark notices and this permission notice -shall be -included in all copies of one or more of the Font Software typefaces. -
-The Font Software may be modified, altered, or added to, and in -particular the -designs of glyphs or characters in the Fonts may be modified and -additional -glyphs or characters may be added to the Fonts, only if the fonts are -renamed to -names not containing either the words "Tavmjong Bah" or the word -"Arev". -
-This License becomes null and void to the extent applicable to Fonts or -Font -Software that has been modified and is distributed under the "Tavmjong -Bah Arev" -names. -
-The Font Software may be sold as part of a larger software package but -no copy -of one or more of the Font Software typefaces may be sold by itself. -
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, -TRADEMARK, OR -OTHER RIGHT. IN NO EVENT SHALL TAVMJONG BAH BE LIABLE FOR ANY CLAIM, -DAMAGES OR -OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, -OR -CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, -ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR -FROM OTHER -DEALINGS IN THE FONT SOFTWARE. -
-Except as contained in this notice, the name of Tavmjong Bah shall not -be used -in advertising or otherwise to promote the sale, use or other dealings -in this -Font Software without prior written authorization from Tavmjong Bah. -For further -information, contact: tavmjong @ free . fr. -
-
The following software may be -included in this product: Liberation Fonts; Use of any of this -software -is governed -by the terms of the license below:
-

RedHat, Inc.
-

-

Liberation Fonts
-

-refer to GNU General Public License and the -following terms: -
-LICENSE AGREEMENT AND LIMITED PRODUCT WARRANTY LIBERATION FONT SOFTWARE -
-This agreement governs the use of the Software and any updates to the -Software, regardless of the delivery mechanism. Subject to the -following -terms, Red Hat, Inc. ("Red Hat") grants to the user ("Client") a -license to -this collective work pursuant to the GNU General Public License v.2 -with the -exceptions set forth below and such other terms as our set forth in -this End -User License Agreement. -
-1. The Software and License Exception. LIBERATION font software (the -"Software") consists of TrueType-OpenType formatted font software for -rendering LIBERATION typefaces in sans serif, serif, and monospaced -character -styles. You are licensed to use, modify, copy, and distribute the -Software -pursuant to the GNU General Public License v.2 with the following -exceptions:
-1) As a special exception, if you create a document which uses this -font, and -embed this font or unaltered portions of this font into the document, -this -font does not by itself cause the resulting document to be covered by -the GNU -General Public License. This exception does not however invalidate any -other -reasons why the document might be covered by the GNU General Public -License. If you modify this font, you may extend this exception to your -version of the -font, but you are not obligated to do so. If you do not wish to do so, -delete -this exception statement from your version.
-2) As a further exception, any distribution of the object code of the -Software -in a physical product must provide you the right to access and modify -the -source code for the Software and to reinstall that modified version of -the -Software in object code form on the same physical product on which you -received it. -
-2. Intellectual Property Rights. The Software and each of its -components, -including the source code, documentation, appearance, structure and -organization are owned by Red Hat and others and are protected under -copyright -and other laws. Title to the Software and any component, or to any -copy, -modification, or merged portion shall remain with the aforementioned, -subject -to the applicable license. The "LIBERATION" trademark is a trademark of -Red -Hat, Inc. in the U.S. and other countries. This agreement does not -permit -Client to distribute modified versions of the Software using Red Hat's -trademarks. If Client makes a redistribution of a modified version of -the -Software, then Client must modify the files names to remove any -reference to -the Red Hat trademarks and must not use the Red Hat trademarks in any -way to -reference or promote the modified Software.
-3. Limited Warranty. To the maximum extent permitted under applicable -law, the -Software is provided and licensed "as is" without warranty of any kind, -expressed or implied, including the implied warranties of -merchantability, -non-infringement or fitness for a particular purpose. Red Hat does not -warrant -that the functions contained in the Software will meet Client's -requirements -or that the operation of the Software will be entirely error free or -appear -precisely as described in the accompanying documentation.
-4. Limitation of Remedies and Liability. To the maximum extent -permitted by -applicable law, Red Hat or any Red Hat authorized dealer will not be -liable to -Client for any incidental or consequential damages, including lost -profits or -lost savings arising out of the use or inability to use the Software, -even if -Red Hat or such dealer has been advised of the possibility of such -damages.
-5. Export Control. As required by U.S. law, Client represents and -warrants -that it: (a) understands that the Software is subject to export -controls under -the U.S. Commerce Department's Export Administration Regulations -("EAR"); (b) -is not located in a prohibited destination country under the EAR or -U.S. -sanctions regulations (currently Cuba, Iran, Iraq, Libya, North Korea, -Sudan -and Syria); (c) will not export, re-export, or transfer the Software to -any -prohibited destination, entity, or individual without the necessary -export -license(s) or authorizations(s) from the U.S. Government; (d) will not -use or -transfer the Software for use in any sensitive nuclear, chemical or -biological -weapons, or missile technology end-uses unless authorized by the U.S. -Government by regulation or specific license; (e) understands and -agrees that -if it is in the United States and exports or transfers the Software to -eligible end users, it will, as required by EAR Section 740.17(e), -submit -semi-annual reports to the Commerce Department's Bureau of Industry -& Security -(BIS), which include the name and address (including country) of each -transferee; and (f) understands that countries other than the United -States -may restrict the import, use, or export of encryption products and that -it -shall be solely responsible for compliance with any such import, use, -or -export restrictions. -
-6. General. If any provision of this agreement is held to be -unenforceable, -that shall not affect the enforceability of the remaining provisions. -This -agreement shall be governed by the laws of the State of North Carolina -and of -the United States, without regard to any conflict of laws provisions, -except -that the United Nations Convention on the International Sale of Goods -shall -not apply. -
-Copyright © 2007 Red Hat, Inc. All rights reserved. LIBERATION is -a trademark -of Red Hat, Inc. -
-
- -
The following software may be -included in this product: MathML DTD; Use of any of this -software -is governed -by the terms of the license below:
-

World Wide Web -Consortium (W3C)
-

-

MathML DTD
-

-

W3C® SOFTWARE NOTICE AND LICENSE

-

Copyright © 1994-2001 World -Wide Web Consortium, (Massachusetts -Institute of -Technology, Institut National de -Recherche en Informatique et en Automatique, Keio University). All Rights -Reserved. -http://www.w3.org/Consortium/Legal/

-

This W3C work (including software, documents, or other related -items) is being provided by the copyright holders under the -following license. By obtaining, using and/or copying this work, -you (the licensee) agree that you have read, understood, and will -comply with the following terms and conditions:

-

Permission to use, copy, modify, and distribute this software -and its documentation, with or without modification,  for any -purpose and without fee or royalty is hereby granted, provided that -you include the following on ALL copies of the software and -documentation or portions thereof, including modifications, that -you make:

-
    -
  1. The full text of this NOTICE in a location viewable to users of -the redistributed or derivative work.
  2. -
  3. Any pre-existing intellectual property disclaimers, notices, or -terms and conditions. If none exist, a short notice of the -following form (hypertext is preferred, text is permitted) should -be used within the body of any redistributed or derivative code: -"Copyright © [$date-of-software] -World Wide Web Consortium, (Massachusetts -Institute of -Technology, Institut National de -Recherche en Informatique et en Automatique, Keio University). All Rights -Reserved. -http://www.w3.org/Consortium/Legal/"
  4. -
  5. Notice of any changes or modifications to the W3C files, -including the date changes were made. (We recommend you provide -URIs to the location from which the code is derived.)
  6. -
-

THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND -COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF -MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE -USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD -PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.

-

COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, -SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE -SOFTWARE OR DOCUMENTATION.

-

The name and trademarks of copyright holders may NOT be used in -advertising or publicity pertaining to the software without -specific, written prior permission. Title to copyright in this -software and any associated documentation will at all times remain -with copyright holders.

-
-
The following software may be -included in this product: NSIS; Use of any of this -software -is governed -by the terms of the license below:
-

Nullsoft, Inc.
-

-

NSIS
-

-Copyright (C) 1999-2003 Nullsoft, Inc. -
-This license applies to everything in the NSIS package, except where -otherwise -noted. -
-This software is provided 'as-is', without any express or implied -warranty. In -no event will the authors be held liable for any damages arising from -the use of -this software. -
-Permission is granted to anyone to use this software for any purpose, -including -commercial applications, and to alter it and redistribute it freely, -subject to -the following restrictions: -
-1. The origin of this software must not be misrepresented; you must not -claim -that you wrote the original software. If you use this software in a -product, an -acknowledgment in the product documentation would be appreciated but is -not -required. -
-2. Altered source versions must be plainly marked as such, and must not -be -misrepresented as being the original software. -
-3. This notice may not be removed or altered from any source -distribution. -
-
The following software may be -included in this product: PostScript(R) AFM Files; Use of any of this -software -is governed -by the terms of the license below:
-

Adobe
-

-

PostScript(R) AFM -files
-

-
-Adobe Core 35 AFM Files with 314 Glyph Entries -
-This file and the 35 PostScript(R) AFM files it accompanies may be -used, copied, and distributed for any purpose and without charge, with -or without modification, provided that all copyright notices are -retained; that the AFM files are not distributed without this file; -that all modifications to this file or any of the AFM files are -prominently noted in the modified file(s); and that this paragraph is -not modified. Adobe Systems has no responsibility or obligation to -support the use of the AFM files. -
-
The following software may be -included in this product: Antigrain; Use of any of this -software -is governed -by the terms of the license below:
-

Axim Shemanarev
-

-

Antigrain
-

-
-Anti-Grain Geometry - Version 2.0 -
-Copyright (C) 2002-2004 Maxim Shemanarev (McSeem) -
-Permission to copy, use, modify, sell and distribute this software is -granted provided this copyright notice appears in all copies. This -software is provided "as is" without express or implied -warranty, and with no claim as to its suitability for any purpose. -
+DO NOT TRANSLATE OR LOCALIZE THIS DOCUMENT + + + + + + + +
The following software may be +included in this product:Bitstram Vera Fonts; Use of any of this software +is governed +by the terms of the license below:
+

Bitstream, Inc. +
+

+

Bitstream Vera Fonts
+

+ + Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. +Bitstream Vera is a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a +copy of the fonts accompanying this license (“Fontsâ€) and associated +documentation files (the “Font Softwareâ€), to reproduce and distribute +the Font Software, including without limitation the rights to use, copy, +merge, publish, distribute, and/or sell copies of the Font Software, and +to permit persons to whom the Font Software is furnished to do so, +subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces.
+
+The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the Fonts, +only if the fonts are renamed to names not containing either the words +“Bitstream†or the word “Veraâ€.
+
+This License becomes null and void to the extent applicable to Fonts or +Font Software that has been modified and is distributed under the +“Bitstream Vera†names.
+
+The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT +SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font +Software without prior written authorization from the Gnome Foundation +or Bitstream Inc., respectively. For further information, contact: fonts +at gnome dot org.

+ + + + + + + +
The following software may be +included in this product:BerkeleyDB; Use of any of this software +is governed +by the terms of the license below:
+

Sleepycat Software +
+

+

BerkeleyDB
+

> +
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+/*
+ * Copyright (c) 1990-2004
+ *      Sleepycat Software.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Redistributions in any form must be accompanied by information on
+ *    how to obtain complete source code for the DB software and any
+ *    accompanying software that uses the DB software.  The source code
+ *    must either be included in the distribution or be available for no
+ *    more than the cost of distribution plus a nominal fee, and must be
+ *    freely redistributable under reasonable conditions.  For an
+ *    executable file, complete source code means the source code for all
+ *    modules it contains.  It does not include source code for modules or
+ *    files that typically accompany the major components of the operating
+ *    system on which the executable file runs.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SLEEPYCAT SOFTWARE ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+ * NON-INFRINGEMENT, ARE DISCLAIMED.  IN NO EVENT SHALL SLEEPYCAT SOFTWARE
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 1990, 1993, 1994, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 1995, 1996
+ *	The President and Fellows of Harvard University.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY HARVARD AND ITS CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL HARVARD OR ITS CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+ 
+ + + + + + + + +
The following software may be +included in this product:Czech thesaurus database; Use of any of this software +is governed +by the terms of the license below:
+

Pavel Rychly, Pavel Smrz, {pary,smrz}@fi.muni.cz, + NLPlab, Faculty of Informatics, Masaryk University +
+

+

Czech Thesaurus Database
+

+Copyright (c) 2002 Pavel Rychly, Pavel Smrz, {pary,smrz}@fi.muni.cz, + NLPlab, Faculty of Informatics, Masaryk University +
+ Permission is hereby granted, free of charge, to any person + obtaining + a copy of this data (the "Data"), to deal in the Data without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of + the Data, and to permit persons to whom the Data is furnished to do + so, subject to the following conditions: +
+ The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Data. +
+ THE DATA ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION + WITH THE DATA OR THE USE OR OTHER DEALINGS IN THE DATA. + +
+ + + + + + + +
The following software may be +included in this product:Generic Polygon Clipper (GPC); Use of any of this software +is governed +by the terms of the license below:
+

Alan Murta +
+

+

GPC
+

+Copyright: (C) 1997-1999, Advanced Interfaces Group, + University of Manchester. +
+ This software is free for non-commercial use. It may be copied, + modified, and redistributed provided that this copyright notice + is preserved on all copies. The intellectual property rights of + the algorithms used reside with the University of Manchester + Advanced Interfaces Group. +
+ You may not use this software, in whole or in part, in support + of any commercial product without the express consent of the + author. +
+ There is no warranty or other guarantee of fitness of this + software for any purpose. It is provided solely "as is". +
+ + + + + + + +
The following software may be +included in this product: LaTeX dictinary data; Use of any of this software +is governed by the terms of the license below:
+

LaTeX3 Project +
+

+

LPPL version 1.3b
+

+ +The LaTeX Project Public License +
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +
+ +
+LPPL Version 1.3b 2006-01-07 +
+ +
+Copyright 1999 2002-2006 LaTeX3 Project +
+ Everyone is allowed to distribute verbatim copies of this + license document, but modification of it is not allowed. + +
+ +PREAMBLE +
+======== +
+ +The LaTeX Project Public License (LPPL) is the primary license under +which the the LaTeX kernel and the base LaTeX packages are distributed. + +
+You may use this license for any work of which you hold the copyright +and which you wish to distribute. This license may be particularly +suitable if your work is TeX-related (such as a LaTeX package), but +you may use it with small modifications even if your work is unrelated +to TeX. +
+ +The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', +below, gives instructions, examples, and recommendations for authors +who are considering distributing their works under this license. +
+ +This license gives conditions under which a work may be distributed +and modified, as well as conditions under which modified versions of +that work may be distributed. +
+ +We, the LaTeX3 Project, believe that the conditions below give you +the freedom to make and distribute modified versions of your work +that conform with whatever technical specifications you wish while +maintaining the availability, integrity, and reliability of +that work. If you do not see how to achieve your goal while +meeting these conditions, then read the document `cfgguide.tex' +and `modguide.tex' in the base LaTeX distribution for suggestions. +
+ + +
+DEFINITIONS +
+=========== +
+ +
+In this license document the following terms are used: +
+ + `Work' + Any work being distributed under this License. + +
+ `Derived Work' + Any work that under any applicable law is derived from the Work. + +
+ `Modification' + Any procedure that produces a Derived Work under any applicable + law -- for example, the production of a file containing an + original file associated with the Work or a significant portion of + such a file, either verbatim or with modifications and/or + translated into another language. + +
+ `Modify' + To apply any procedure that produces a Derived Work under any + applicable law. + +
+ `Distribution' + Making copies of the Work available from one person to another, in + whole or in part. Distribution includes (but is not limited to) + making any electronic components of the Work accessible by + file transfer protocols such as FTP or HTTP or by shared file + systems such as Sun's Network File System (NFS). + +
+ `Compiled Work' + A version of the Work that has been processed into a form where it + is directly usable on a computer system. This processing may + include using installation facilities provided by the Work, + transformations of the Work, copying of components of the Work, or + other activities. Note that modification of any installation + facilities provided by the Work constitutes modification of the Work. + +
+ `Current Maintainer' + A person or persons nominated as such within the Work. If there is + no such explicit nomination then it is the `Copyright Holder' under + any applicable law. + +
+ `Base Interpreter' + A program or process that is normally needed for running or + interpreting a part or the whole of the Work. + +
+ A Base Interpreter may depend on external components but these + are not considered part of the Base Interpreter provided that each + external component clearly identifies itself whenever it is used + interactively. Unless explicitly specified when applying the + license to the Work, the only applicable Base Interpreter is a + `LaTeX-Format' or in the case of files belonging to the + `LaTeX-format' a program implementing the `TeX language'. + +
+ + +
+CONDITIONS ON DISTRIBUTION AND MODIFICATION +
+=========================================== +
+ +
+1. Activities other than distribution and/or modification of the Work +are not covered by this license; they are outside its scope. In +particular, the act of running the Work is not restricted and no +requirements are made concerning any offers of support for the Work. + +
+2. You may distribute a complete, unmodified copy of the Work as you +received it. Distribution of only part of the Work is considered +modification of the Work, and no right to distribute such a Derived +Work may be assumed under the terms of this clause. + +
+3. You may distribute a Compiled Work that has been generated from a +complete, unmodified copy of the Work as distributed under Clause 2 +above, as long as that Compiled Work is distributed in such a way that +the recipients may install the Compiled Work on their system exactly +as it would have been installed if they generated a Compiled Work +directly from the Work. + +
+4. If you are the Current Maintainer of the Work, you may, without +restriction, modify the Work, thus creating a Derived Work. You may +also distribute the Derived Work without restriction, including +Compiled Works generated from the Derived Work. Derived Works +distributed in this manner by the Current Maintainer are considered to +be updated versions of the Work. + +
+5. If you are not the Current Maintainer of the Work, you may modify +your copy of the Work, thus creating a Derived Work based on the Work, +and compile this Derived Work, thus creating a Compiled Work based on +the Derived Work. + +
+6. If you are not the Current Maintainer of the Work, you may +distribute a Derived Work provided the following conditions are met +for every component of the Work unless that component clearly states +in the copyright notice that it is exempt from that condition. Only +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. + +
+ a. If a component of this Derived Work can be a direct replacement + for a component of the Work when that component is used with the + Base Interpreter, then, wherever this component of the Work + identifies itself to the user when used interactively with that + Base Interpreter, the replacement component of this Derived Work + clearly and unambiguously identifies itself as a modified version + of this component to the user when used interactively with that + Base Interpreter. + +
+ b. Every component of the Derived Work contains prominent notices + detailing the nature of the changes to that component, or a + prominent reference to another file that is distributed as part + of the Derived Work and that contains a complete and accurate log + of the changes. + +
+ c. No information in the Derived Work implies that any persons, + including (but not limited to) the authors of the original version + of the Work, provide any support, including (but not limited to) + the reporting and handling of errors, to recipients of the + Derived Work unless those persons have stated explicitly that + they do provide such support for the Derived Work. + +
+ d. You distribute at least one of the following with the Derived Work: + +
+ 1. A complete, unmodified copy of the Work; + if your distribution of a modified component is made by + offering access to copy the modified component from a + designated place, then offering equivalent access to copy + the Work from the same or some similar place meets this + condition, even though third parties are not compelled to + copy the Work along with the modified component; + +
+ 2. Information that is sufficient to obtain a complete, + unmodified copy of the Work. + +
+7. If you are not the Current Maintainer of the Work, you may +distribute a Compiled Work generated from a Derived Work, as long as +the Derived Work is distributed to all recipients of the Compiled +Work, and as long as the conditions of Clause 6, above, are met with +regard to the Derived Work. + +
+8. The conditions above are not intended to prohibit, and hence do not +apply to, the modification, by any method, of any component so that it +becomes identical to an updated version of that component of the Work as +it is distributed by the Current Maintainer under Clause 4, above. + +
+9. Distribution of the Work or any Derived Work in an alternative +format, where the Work or that Derived Work (in whole or in part) is +then produced by applying some process to that format, does not relax or +nullify any sections of this license as they pertain to the results of +applying that process. + +
+10. a. A Derived Work may be distributed under a different license + provided that license itself honors the conditions listed in + Clause 6 above, in regard to the Work, though it does not have + to honor the rest of the conditions in this license. + +
+ b. If a Derived Work is distributed under a different license, that + Derived Work must provide sufficient documentation as part of + itself to allow each recipient of that Derived Work to honor the + restrictions in Clause 6 above, concerning changes from the Work. + +
+11. This license places no restrictions on works that are unrelated to +the Work, nor does this license place any restrictions on aggregating +such works with the Work by any means. + +
+12. Nothing in this license is intended to, or may be used to, prevent +complete compliance by all parties with all applicable laws. + + +
+NO WARRANTY +
+=========== +
+ +
+There is no warranty for the Work. Except when otherwise stated in +writing, the Copyright Holder provides the Work `as is', without +warranty of any kind, either expressed or implied, including, but not +limited to, the implied warranties of merchantability and fitness for a +particular purpose. The entire risk as to the quality and performance +of the Work is with you. Should the Work prove defective, you assume +the cost of all necessary servicing, repair, or correction. + +
+In no event unless required by applicable law or agreed to in writing +will The Copyright Holder, or any author named in the components of the +Work, or any other party who may distribute and/or modify the Work as +permitted above, be liable to you for damages, including any general, +special, incidental or consequential damages arising out of any use of +the Work or out of inability to use the Work (including, but not limited +to, loss of data, data being rendered inaccurate, or losses sustained by +anyone as a result of any failure of the Work to operate with any other +programs), even if the Copyright Holder or said author or said other +party has been advised of the possibility of such damages. + +
+ +
+MAINTENANCE OF THE WORK +
+======================= +
+ +
+The Work has the status `author-maintained' if the Copyright Holder +explicitly and prominently states near the primary copyright notice in +the Work that the Work can only be maintained by the Copyright Holder +or simply that it is `author-maintained'. + +
+The Work has the status `maintained' if there is a Current Maintainer +who has indicated in the Work that they are willing to receive error +reports for the Work (for example, by supplying a valid e-mail +address). It is not required for the Current Maintainer to acknowledge +or act upon these error reports. + +
+The Work changes from status `maintained' to `unmaintained' if there +is no Current Maintainer, or the person stated to be Current +Maintainer of the work cannot be reached through the indicated means +of communication for a period of six months, and there are no other +significant signs of active maintenance. + +
+You can become the Current Maintainer of the Work by agreement with +any existing Current Maintainer to take over this role. + +
+If the Work is unmaintained, you can become the Current Maintainer of +the Work through the following steps: + +
+ 1. Make a reasonable attempt to trace the Current Maintainer (and + the Copyright Holder, if the two differ) through the means of + an Internet or similar search. + +
+ 2. If this search is successful, then enquire whether the Work + is still maintained. + +
+ a. If it is being maintained, then ask the Current Maintainer + to update their communication data within one month. + +
+ b. If the search is unsuccessful or no action to resume active + maintenance is taken by the Current Maintainer, then announce + within the pertinent community your intention to take over + maintenance. (If the Work is a LaTeX work, this could be + done, for example, by posting to comp.text.tex.) + +
+ 3a. If the Current Maintainer is reachable and agrees to pass + maintenance of the Work to you, then this takes effect + immediately upon announcement. + +
+ b. If the Current Maintainer is not reachable and the Copyright + Holder agrees that maintenance of the Work be passed to you, + then this takes effect immediately upon announcement. + +
+ 4. If you make an `intention announcement' as described in 2b. above + and after three months your intention is challenged neither by + the Current Maintainer nor by the Copyright Holder nor by other + people, then you may arrange for the Work to be changed so as + to name you as the (new) Current Maintainer. + +
+ 5. If the previously unreachable Current Maintainer becomes + reachable once more within three months of a change completed + under the terms of 3b) or 4), then that Current Maintainer must + become or remain the Current Maintainer upon request provided + they then update their communication data within one month. + +
+A change in the Current Maintainer does not, of itself, alter the fact +that the Work is distributed under the LPPL license. + +
+If you become the Current Maintainer of the Work, you should +immediately provide, within the Work, a prominent and unambiguous +statement of your status as Current Maintainer. You should also +announce your new status to the same pertinent community as +in 2b) above. + +
+ +
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE +
+====================================================== +
+ +
+This section contains important instructions, examples, and +recommendations for authors who are considering distributing their +works under this license. These authors are addressed as `you' in +this section. + +
+Choosing This License or Another License +
+---------------------------------------- +
+ +
+If for any part of your work you want or need to use *distribution* +conditions that differ significantly from those in this license, then +do not refer to this license anywhere in your work but, instead, +distribute your work under a different license. You may use the text +of this license as a model for your own license, but your license +should not refer to the LPPL or otherwise give the impression that +your work is distributed under the LPPL. + +
+The document `modguide.tex' in the base LaTeX distribution explains +the motivation behind the conditions of this license. It explains, +for example, why distributing LaTeX under the GNU General Public +License (GPL) was considered inappropriate. Even if your work is +unrelated to LaTeX, the discussion in `modguide.tex' may still be +relevant, and authors intending to distribute their works under any +license are encouraged to read it. +
+ +
+A Recommendation on Modification Without Distribution +
+----------------------------------------------------- +
+ +
+It is wise never to modify a component of the Work, even for your own +personal use, without also meeting the above conditions for +distributing the modified component. While you might intend that such +modifications will never be distributed, often this will happen by +accident -- you may forget that you have modified that component; or +it may not occur to you when allowing others to access the modified +version that you are thus distributing it and violating the conditions +of this license in ways that could have legal implications and, worse, +cause problems for the community. It is therefore usually in your +best interest to keep your copy of the Work identical with the public +one. Many works provide ways to control the behavior of that work +without altering any of its licensed components. +
+ +
+How to Use This License +
+----------------------- +
+ +
+To use this license, place in each of the components of your work both +an explicit copyright notice including your name and the year the work +was authored and/or last substantially modified. Include also a +statement that the distribution and/or modification of that +component is constrained by the conditions in this license. +
+ +Here is an example of such a notice and statement: +
+ + %% pig.dtx + %% Copyright 2005 M. Y. Name + % + % This work may be distributed and/or modified under the + % conditions of the LaTeX Project Public License, either version 1.3 + % of this license or (at your option) any later version. + % The latest version of this license is in + % http://www.latex-project.org/lppl.txt + % and version 1.3 or later is part of all distributions of LaTeX + % version 2005/12/01 or later. + % + % This work has the LPPL maintenance status `maintained'. + % + % The Current Maintainer of this work is M. Y. Name. + % + % This work consists of the files pig.dtx and pig.ins + % and the derived file pig.sty. + +
+Given such a notice and statement in a file, the conditions +given in this license document would apply, with the `Work' referring +to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being +generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' +referring to any `LaTeX-Format', and both `Copyright Holder' and +`Current Maintainer' referring to the person `M. Y. Name'. +
+ +If you do not want the Maintenance section of LPPL to apply to your +Work, change `maintained' above into `author-maintained'. +However, we recommend that you use `maintained', as the Maintenance +section was added in order to ensure that your Work remains useful to +the community even when you can no longer maintain and support it +yourself. +
+ +
+Derived Works That Are Not Replacements +
+--------------------------------------- +
+ +
+Several clauses of the LPPL specify means to provide reliability and +stability for the user community. They therefore concern themselves +with the case that a Derived Work is intended to be used as a +(compatible or incompatible) replacement of the original Work. If +this is not the case (e.g., if a few lines of code are reused for a +completely different task), then clauses 6b and 6d shall not apply. +
+ + +
+Important Recommendations +
+------------------------- +
+ +
+ Defining What Constitutes the Work + +
+ The LPPL requires that distributions of the Work contain all the + files of the Work. It is therefore important that you provide a + way for the licensee to determine which files constitute the Work. + This could, for example, be achieved by explicitly listing all the + files of the Work near the copyright notice of each file or by + using a line such as: + +
+ % This work consists of all files listed in manifest.txt. + +
+ in that place. In the absence of an unequivocal list it might be + impossible for the licensee to determine what is considered by you + to comprise the Work and, in such a case, the licensee would be + entitled to make reasonable conjectures as to which files comprise + the Work. + +
+ + + + + + + + + + + +
The following software may be -included in this product: beanshell; Use of any of this -software +included in this product:MS Runtime Libraries; Use of any of this software is governed by the terms of the license below:
-

Pat Niemeyer
+

Microsoft Corporation +

-

beanshell
+

Runtime Libraries

-jump to LGPL
-
-/*****************************************************************************
- *                                                                           *
- *  This file is part of the BeanShell Java Scripting distribution.          *
- *  Documentation and updates may be found at http://www.beanshell.org/      *
- *                                                                           *
- *  Sun Public License Notice:                                               *
- *                                                                           *
- *  The contents of this file are subject to the Sun Public License Version  *
- *  1.0 (the "License"); you may not use this file except in compliance with *
- *  the License. A copy of the License is available at http://www.sun.com    *
- *                                                                           *
- *  The Original Code is BeanShell. The Initial Developer of the Original    *
- *  Code is Pat Niemeyer. Portions created by Pat Niemeyer are Copyright     *
- *  (C) 2000.  All Rights Reserved.                                          *
- *                                                                           *
- *  GNU Public License Notice:                                               *
- *                                                                           *
- *  Alternatively, the contents of this file may be used under the terms of  *
- *  the GNU Lesser General Public License (the "LGPL"), in which case the    *
- *  provisions of LGPL are applicable instead of those above. If you wish to *
- *  allow use of your version of this file only under the  terms of the LGPL *
- *  and not to allow others to use your version of this file under the SPL,  *
- *  indicate your decision by deleting the provisions above and replace      *
- *  them with the notice and other provisions required by the LGPL.  If you  *
- *  do not delete the provisions above, a recipient may use your version of  *
- *  this file under either the SPL or the LGPL.                              *
- *                                                                           *
- *  Patrick Niemeyer (pat@pat.net)                                           *
- *  Author of Learning Java, O'Reilly & Associates                           *
- *  http://www.pat.net/~pat/                                                 *
- *                                                                           *
- *****************************************************************************/
-
+Microsoft .NET Framework Redistributable EULA +
+SUPPLEMENTAL END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE +
+IMPORTANT: +
+READ CAREFULLY— +
+These Microsoft Corporation ("Microsoft")
+operating system components, including any "online" or electronic
+documentation ("OS Components") are subject to the terms and
+conditions of the agreement under which you have licensed the
+applicable Microsoft operating system product ("OS Product")
+described below (each an "End User License Agreement" or "EULA")
+and the terms and conditions of this Supplemental EULA. BY INSTALLING,
+COPYING OR OTHERWISE USING THE OS COMPONENTS, YOU AGREE TO BE BOUND
+BY THE TERMS AND CONDITIONS OF THE APPLICABLE OS PRODUCT EULA AND
+THIS SUPPLEMENTAL EULA. IF YOU DO NOT AGREE TO THESE TERMS AND
+CONDITIONS, DO NOT INSTALL, COPY OR USE THE OS COMPONENTS.
+NOTE: IF YOU DO NOT HAVE A VALID EULA FOR ANY "OS PRODUCT"
+(MICROSOFT WINDOWS 98, WINDOWS ME, WINDOWS NT 4.0 (DESKTOP
+EDITION), WINDOWS 2000 OPERATING SYSTEM, WINDOWS XP PROFESSIONAL
+AND/OR WINDOWS XP HOME EDITION), YOU ARE NOT AUTHORIZED TO INSTALL,
+COPY OR OTHERWISE USE THE OS COMPONENTS AND YOU HAVE NO RIGHTS UNDER
+THIS SUPPLEMENTAL EULA.
+Capitalized terms used in this Supplemental EULA and not otherwise
+defined herein shall have the meanings assigned to them in the
+applicable OS Product EULA.
+General. The OS Components are provided to you by Microsoft to update,
+supplement, or replace existing functionality of the applicable OS
+Product Microsoft grants you a license to use the OS Components
+under the terms and conditions of the OS Product EULA for the +applicable
+OS Product (which are hereby incorporated by reference) and the terms
+and conditions set forth in this Supplemental EULA, provided that you
+comply with all such terms and conditions. To the extent that any terms
+in this Supplemental EULA conflict with terms in the applicable OS
+Product EULA, the terms of this Supplemental EULA control solely with
+respect to the OS Components.
+Additional Rights and Limitations.
+*If you have multiple validly licensed copies of the applicable OS
+Product(s), you may reproduce, install and use one copy of the OS
+Components as part of such applicable OS Product(s) on all of your
+computers running validly licensed copies of the OS Product(s)
+provided that you use such additional copies of the OS Components
+in accordance with the terms and conditions above. You may not
+disclose the results of any benchmark test of the .NET Framework
+component of the OS Components to any third party without Microsoft's
+prior written approval. Microsoft retains all right, title and
+interest in and to the OS Components. All rights not expressly granted
+are reserved by Microsoft.
+IF THE APPLICABLE OS PRODUCT WAS LICENSED TO YOU BY MICROSOFT OR ANY
+OF ITS WHOLLY OWNED SUBSIDIARIES, THE LIMITED WARRANTY (IF ANY)
+INCLUDED IN THE APPLICABLE OS PRODUCT EULA APPLIES TO THE OS COMPONENTS
+PROVIDED THE OS COMPONENTS HAVE BEEN LICENSED BY YOU WITHIN THE TERM OF
+THE LIMITED WARRANTY IN THE APPLICABLE OS PRODUCT EULA. HOWEVER, THIS
+SUPPLEMENTAL EULA DOES NOT EXTEND THE TIME PERIOD FOR WHICH THE LIMITED
+WARRANTY IS PROVIDED.
+IF THE APPLICABLE OS PRODUCT WAS LICENSED TO YOU BY AN ENTITY OTHER +THAN
+MICROSOFT OR ANY OF ITS WHOLLY OWNED SUBSIDIARIES, MICROSOFT DISCLAIMS
+ALL WARRANTIES WITH RESPECT TO THE OS COMPONENTS AS FOLLOWS:
+DISCLAIMER OF WARRANTIES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE
+LAW, MICROSOFT AND ITS SUPPLIERS PROVIDE TO YOU THE OS COMPONENTS, AND
+ANY (IF ANY) SUPPORT SERVICES RELATED TO THE OS COMPONENTS ("SUPPORT
+SERVICES") AS IS AND WITH ALL FAULTS; and Microsoft and its +suppliers
+hereby disclaim with respect to THE os COMPONENTS AND SUPPORT SERVICES
+all warranties and conditions, whether express, implied or statutory,
+including, but not limited to, any (if any) warranties or conditions
+of OR RELATED TO: TITLE, NON-INFRINGEMENT, merchantability, fitness
+for a particular purpose, lack of viruses, accuracy or completeness
+of responses, results, lack of negligence or lack of workmanlike +effort,
+QUIET ENJOYMENT, QUIET POSSESSION, AND CORRESPONDENCE TO DESCRIPTION.
+The entire risk arising out of use or performance of the OS Components
+AND ANY SUPPORT SERVICES remains with you.
+EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES. To
+the maximum extent permitted by applicable law, in no event shall
+Microsoft or its suppliers be liable for any special, incidental,
+indirect, or consequential damages whatsoever (including, but not
+limited to, damages for: loss of profits, LOSS OF confidential or
+other information, business interruption, personal injury, loss of
+privacy, failure to meet any duty (including of good faith or of
+reasonable care), negligence, and any other pecuniary or other loss
+whatsoever) arising out of or in any way related to the use of or
+inability to use the OS Components OR THE SUPPORT SERVICES, OR the
+provision of or failure to provide Support Services, or otherwise
+under or in connection with any provision of this Supplemental EULA,
+even if Microsoft or any supplier has been advised of the possibility
+of such damages.
+LIMITATION OF LIABILITY AND REMEDIES. NOTWITHSTANDING ANY DAMAGES THAT
+YOU MIGHT INCUR FOR ANY REASON WHATSOEVER (INCLUDING, WITHOUT
+LIMITATION, ALL DAMAGES REFERENCED ABOVE AND ALL DIRECT OR GENERAL
+DAMAGES), THE ENTIRE LIABILITY OF MICROSOFT AND ANY OF ITS SUPPLIERS
+UNDER ANY PROVISION OF THIS SUPPLEMENTAL EULA AND YOUR EXCLUSIVE
+REMEDY FOR ALL OF THE FOREGOING SHALL BE LIMITED TO THE GREATER OF
+THE AMOUNT ACTUALLY PAID BY YOU FOR THE OS COMPONENTS OR U.S.$5.00.
+THE FOREGOING LIMITATIONS, EXCLUSIONS AND DISCLAIMERS SHALL APPLY
+TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, EVEN IF ANY REMEDY
+FAILS ITS ESSENTIAL PURPOSE.
+
+Si vous avez acquis votre produit Microsoft au CANADA, le texte suivant
+vous concerne :
+SI LE PRODUIT OS APPLICABLE VOUS A ÉTÉ CONCÉDÉ SOUS LICENCE PAR
+MICROSOFT OU PAR L'UNE QUELCONQUE DE SES FILIALES À 100%, LA GARANTIE
+LIMITÉE (SI ELLE EXISTE) APPLICABLE EN VERTU DU CONTRAT DE LICENCE
+UTILISATEUR FINAL (« CLUF ») RELATIF À CE PRODUIT OS S'APPLIQUE AUX
+COMPOSANTS SYSTÈME D'EXPLOITATION DE MICROSOFT Y COMPRIS TOUTE
+DOCUMENTATION « EN LIGNE » OU SOUS FORME ÉLECTRONIQUE (LES «
+COMPOSANTS OS »), À CONDITION QUE CEUX-CI VOUS AIENT ÉTÉ CONCÉDÉS
+SOUS LICENCE PENDANT LA DURÉE DE LA GARANTIE LIMITÉE DU CLUF RELATIF
+AU PRODUIT OS APPLICABLE. LE PRÉSENT CLUF SUPPLÉMENTAIRE N'A PAS POUR
+EFFET DE PROROGER LA DURÉE DE CETTE GARANTIE LIMITÉE.
+SI LE PRODUIT OS VOUS A ÉTÉ CONCÉDÉ SOUS LICENCE PAR UNE ENTITÉ AUTRE
+QUE MICROSOFT OU QUE L'UNE QUELCONQUE DE SES FILIALES À 100%,
+MICROSOFT EXCLUT TOUTE GARANTIE RELATIVE AUX COMPOSANTS OS COMME
+CELA EST STIPULÉ CI-APRÈS :
+EXCLUSION DE GARANTIE. DANS TOUTE LA MESURE PERMISE PAR LE DROIT
+APPLICABLE, MICROSOFT ET SES FOURNISSEURS VOUS FOURNISSENT LES
+COMPOSANTS OS, AINSI QUE, LE CAS ÉCHÉANT, TOUT SERVICE D'ASSISTANCE
+RELATIF À CES COMPOSANTS OS (LES "SERVICES D'ASSISTANCE"), « COMME
+TELS ET AVEC TOUS LEURS DEFAUTS ». EN OUTRE, MICROSOFT ET SES
+FOURNISSEURS EXCLUENT PAR LES PRÉSENTES TOUTE AUTRE GARANTIE LÉGALE,
+EXPRESSE OU IMPLICITE, RELATIVE AUX COMPOSANTS OS ET AUX SERVICES
+D'ASSISTANCE, NOTAMMENT (LE CAS ÉCHÉANT), TOUTE GARANTIE : DE +PROPRIÉTÉ,
+D'ABSENCE DE CONTREFAÇON, DE QUALITÉ, D'ADAPTATION À UN USAGE
+PARTICULIER, D'ABSENCE DE VIRUS, DE PRÉCISION, D'EXHAUSTIVITÉ DES
+RÉPONSES, DES RÉSULTATS OBTENUS, D'ABSENCE DE NÉGLIGENCE, OU DE
+DÉFAUT DE FABRICATION, DE JOUISSANCE PAISIBLE, D'ABSENCE DE TROUBLE
+DE POSSESSION ET DE CONFORMITÉ À LA DESCRIPTION. VOUS ASSUMEZ
+L'ENSEMBLE DES RISQUES DÉCOULANT DE L'UTILISATION OU DU FONCTIONNEMENT
+DES COMPOSANTS OS ET DES SERVICES D'ASSISTANCE.
+EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES ACCESSOIRES, INDIRECTS
+ET CERTAINS AUTRES TYPES DE DOMMAGES. DANS TOUTE LA MESURE PERMISE
+PAR LE DROIT APPLICABLE, MICROSOFT OU SES FOURNISSEURS NE POURRONT EN
+AUCUN CAS ÊTRE TENUS RESPONSABLES DE TOUT DOMMAGE SPÉCIAL, ACCESSOIRE,
+INCIDENT OU INDIRECT DE QUELQUE NATURE QUE CE SOIT (Y COMPRIS, MAIS
+NON DE FACON LIMITATIVE, LES PERTES DE BÉNÉFICES, PERTES D'INFORMATIONS
+CONFIDENTIELLES OU AUTRES INFORMATIONS, INTERRUPTIONS D'ACTIVITÉ,
+PRÉJUDICES CORPORELS, ATTEINTES À LA VIE PRIVÉE, MANQUEMENT À TOUTE
+OBLIGATION (NOTAMMENT L'OBLIGATION DE BONNE FOI ET DE DILIGENCE),
+NÉGLIGENCE, ET POUR TOUTE PERTE PÉCUNIAIRE OU AUTRE DE QUELQUE NATURE
+QUE CE SOIT), RÉSULTANT DE, OU RELATIFS A, L'UTILISATION OU
+L'IMPOSSIBILITÉ D'UTILISER LES COMPOSANTS OS OU LES SERVICES +D'ASSISTANCE,
+OU LA FOURNITURE OU LE DÉFAUT DE FOURNITURE DES SERVICES D'ASSISTANCE, +OU
+AUTREMENT EN VERTU DE, OU RELATIVEMENT A, TOUTE DISPOSITION DE CE CLUF
+SUPPLÉMENTAIRE, MÊME SI LA SOCIÉTÉ MICROSOFT OU UN QUELCONQUE +FOURNISSEUR
+A ÉTÉ PRÉVENU DE L'ÉVENTUALITÉ DE TELS DOMMAGES.
+LIMITATION DE RESPONSABILITÉ ET RECOURS. NONOBSTANT TOUT DOMMAGE QUE +VOUS
+POURRIEZ SUBIR POUR QUELQUE MOTIF QUE CE SOIT (NOTAMMENT TOUS LES +DOMMAGES
+ÉNUMÉRÉS CI-DESSUS ET TOUS LES DOMMAGES DIRECTS OU GÉNÉRAUX), L'ENTIÈRE
+RESPONSABILITÉ DE MICROSOFT ET DE L'UN QUELCONQUE DE SES FOURNISSEURS +AU
+TITRE DE TOUTE STIPULATION DE CE CLUF SUPPLÉMENTAIRE ET VOTRE SEUL +RECOURS
+EN CE QUI CONCERNE TOUS LES DOMMAGES PRÉCITÉS NE SAURAIENT EXCÉDER LE
+MONTANT QUE VOUS AVEZ EFFECTIVEMENT PAYÉ POUR LES COMPOSANTS OS OU 5 +DOLLARS
+US (US$ 5,00), SELON LE PLUS ÉLEVÉ DES DEUX MONTANTS. LES PRÉSENTES
+LIMITATIONS ET EXCLUSIONS DEMEURERONT APPLICABLES DANS TOUTE LA MESURE
+PERMISE PAR LE DROIT APPLICABLE QUAND BIEN MÊME UN QUELCONQUE REMÈDE À +UN
+QUELCONQUE MANQUEMENT NE PRODUIRAIT PAS D'EFFET.
+La présente Convention est régie par les lois de la province d'Ontario,
+Canada. Chacune des parties à la présente reconnaît irrévocablement la
+compétence des tribunaux de la province d'Ontario et consent à +instituer
+tout litige qui pourrait découler de la présente auprès des tribunaux
+situés dans le district judiciaire de York, province d'Ontario.
+Au cas où vous auriez des questions concernant cette licence ou que +vous
+désiriez vous mettre en rapport avec Microsoft pour quelque raison que
+ce soit, veuillez contacter la succursale Microsoft desservant votre
+pays, ou écrire à : Microsoft Sales Information Center, One Microsoft
+Way, Redmond, Washington 98052-6399. + + + + + + + + +
The following software may be +included in this product: Ispell W?rterbuch igerman98; Use of any of this software +is governed by the terms of the license below:
+

Bjoern Jacke +
+

+

German Dictionaries igerman98
+

+ +OASIS distribution license agreement 0.1 from 2005-11-10 +
+Without any modifications this dictionary may be distributed with programs +that +support the OASIS Open Document Format for Office Applications and whose +PRIMARY format for saving documents is the Open Document Format. +
+This requires that all licenses and copyright files are also distributed +together +with the package the dictionary is shipped with. +
+Any modifications of the dictionary files are not allowed for this +agreement, modifications require the use of the GNU GENERAL PUBLIC LICENSE. +
+If you have questions or don't get along with this, send me your +comments/questions/ideas to Bjoern Jacke +
+ + + + + + + + +
The following software may be +included in this product: WordNet Release 2.1; Use of any of this software +is governed by the terms of the license below:
+

Princeton University +
+

+

WordNet 2.1
+

+WordNet 2.1 Copyright 2005 by Princeton University. +
+ This software and database is being provided to you, the LICENSEE, by + Princeton University under the following license. By obtaining, using + and/or copying this software and database, you agree that you have + read, understood, and will comply with these terms and conditions.: +
+ Permission to use, copy, modify and distribute this software and + database and its documentation for any purpose and without fee or + royalty is hereby granted, provided that you agree to comply with + the following copyright notice and statements, including the disclaimer, + and that the same appear on ALL copies of the software, database and + documentation, including modifications that you make for internal + use or for distribution. +
+ WordNet 2.1 Copyright 2005 by Princeton University. All rights reserved. +
+ THIS SOFTWARE AND DATABASE IS PROVIDED "AS IS" AND PRINCETON + UNIVERSITY MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR + IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PRINCETON + UNIVERSITY MAKES NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- + ABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE + OF THE LICENSED SOFTWARE, DATABASE OR DOCUMENTATION WILL NOT + INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR + OTHER RIGHTS. +
+ The name of Princeton University or Princeton may not be used in + advertising or publicity pertaining to distribution of the software + and/or database. Title to copyright in this software, database and + any associated documentation shall at all times remain with + Princeton University and LICENSEE agrees to preserve same. +
+ + + + + + + +
The following software may be +included in this product:Bitstram Vera Fonts; Use of any of this software +is governed +by the terms of the license below:
+

Bitstream, Inc. +
+

+

Bitstream Vera Fonts
+

+ + Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. +Bitstream Vera is a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a +copy of the fonts accompanying this license (“Fontsâ€) and associated +documentation files (the “Font Softwareâ€), to reproduce and distribute +the Font Software, including without limitation the rights to use, copy, +merge, publish, distribute, and/or sell copies of the Font Software, and +to permit persons to whom the Font Software is furnished to do so, +subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces.
+
+The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the Fonts, +only if the fonts are renamed to names not containing either the words +“Bitstream†or the word “Veraâ€.
+
+This License becomes null and void to the extent applicable to Fonts or +Font Software that has been modified and is distributed under the +“Bitstream Vera†names.
+
+The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT +SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font +Software without prior written authorization from the Gnome Foundation +or Bitstream Inc., respectively. For further information, contact: fonts +at gnome dot org.

+Arev Fonts Copyright +
+Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. +
+Permission is hereby granted, free of charge, to any person obtaining a copy of +the fonts accompanying this license ("Fonts") and associated documentation files +(the "Font Software"), to reproduce and distribute the modifications to the +Bitstream Vera Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, and/or sell copies of the Font Software, and +to permit persons to whom the Font Software is furnished to do so, subject to +the following conditions: +
+The above copyright and trademark notices and this permission notice shall be +included in all copies of one or more of the Font Software typefaces. +
+The Font Software may be modified, altered, or added to, and in particular the +designs of glyphs or characters in the Fonts may be modified and additional +glyphs or characters may be added to the Fonts, only if the fonts are renamed to +names not containing either the words "Tavmjong Bah" or the word "Arev". +
+This License becomes null and void to the extent applicable to Fonts or Font +Software that has been modified and is distributed under the "Tavmjong Bah Arev" +names. +
+The Font Software may be sold as part of a larger software package but no copy +of one or more of the Font Software typefaces may be sold by itself. +
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR +OTHER RIGHT. IN NO EVENT SHALL TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR +CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. +
+Except as contained in this notice, the name of Tavmjong Bah shall not be used +in advertising or otherwise to promote the sale, use or other dealings in this +Font Software without prior written authorization from Tavmjong Bah. For further +information, contact: tavmjong @ free . fr. +
+ + + + + + + +
The following software may be +included in this product: Liberation Fonts; Use of any of this +software +is governed +by the terms of the license below:
+

RedHat, Inc.
+

+

Liberation Fonts
+

+ +refer to GNU General Public License and the following terms: + +
+ +LICENSE AGREEMENT AND LIMITED PRODUCT WARRANTY LIBERATION FONT SOFTWARE +
+This agreement governs the use of the Software and any updates to the +Software, regardless of the delivery mechanism. Subject to the following +terms, Red Hat, Inc. ("Red Hat") grants to the user ("Client") a license to +this collective work pursuant to the GNU General Public License v.2 with the +exceptions set forth below and such other terms as our set forth in this End +User License Agreement. +
+1. The Software and License Exception. LIBERATION font software (the +"Software") consists of TrueType-OpenType formatted font software for +rendering LIBERATION typefaces in sans serif, serif, and monospaced character +styles. You are licensed to use, modify, copy, and distribute the Software +pursuant to the GNU General Public License v.2 with the following exceptions: +
+1) As a special exception, if you create a document which uses this font, and +embed this font or unaltered portions of this font into the document, this +font does not by itself cause the resulting document to be covered by the GNU +General Public License. This exception does not however invalidate any other +reasons why the document might be covered by the GNU General Public License. +If you modify this font, you may extend this exception to your version of the +font, but you are not obligated to do so. If you do not wish to do so, delete +this exception statement from your version. + +
+2) As a further exception, any distribution of the object code of the Software +in a physical product must provide you the right to access and modify the +source code for the Software and to reinstall that modified version of the +Software in object code form on the same physical product on which you +received it. +
+2. Intellectual Property Rights. The Software and each of its components, +including the source code, documentation, appearance, structure and +organization are owned by Red Hat and others and are protected under copyright +and other laws. Title to the Software and any component, or to any copy, +modification, or merged portion shall remain with the aforementioned, subject +to the applicable license. The "LIBERATION" trademark is a trademark of Red +Hat, Inc. in the U.S. and other countries. This agreement does not permit +Client to distribute modified versions of the Software using Red Hat's +trademarks. If Client makes a redistribution of a modified version of the +Software, then Client must modify the files names to remove any reference to +the Red Hat trademarks and must not use the Red Hat trademarks in any way to +reference or promote the modified Software. +
+3. Limited Warranty. To the maximum extent permitted under applicable law, the +Software is provided and licensed "as is" without warranty of any kind, +expressed or implied, including the implied warranties of merchantability, +non-infringement or fitness for a particular purpose. Red Hat does not warrant +that the functions contained in the Software will meet Client's requirements +or that the operation of the Software will be entirely error free or appear +precisely as described in the accompanying documentation. +
+4. Limitation of Remedies and Liability. To the maximum extent permitted by +applicable law, Red Hat or any Red Hat authorized dealer will not be liable to +Client for any incidental or consequential damages, including lost profits or +lost savings arising out of the use or inability to use the Software, even if +Red Hat or such dealer has been advised of the possibility of such damages. +
+5. Export Control. As required by U.S. law, Client represents and warrants +that it: (a) understands that the Software is subject to export controls under +the U.S. Commerce Department's Export Administration Regulations ("EAR"); (b) +is not located in a prohibited destination country under the EAR or U.S. +sanctions regulations (currently Cuba, Iran, Iraq, Libya, North Korea, Sudan +and Syria); (c) will not export, re-export, or transfer the Software to any +prohibited destination, entity, or individual without the necessary export +license(s) or authorizations(s) from the U.S. Government; (d) will not use or +transfer the Software for use in any sensitive nuclear, chemical or biological +weapons, or missile technology end-uses unless authorized by the U.S. +Government by regulation or specific license; (e) understands and agrees that +if it is in the United States and exports or transfers the Software to +eligible end users, it will, as required by EAR Section 740.17(e), submit +semi-annual reports to the Commerce Department's Bureau of Industry & Security +(BIS), which include the name and address (including country) of each +transferee; and (f) understands that countries other than the United States +may restrict the import, use, or export of encryption products and that it +shall be solely responsible for compliance with any such import, use, or +export restrictions. +
+6. General. If any provision of this agreement is held to be unenforceable, +that shall not affect the enforceability of the remaining provisions. This +agreement shall be governed by the laws of the State of North Carolina and of +the United States, without regard to any conflict of laws provisions, except +that the United Nations Convention on the International Sale of Goods shall +not apply. +
+Copyright © 2007 Red Hat, Inc. All rights reserved. LIBERATION is a trademark +of Red Hat, Inc. +
+ +
+ + + + + + + + + W3C IPR SOFTWARE NOTICE + + +
The following software may be +included in this product: MathML DTD; Use of any of this +software +is governed +by the terms of the license below:
+

World Wide Web Consortium (W3C)
+

+

MathML DTD
+

+

W3C® SOFTWARE NOTICE AND LICENSE

+

Copyright © 1994-2001 World +Wide Web Consortium, (Massachusetts +Institute of +Technology, Institut National de +Recherche en Informatique et en Automatique, Keio University). All Rights +Reserved. +http://www.w3.org/Consortium/Legal/

+

This W3C work (including software, documents, or other related +items) is being provided by the copyright holders under the +following license. By obtaining, using and/or copying this work, +you (the licensee) agree that you have read, understood, and will +comply with the following terms and conditions:

+

Permission to use, copy, modify, and distribute this software +and its documentation, with or without modification,  for any +purpose and without fee or royalty is hereby granted, provided that +you include the following on ALL copies of the software and +documentation or portions thereof, including modifications, that +you make:

+
    +
  1. The full text of this NOTICE in a location viewable to users of +the redistributed or derivative work.
  2. +
  3. Any pre-existing intellectual property disclaimers, notices, or +terms and conditions. If none exist, a short notice of the +following form (hypertext is preferred, text is permitted) should +be used within the body of any redistributed or derivative code: +"Copyright © [$date-of-software] +World Wide Web Consortium, (Massachusetts +Institute of +Technology, Institut National de +Recherche en Informatique et en Automatique, Keio University). All Rights +Reserved. +http://www.w3.org/Consortium/Legal/"
  4. +
  5. Notice of any changes or modifications to the W3C files, +including the date changes were made. (We recommend you provide +URIs to the location from which the code is derived.)
  6. +
+

THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND +COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF +MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE +USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD +PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.

+

COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, +SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE +SOFTWARE OR DOCUMENTATION.

+

The name and trademarks of copyright holders may NOT be used in +advertising or publicity pertaining to the software without +specific, written prior permission. Title to copyright in this +software and any associated documentation will at all times remain +with copyright holders.

+
+ + + + + + + +
The following software may be +included in this product: NSIS; Use of any of this +software +is governed +by the terms of the license below:
+

Nullsoft, Inc.
+

+

NSIS
+

+Copyright (C) 1999-2003 Nullsoft, Inc. +
+This license applies to everything in the NSIS package, except where otherwise +noted. +
+This software is provided 'as-is', without any express or implied warranty. In +no event will the authors be held liable for any damages arising from the use of +this software. +
+Permission is granted to anyone to use this software for any purpose, including +commercial applications, and to alter it and redistribute it freely, subject to +the following restrictions: +
+ 1. The origin of this software must not be misrepresented; you must not claim +that you wrote the original software. If you use this software in a product, an +acknowledgment in the product documentation would be appreciated but is not +required. +
+ 2. Altered source versions must be plainly marked as such, and must not be +misrepresented as being the original software. +
+ 3. This notice may not be removed or altered from any source distribution. + +
+ + + + +
The following software may be +included in this product: PostScript(R) AFM Files; Use of any of this software +is governed +by the terms of the license below:
+

Adobe
+

+

PostScript(R) AFM files
+

+
+ Adobe Core 35 AFM Files with 314 Glyph Entries + +
+ This file and the 35 PostScript(R) AFM files it + accompanies may be used, copied, and distributed for any purpose and + without charge, with or without modification, provided that all + copyright notices are retained; that the AFM files are not + distributed without this file; that all modifications to this file + or any of the AFM files are prominently noted in the modified + file(s); and that this paragraph is not modified. Adobe Systems has + no responsibility or obligation to support the use of the AFM + files. + +
+ + + + + + + + +
The following software may be +included in this product: Antigrain; Use of any of this +software +is governed +by the terms of the license below:
+

Axim Shemanarev
+

+

Antigrain
+

+ +
+Anti-Grain Geometry - Version 2.0 +
+Copyright (C) 2002-2004 Maxim Shemanarev (McSeem) +
+ +Permission to copy, use, modify, sell and distribute this software +is granted provided this copyright notice appears in all copies. +This software is provided "as is" without express or implied +warranty, and with no claim as to its suitability for any purpose. +
+ + + + + + + +
The following software may be +included in this product: beanshell; Use of any of this +software +is governed +by the terms of the license below:
+

Pat Niemeyer
+

+

beanshell
+

+jump to LGPL
+ +
+
+/*****************************************************************************
+ *                                                                           *
+ *  This file is part of the BeanShell Java Scripting distribution.          *
+ *  Documentation and updates may be found at http://www.beanshell.org/      *
+ *                                                                           *
+ *  Sun Public License Notice:                                               *
+ *                                                                           *
+ *  The contents of this file are subject to the Sun Public License Version  *
+ *  1.0 (the "License"); you may not use this file except in compliance with *
+ *  the License. A copy of the License is available at http://www.sun.com    *
+ *                                                                           *
+ *  The Original Code is BeanShell. The Initial Developer of the Original    *
+ *  Code is Pat Niemeyer. Portions created by Pat Niemeyer are Copyright     *
+ *  (C) 2000.  All Rights Reserved.                                          *
+ *                                                                           *
+ *  GNU Public License Notice:                                               *
+ *                                                                           *
+ *  Alternatively, the contents of this file may be used under the terms of  *
+ *  the GNU Lesser General Public License (the "LGPL"), in which case the    *
+ *  provisions of LGPL are applicable instead of those above. If you wish to *
+ *  allow use of your version of this file only under the  terms of the LGPL *
+ *  and not to allow others to use your version of this file under the SPL,  *
+ *  indicate your decision by deleting the provisions above and replace      *
+ *  them with the notice and other provisions required by the LGPL.  If you  *
+ *  do not delete the provisions above, a recipient may use your version of  *
+ *  this file under either the SPL or the LGPL.                              *
+ *                                                                           *
+ *  Patrick Niemeyer (pat@pat.net)                                           *
+ *  Author of Learning Java, O'Reilly & Associates                           *
+ *  http://www.pat.net/~pat/                                                 *
+ *                                                                           *
+ *****************************************************************************/
+
+ + + + + + + +
The following software may be included in this product: C++ Boost Library; Use of any of this software is governed by the terms of the license below:
-

Boost.org
+

Boost.org

-

C++ Boost Library
+

C++ Boost Library

Boost Software License - Version 1.0 - August 17th, 2003
-Permission is hereby granted, free of charge, to any person or -organization -obtaining a copy of the software and accompanying documentation covered -by + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of -the -Software, and to permit third-parties to whom the Software is furnished -to +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:
-The copyright notices in the Software and this entire statement, -including + +The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, -and +must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code -generated by +works are solely in the form of machine-executable object code generated by a source language processor.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO -EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE -LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR -OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
The following software may be -included in this product: Cairo; Use of any of this -software -is governed -by the terms of the license below:
-

Cairographics.org
-

-

Cairo (B)
-

-jump to MPL 1.1
+ + + + + + +
The following software may be +included in this product: Cairo; Use of any of this +software +is governed +by the terms of the license below:
+

Cairographics.org
+

+

Cairo (B)
+

+ + +jump to MPL 1.1
+ + + + + + + + +
The following software may be included in this product:Charis SIL v4; Use of any of this software is governed by the terms of the license below:
-

SIL International
+

SIL International

-

Charis SIL v.4
+

Charis SIL v.4

-
-This Font Software is Copyright (c) 1997-2006, SIL International +
This Font Software is Copyright (c) 1997-2006, SIL International (http://scripts.sil.org/).
All Rights Reserved.
+ "Charis SIL" is a Reserved Font Name for this Font Software.
"SIL" is a Reserved Font Name for this Font Software.
-This Font Software is licensed under the SIL Open Font License, Version -1.0. + +This Font Software is licensed under the SIL Open Font License, Version 1.0.
-No modification of the license is permitted, only verbatim copy is -allowed. +No modification of the license is permitted, only verbatim copy is allowed.
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+ -----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.0 - 22 November 2005 @@ -1152,4258 +1630,7024 @@ SIL OPEN FONT LICENSE Version 1.0 - 22 November 2005 PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide + development of cooperative font projects, to support the font creation + efforts of academic and linguistic communities, and to provide an open + framework in which fonts may be shared and improved in partnership with + others. +
+ The OFL allows the licensed fonts to be used, studied, modified and + redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, + +fonts, including any derivative works, can be bundled, embedded, + redistributed and sold with any software provided that the font + names of derivative works are changed. The fonts and derivatives, + however, cannot be released under any other type of license. +
+ DEFINITIONS
"Font Software" refers to any and all of the following:
-- font files
-- data files
-- source code
-- build scripts
-- documentation
+ - font files +
+ - data files +
+ - source code +
+ - build scripts +
+ - documentation +
+ + "Reserved Font Name" refers to the Font Software name as seen by + users and any other names as specified after the copyright statement. +
+ "Standard Version" refers to the collection of Font Software + components as distributed by the Copyright Holder.
+ + "Modified Version" refers to any derivative font software made by + adding to, deleting, or substituting -- in part or in whole -- + any of the components of the Standard Version, by changing formats + or by porting the Font Software to a new environment. +
+ "Author" refers to any designer, engineer, programmer, technical + writer or other person who contributed to the Font Software. +
-PERMISSION & CONDITIONS + +PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining + a copy of the Font Software, to use, study, copy, merge, embed, modify, + redistribute, and sell modified and unmodified copies of the Font + Software, subject to the following conditions: +
+ 1) Neither the Font Software nor any of its individual components, + in Standard or Modified Versions, may be sold by itself.
+ + 2) Standard or Modified Versions of the Font Software may be bundled, + redistributed and sold with any software, provided that each copy + contains the above copyright notice and this license. These can be + included either as stand-alone text files, human-readable headers or + in the appropriate machine-readable metadata fields within text or + binary files as long as those fields can be easily viewed by the user. +
+ 3) No Modified Version of the Font Software may use the Reserved Font + Name(s), in part or in whole, unless explicit written permission is -granted by the Copyright Holder. This restriction applies to all + +granted by the Copyright Holder. This restriction applies to all + references stored in the Font Software, such as the font menu name and + other font description fields, which are used to differentiate the + font from others. +
+ 4) The name(s) of the Copyright Holder or the Author(s) of the Font + Software shall not be used to promote, endorse or advertise any + Modified Version, except to acknowledge the contribution(s) of the + Copyright Holder and the Author(s) or with their explicit written + permission. +
+ 5) The Font Software, modified or unmodified, in part or in whole, + must be distributed using this license, and may not be distributed + under any other license. +
+ TERMINATION
This license becomes null and void if any of the above conditions are + not met. +
+ DISCLAIMER + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT + OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE + COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL + DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE.
-
The following software may be -included in this product:KDE Crystal theme icons; Use of any of this -software -is governed -by the terms of the license below:
-

KDE Artists:
-

-

KDE Crystal theme -icons
-

-KDE Crystal theme icons. -
-Copyright (C) 2002 and following years KDE Artists -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation, -version 2.1 of the License. -
-
License

The Crystal Project are released under LGPL.

GNU General Public License.

0.

This License Agreement applies to any software library or other program
which contains a notice placed by the copyright holder or other authorized party
saying it may be distributed under the terms of this Lesser General Public
License (also called "this License"). Each licensee is addressed as "you".

A "library" means a collection of software functions and/or data prepared
so as to be conveniently linked with application programs (which use some of
those functions and data) to form executables.

The "Library", below, refers to any such software library or work which
has been distributed under these terms. A "work based on the Library" means
either the Library or any derivative work under copyright law: that is to say, a
work containing the Library or a portion of it, either verbatim or with
modifications and/or translated straightforwardly into another language.
(Hereinafter, translation is included without limitation in the term
"modification".)

"Source code" for a work means the preferred form of the work for making
modifications to it. For a library, complete source code means all the source
code for all modules it contains, plus any associated interface definition
files, plus the scripts used to control compilation and installation of the library.

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of running a
program using the Library is not restricted, and output from such a program is
covered only if its contents constitute a work based on the Library (independent
of the use of the Library in a tool for writing it). Whether that is true
depends on what the Library does and what the program that uses the Library does.
1.

You may copy and distribute verbatim copies of the Library's complete
source code as you receive it, in any medium, provided that you conspicuously
and appropriately publish on each copy an appropriate copyright notice and
disclaimer of warranty; keep intact all the notices that refer to this License
and to the absence of any warranty; and distribute a copy of this License along
with the Library.

You may charge a fee for the physical act of transferring a copy, and you
may at your option offer warranty protection in exchange for a fee.
2.

You may modify your copy or copies of the Library or any portion of it,
thus forming a work based on the Library, and copy and distribute such
modifications or work under the terms of Section 1 above, provided that you also
meet all of these conditions:
1. The modified work must itself be a software library.
2. You must cause the files modified to carry prominent notices stating
that you changed the files and the date of any change.
3. You must cause the whole of the work to be licensed at no charge to
all third parties under the terms of this License.
4. If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses the facility,
other than as an argument passed when the facility is invoked, then you must
make a good faith effort to ensure that, in the event an application does not
supply such function or table, the facility still operates, and performs
whatever part of its purpose remains meaningful.

(For example, a function in a library to compute square roots has a
purpose that is entirely well-defined independent of the application. Therefore,
Subsection 2d requires that any application-supplied function or table used by
this function must be optional: if the application does not supply it, the
square root function must still compute square roots.)

These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Library, and can be reasonably
considered independent and separate works in themselves, then this License, and
its terms, do not apply to those sections when you distribute them as separate
works. But when you distribute the same sections as part of a whole which is a
work based on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the entire whole,
and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your
rights to work written entirely by you; rather, the intent is to exercise the
right to control the distribution of derivative or collective works based on the
Library.

In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of a storage
or distribution medium does not bring the other work under the scope of this
License.
3.

You may opt to apply the terms of the ordinary GNU General Public License
instead of this License to a given copy of the Library. To do this, you must
alter all the notices that refer to this License, so that they refer to the
ordinary GNU General Public License, version 2, instead of to this License. (If
a newer version than version 2 of the ordinary GNU General Public License has
appeared, then you can specify that version instead if you wish.) Do not make
any other change in these notices.

Once this change is made in a given copy, it is irreversible for that
copy, so the ordinary GNU General Public License applies to all subsequent
copies and derivative works made from that copy.

This option is useful when you wish to copy part of the code of the
Library into a program that is not a library.
4.

You may copy and distribute the Library (or a portion or derivative of it,
under Section 2) in object code or executable form under the terms of Sections 1
and 2 above provided that you accompany it with the complete corresponding
machine-readable source code, which must be distributed under the terms of
Sections 1 and 2 above on a medium customarily used for software interchange.

If distribution of object code is made by offering access to copy from a
designated place, then offering equivalent access to copy the source code from
the same place satisfies the requirement to distribute the source code, even
though third parties are not compelled to copy the source along with the object
code.
5.

A program that contains no derivative of any portion of the Library, but
is designed to work with the Library by being compiled or linked with it, is
called a "work that uses the Library". Such a work, in isolation, is not a
derivative work of the Library, and therefore falls outside the scope of this
License.
However, linking a "work that uses the Library" with the Library creates
an executable that is a derivative of the Library (because it contains portions
of the Library), rather than a "work that uses the library". The executable is
therefore covered by this License. Section 6 states terms for distribution of
such executables.

When a "work that uses the Library" uses material from a header file that
is part of the Library, the object code for the work may be a derivative work of
the Library even though the source code is not. Whether this is true is
especially significant if the work can be linked without the Library, or if the
work is itself a library. The threshold for this to be true is not precisely
defined by law.

If such an object file uses only numerical parameters, data structure
layouts and accessors, and small macros and small inline functions (ten lines or
less in length), then the use of the object file is unrestricted, regardless of
whether it is legally a derivative work. (Executables containing this object
code plus portions of the Library will still fall under Section 6.)

Otherwise, if the work is a derivative of the Library, you may distribute
the object code for the work under the terms of Section 6. Any executables
containing that work also fall under Section 6, whether or not they are linked
directly with the Library itself.
6.

As an exception to the Sections above, you may also combine or link a
"work that uses the Library" with the Library to produce a work containing
portions of the Library, and distribute that work under terms of your choice,
provided that the terms permit modification of the work for the customer's own
use and reverse engineering for debugging such modifications.

You must give prominent notice with each copy of the work that the Library
is used in it and that the Library and its use are covered by this License. You
must supply a copy of this License. If the work during execution displays
copyright notices, you must include the copyright notice for the Library among
them, as well as a reference directing the user to the copy of this License.
Also, you must do one of these things:
1. Accompany the work with the complete corresponding machine-readable
source code for the Library including whatever changes were used in the work
(which must be distributed under Sections 1 and 2 above); and, if the work is an
executable linked with the Library, with the complete machine-readable "work
that uses the Library", as object code and/or source code, so that the user can
modify the Library and then relink to produce a modified executable containing
the modified Library. (It is understood that the user who changes the contents
of definitions files in the Library will not necessarily be able to recompile
the application to use the modified definitions.) .
2. Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a copy of the
library already present on the user's computer system, rather than copying
library functions into the executable, and (2) will operate properly with a
modified version of the library, if the user installs one, as long as the
modified version is interface-compatible with the version that the work was made
with.
3. Accompany the work with a written offer, valid for at least three
years, to give the same user the materials specified in Subsection 6a, above,
for a charge no more than the cost of performing this distribution.
4. If distribution of the work is made by offering access to copy from
a designated place, offer equivalent access to copy the above specified
materials from the same place.
5. Verify that the user has already received a copy of these materials
or that you have already sent this user a copy.

For an executable, the required form of the "work that uses the Library"
must include any data and utility programs needed for reproducing the executable
from it. However, as a special exception, the materials to be distributed need
not include anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the operating
system on which the executable runs, unless that component itself accompanies
the executable.

It may happen that this requirement contradicts the license restrictions
of other proprietary libraries that do not normally accompany the operating
system. Such a contradiction means you cannot use both them and the Library
together in an executable that you distribute.
7.

You may place library facilities that are a work based on the Library
side-by-side in a single library together with other library facilities not
covered by this License, and distribute such a combined library, provided that
the separate distribution of the work based on the Library and of the other
library facilities is otherwise permitted, and provided that you do these two
things:
1.

Accompany the combined library with a copy of the same work based on
the Library, uncombined with any other library facilities. This must be
distributed under the terms of the Sections above.
2.

Give prominent notice with the combined library of the fact that
part of it is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
8.

You may not copy, modify, sublicense, link with, or distribute the Library
except as expressly provided under this License. Any attempt otherwise to copy,
modify, sublicense, link with, or distribute the Library is void, and will
automatically terminate your rights under this License. However, parties who
have received copies, or rights, from you under this License will not have their
licenses terminated so long as such parties remain in full compliance.
9.

You are not required to accept this License, since you have not signed it.
However, nothing else grants you permission to modify or distribute the Library
or its derivative works. These actions are prohibited by law if you do not
accept this License. Therefore, by modifying or distributing the Library (or any
work based on the Library), you indicate your acceptance of this License to do
so, and all its terms and conditions for copying, distributing or modifying the
Library or works based on it.
10.

Each time you redistribute the Library (or any work based on the Library),
the recipient automatically receives a license from the original licensor to
copy, distribute, link with or modify the Library subject to these terms and
conditions. You may not impose any further restrictions on the recipients'
exercise of the rights granted herein. You are not responsible for enforcing
compliance by third parties with this License.
11.

If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues), conditions
are imposed on you (whether by court order, agreement or otherwise) that
contradict the conditions of this License, they do not excuse you from the
conditions of this License. If you cannot distribute so as to satisfy
simultaneously your obligations under this License and any other pertinent
obligations, then as a consequence you may not distribute the Library at all.
For example, if a patent license would not permit royalty-free redistribution of
the Library by all those who receive copies directly or indirectly through you,
then the only way you could satisfy both it and this License would be to refrain
entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply, and
the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any such
claims; this section has the sole purpose of protecting the integrity of the
free software distribution system which is implemented by public license
practices. Many people have made generous contributions to the wide range of
software distributed through that system in reliance on consistent application
of that system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot impose
that choice.

This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.
12.

If the distribution and/or use of the Library is restricted in certain
countries either by patents or by copyrighted interfaces, the original copyright
holder who places the Library under this License may add an explicit
geographical distribution limitation excluding those countries, so that
distribution is permitted only in or among countries not thus excluded. In such
case, this License incorporates the limitation as if written in the body of this
License.
13.

The Free Software Foundation may publish revised and/or new versions of
the Lesser General Public License from time to time. Such new versions will be
similar in spirit to the present version, but may differ in detail to address
new problems or concerns.

Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and "any later
version", you have the option of following the terms and conditions either of
that version or of any later version published by the Free Software Foundation.
If the Library does not specify a license version number, you may choose any
version ever published by the Free Software Foundation.
14.

If you wish to incorporate parts of the Library into other free programs
whose distribution conditions are incompatible with these, write to the author
to ask for permission. For software which is copyrighted by the Free Software
Foundation, write to the Free Software Foundation; we sometimes make exceptions
for this. Our decision will be guided by the two goals of preserving the free
status of all derivatives of our free software and of promoting the sharing and
reuse of software generally.

No Warranty

15.

Because the library is licensed free of charge, there is no warranty for
the library, to the extent permitted by applicable law. Except when otherwise
stated in writing the copyright holders and/or other parties provide the library
"as is" without warranty of any kind, either expressed or implied, including,
but not limited to, the implied warranties of merchantability and fitness for a
particular purpose. The entire risk as to the quality and performance of the
library is with you. Should the library prove defective, you assume the cost of
all necessary servicing, repair or correction.
16.

In no event unless required by applicable law or agreed to in writing will
any copyright holder, or any other party who may modify and/or redistribute the
library as permitted above, be liable to you for damages, including any general,
special, incidental or consequential damages arising out of the use or inability
to use the library (including but not limited to loss of data or data being
rendered inaccurate or losses sustained by you or third parties or a failure of
the library to operate with any other software), even if such holder or other
party has been advised of the possibility of such damages.

-
-
The following software may be -included in this product: libcurl; Use of any of this -software -is governed -by the terms of the license below:
-

Daniel Stenberg
-

-

libcurl
-

-Copyright (C) 1998-2001, Daniel Stenberg, , et al. -
-Everyone is permitted to copy and distribute verbatim copies of this -license document, but changing it is not allowed.
-In order to be useful for every potential user, the curl and libcurl -are dual-licensed under the MPL and the MIT/X-derivate licenses.
-You may opt to use, copy, modify, merge, publish, distribute and/or -sell copies of the Software, and permit persons to whom the Software is -furnished to do so, under the terms of the MPL or the MIT/X-derivate -licenses. You may pick one of these licenses. The files MITX.txt and -MPL-1.1.txt contain the license texts.
-As a courtesy to the open-source and free software community, we ask -you to dual-license any modifications that you make as well, under the -terms of this document.
-Please remember to always keep the licensing information included in -individual source files up-to-date, so as to avoid misleading anyone as -to the status of these files.
-I will use a submission policy according to which I will only enter -contributions into the CVS tree if the contributor agrees to both -licenses and this dual-license approach.
-
+ +OTHER DEALINGS IN THE FONT SOFTWARE. +
+ + + + + + + + +
The following software may be +included in this product:KDE Crystal theme icons; Use of any of this software +is governed +by the terms of the license below:
+

KDE Artists:
+

+

KDE Crystal theme icons
+

+KDE Crystal theme icons. +
+Copyright (C) 2002 and following years KDE Artists +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation, +version 2.1 of the License. +
+
+License
+
+The Crystal Project are released under LGPL.
+
+GNU General Public License.
+
+   0.
+
+      This License Agreement applies to any software library or other program
+which contains a notice placed by the copyright holder or other authorized party
+saying it may be distributed under the terms of this Lesser General Public
+License (also called "this License"). Each licensee is addressed as "you".
+
+      A "library" means a collection of software functions and/or data prepared
+so as to be conveniently linked with application programs (which use some of
+those functions and data) to form executables.
+
+      The "Library", below, refers to any such software library or work which
+has been distributed under these terms. A "work based on the Library" means
+either the Library or any derivative work under copyright law: that is to say, a
+work containing the Library or a portion of it, either verbatim or with
+modifications and/or translated straightforwardly into another language.
+(Hereinafter, translation is included without limitation in the term
+"modification".)
+
+      "Source code" for a work means the preferred form of the work for making
+modifications to it. For a library, complete source code means all the source
+code for all modules it contains, plus any associated interface definition
+files, plus the scripts used to control compilation and installation of the library.
+
+      Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of running a
+program using the Library is not restricted, and output from such a program is
+covered only if its contents constitute a work based on the Library (independent
+of the use of the Library in a tool for writing it). Whether that is true
+depends on what the Library does and what the program that uses the Library does.
+   1.
+
+      You may copy and distribute verbatim copies of the Library's complete
+source code as you receive it, in any medium, provided that you conspicuously
+and appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and distribute a copy of this License along
+with the Library.
+
+      You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+   2.
+
+      You may modify your copy or copies of the Library or any portion of it,
+thus forming a work based on the Library, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you also
+meet all of these conditions:
+         1. The modified work must itself be a software library.
+         2. You must cause the files modified to carry prominent notices stating
+that you changed the files and the date of any change.
+         3. You must cause the whole of the work to be licensed at no charge to
+all third parties under the terms of this License.
+         4. If a facility in the modified Library refers to a function or a
+table of data to be supplied by an application program that uses the facility,
+other than as an argument passed when the facility is invoked, then you must
+make a good faith effort to ensure that, in the event an application does not
+supply such function or table, the facility still operates, and performs
+whatever part of its purpose remains meaningful.
+
+      (For example, a function in a library to compute square roots has a
+purpose that is entirely well-defined independent of the application. Therefore,
+Subsection 2d requires that any application-supplied function or table used by
+this function must be optional: if the application does not supply it, the
+square root function must still compute square roots.)
+
+      These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Library, and can be reasonably
+considered independent and separate works in themselves, then this License, and
+its terms, do not apply to those sections when you distribute them as separate
+works. But when you distribute the same sections as part of a whole which is a
+work based on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the entire whole,
+and thus to each and every part regardless of who wrote it.
+
+      Thus, it is not the intent of this section to claim rights or contest your
+rights to work written entirely by you; rather, the intent is to exercise the
+right to control the distribution of derivative or collective works based on the
+Library.
+
+      In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of a storage
+or distribution medium does not bring the other work under the scope of this
+License.
+   3.
+
+      You may opt to apply the terms of the ordinary GNU General Public License
+instead of this License to a given copy of the Library. To do this, you must
+alter all the notices that refer to this License, so that they refer to the
+ordinary GNU General Public License, version 2, instead of to this License. (If
+a newer version than version 2 of the ordinary GNU General Public License has
+appeared, then you can specify that version instead if you wish.) Do not make
+any other change in these notices.
+
+      Once this change is made in a given copy, it is irreversible for that
+copy, so the ordinary GNU General Public License applies to all subsequent
+copies and derivative works made from that copy.
+
+      This option is useful when you wish to copy part of the code of the
+Library into a program that is not a library.
+   4.
+
+      You may copy and distribute the Library (or a portion or derivative of it,
+under Section 2) in object code or executable form under the terms of Sections 1
+and 2 above provided that you accompany it with the complete corresponding
+machine-readable source code, which must be distributed under the terms of
+Sections 1 and 2 above on a medium customarily used for software interchange.
+
+      If distribution of object code is made by offering access to copy from a
+designated place, then offering equivalent access to copy the source code from
+the same place satisfies the requirement to distribute the source code, even
+though third parties are not compelled to copy the source along with the object
+code.
+   5.
+
+      A program that contains no derivative of any portion of the Library, but
+is designed to work with the Library by being compiled or linked with it, is
+called a "work that uses the Library". Such a work, in isolation, is not a
+derivative work of the Library, and therefore falls outside the scope of this
+License.
+      However, linking a "work that uses the Library" with the Library creates
+an executable that is a derivative of the Library (because it contains portions
+of the Library), rather than a "work that uses the library". The executable is
+therefore covered by this License. Section 6 states terms for distribution of
+such executables.
+
+      When a "work that uses the Library" uses material from a header file that
+is part of the Library, the object code for the work may be a derivative work of
+the Library even though the source code is not. Whether this is true is
+especially significant if the work can be linked without the Library, or if the
+work is itself a library. The threshold for this to be true is not precisely
+defined by law.
+
+      If such an object file uses only numerical parameters, data structure
+layouts and accessors, and small macros and small inline functions (ten lines or
+less in length), then the use of the object file is unrestricted, regardless of
+whether it is legally a derivative work. (Executables containing this object
+code plus portions of the Library will still fall under Section 6.)
+
+      Otherwise, if the work is a derivative of the Library, you may distribute
+the object code for the work under the terms of Section 6. Any executables
+containing that work also fall under Section 6, whether or not they are linked
+directly with the Library itself.
+   6.
+
+      As an exception to the Sections above, you may also combine or link a
+"work that uses the Library" with the Library to produce a work containing
+portions of the Library, and distribute that work under terms of your choice,
+provided that the terms permit modification of the work for the customer's own
+use and reverse engineering for debugging such modifications.
+
+      You must give prominent notice with each copy of the work that the Library
+is used in it and that the Library and its use are covered by this License. You
+must supply a copy of this License. If the work during execution displays
+copyright notices, you must include the copyright notice for the Library among
+them, as well as a reference directing the user to the copy of this License.
+Also, you must do one of these things:
+         1. Accompany the work with the complete corresponding machine-readable
+source code for the Library including whatever changes were used in the work
+(which must be distributed under Sections 1 and 2 above); and, if the work is an
+executable linked with the Library, with the complete machine-readable "work
+that uses the Library", as object code and/or source code, so that the user can
+modify the Library and then relink to produce a modified executable containing
+the modified Library. (It is understood that the user who changes the contents
+of definitions files in the Library will not necessarily be able to recompile
+the application to use the modified definitions.) .
+         2. Use a suitable shared library mechanism for linking with the
+Library. A suitable mechanism is one that (1) uses at run time a copy of the
+library already present on the user's computer system, rather than copying
+library functions into the executable, and (2) will operate properly with a
+modified version of the library, if the user installs one, as long as the
+modified version is interface-compatible with the version that the work was made
+with.
+         3. Accompany the work with a written offer, valid for at least three
+years, to give the same user the materials specified in Subsection 6a, above,
+for a charge no more than the cost of performing this distribution.
+         4. If distribution of the work is made by offering access to copy from
+a designated place, offer equivalent access to copy the above specified
+materials from the same place.
+         5. Verify that the user has already received a copy of these materials
+or that you have already sent this user a copy.
+
+      For an executable, the required form of the "work that uses the Library"
+must include any data and utility programs needed for reproducing the executable
+from it. However, as a special exception, the materials to be distributed need
+not include anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the operating
+system on which the executable runs, unless that component itself accompanies
+the executable.
+
+      It may happen that this requirement contradicts the license restrictions
+of other proprietary libraries that do not normally accompany the operating
+system. Such a contradiction means you cannot use both them and the Library
+together in an executable that you distribute.
+   7.
+
+      You may place library facilities that are a work based on the Library
+side-by-side in a single library together with other library facilities not
+covered by this License, and distribute such a combined library, provided that
+the separate distribution of the work based on the Library and of the other
+library facilities is otherwise permitted, and provided that you do these two
+things:
+         1.
+
+            Accompany the combined library with a copy of the same work based on
+the Library, uncombined with any other library facilities. This must be
+distributed under the terms of the Sections above.
+         2.
+
+            Give prominent notice with the combined library of the fact that
+part of it is a work based on the Library, and explaining where to find the
+accompanying uncombined form of the same work.
+   8.
+
+      You may not copy, modify, sublicense, link with, or distribute the Library
+except as expressly provided under this License. Any attempt otherwise to copy,
+modify, sublicense, link with, or distribute the Library is void, and will
+automatically terminate your rights under this License. However, parties who
+have received copies, or rights, from you under this License will not have their
+licenses terminated so long as such parties remain in full compliance.
+   9.
+
+      You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the Library
+or its derivative works. These actions are prohibited by law if you do not
+accept this License. Therefore, by modifying or distributing the Library (or any
+work based on the Library), you indicate your acceptance of this License to do
+so, and all its terms and conditions for copying, distributing or modifying the
+Library or works based on it.
+  10.
+
+      Each time you redistribute the Library (or any work based on the Library),
+the recipient automatically receives a license from the original licensor to
+copy, distribute, link with or modify the Library subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties with this License.
+  11.
+
+      If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Library at all.
+For example, if a patent license would not permit royalty-free redistribution of
+the Library by all those who receive copies directly or indirectly through you,
+then the only way you could satisfy both it and this License would be to refrain
+entirely from distribution of the Library.
+
+      If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply, and
+the section as a whole is intended to apply in other circumstances.
+
+      It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any such
+claims; this section has the sole purpose of protecting the integrity of the
+free software distribution system which is implemented by public license
+practices. Many people have made generous contributions to the wide range of
+software distributed through that system in reliance on consistent application
+of that system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot impose
+that choice.
+
+      This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+  12.
+
+      If the distribution and/or use of the Library is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Library under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.
+  13.
+
+      The Free Software Foundation may publish revised and/or new versions of
+the Lesser General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to address
+new problems or concerns.
+
+      Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and "any later
+version", you have the option of following the terms and conditions either of
+that version or of any later version published by the Free Software Foundation.
+If the Library does not specify a license version number, you may choose any
+version ever published by the Free Software Foundation.
+  14.
+
+      If you wish to incorporate parts of the Library into other free programs
+whose distribution conditions are incompatible with these, write to the author
+to ask for permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make exceptions
+for this. Our decision will be guided by the two goals of preserving the free
+status of all derivatives of our free software and of promoting the sharing and
+reuse of software generally.
+
+No Warranty
+
+  15.
+
+      Because the library is licensed free of charge, there is no warranty for
+the library, to the extent permitted by applicable law. Except when otherwise
+stated in writing the copyright holders and/or other parties provide the library
+"as is" without warranty of any kind, either expressed or implied, including,
+but not limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance of the
+library is with you. Should the library prove defective, you assume the cost of
+all necessary servicing, repair or correction.
+  16.
+
+      In no event unless required by applicable law or agreed to in writing will
+any copyright holder, or any other party who may modify and/or redistribute the
+library as permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of the use or inability
+to use the library (including but not limited to loss of data or data being
+rendered inaccurate or losses sustained by you or third parties or a failure of
+the library to operate with any other software), even if such holder or other
+party has been advised of the possibility of such damages.
+
+
+ +
+ + + + + + + +
The following software may be +included in this product: libcurl; Use of any of this +software +is governed +by the terms of the license below:
+

Daniel Stenberg
+

+

libcurl
+

+ +Copyright (C) 1998-2001, Daniel Stenberg, , et al. +
+ + Everyone is permitted to copy and distribute verbatim copies of this license + document, but changing it is not allowed. +
+ + In order to be useful for every potential user, the curl and libcurl are + dual-licensed under the MPL and the MIT/X-derivate licenses. +
+ + You may opt to use, copy, modify, merge, publish, distribute and/or sell + copies of the Software, and permit persons to whom the Software is furnished + to do so, under the terms of the MPL or the MIT/X-derivate licenses. You may + pick one of these licenses. The files MITX.txt and MPL-1.1.txt contain the + license texts. +
+ + As a courtesy to the open-source and free software community, we ask you to + dual-license any modifications that you make as well, under the terms of this + document. +
+ + Please remember to always keep the licensing information included in + individual source files up-to-date, so as to avoid misleading anyone as to + the status of these files. +
+ + I will use a submission policy according to which I will only enter + contributions into the CVS tree if the contributor agrees to both licenses + and this dual-license approach. +
+ + + + +
The following software may be -included in this product: Afrikaans dictionary; Use of any of this -software +included in this product: Afrikaans dictionary; Use of any of this software is governed by the terms of the license below:
-

Friedel Wolff
+

Friedel Wolff

-

Afrikaans dictionary
+

Afrikaans dictionary


Jump to LGPL
+ + + + +
The following software may be -included in this product: Stavekontrolden (Danish Spellchecker); Use of -any of this software +included in this product: Stavekontrolden (Danish Spellchecker); Use of any of this software is governed by the terms of the license below:
-

Finn Gruwier Larsen
+

Finn Gruwier Larsen

-

Stavekontrolden -(Danish Spellchecker) (LGPL v2.1)
+

Stavekontrolden (Danish Spellchecker) (LGPL v2.1)


jump to GNU Lesser General Public License
+ + + + +
The following software may be -included in this product: Slovenian spellcheck dictionary; Use of any -of this software +included in this product: Slovenian spellcheck dictionary; Use of any of this software is governed by the terms of the license below:
-

Jaak Pruulmann
+

Jaak Pruulmann

-

Estonian dictionaries
+

Estonian dictionaries


Gnu Lesser General Public License
+ + + + +
The following software may be -included in this product: French dictionary; Use of any of this -software +included in this product: French dictionary; Use of any of this software is governed by the terms of the license below:
-

dico.savant@free.fr
+

dico.savant@free.fr

-

French dictionary
+

French dictionary


jump to Mozilla Public License
+ + + + +
The following software may be -included in this product: Italian dictionary; Use of any of this -software +included in this product: Italian dictionary; Use of any of this software is governed by the terms of the license below:
-

Davide Prina
+

Davide Prina

-

Italian dictionary
+

Italian dictionary


Jump to GPL
+ + + + +
The following software may be -included in this product: MySpell-ku (Kurdish Spellchecker); Use of any -of this software +included in this product: MySpell-ku (Kurdish Spellchecker); Use of any of this software is governed by the terms of the license below:
-

Erdal Ronahi
+

Erdal Ronahi

-

MySpell-ku (Kurdish -Spellchecker) (LGPL v2.1)
+

MySpell-ku (Kurdish Spellchecker) (LGPL v2.1)


jump to GNU Lesser General Public License
+ + + + +
The following software may be -included in this product: Lithuanian spelling dictionary; Use of any of -this software +included in this product: Lithuanian spelling dictionary; Use of any of this software is governed by the terms of the license below:
-

Albertas Agejevas
+

Albertas Agejevas

-

Lithuaninian spelling -dictionary
+

Lithuaninian spelling dictionary


Copyright (c) Albertas Agejevas , 2000, 2001
All rights reserved.
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. + notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution.
-3. Neither the name of the Albertas Agejevas nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +3. Neither the name of the Albertas Agejevas nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission.
-THIS SOFTWARE IS PROVIDED BY ALBERTAS AGEJEVAS AND CONTRIBUTORS ``AS -IS'' AND + +THIS SOFTWARE IS PROVIDED BY ALBERTAS AGEJEVAS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL ALBERTAS AGEJEVAS OR CONTRIBUTORS BE -LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL ALBERTAS AGEJEVAS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY -WAY +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ + + + + +
The following software may be -included in this product: 'Nepali dictionares; Use of any of this -software +included in this product: 'Nepali dictionares; Use of any of this software is governed by the terms of the license below:
-

Madan Puraskar -Pustkalaya
+

Madan Puraskar Pustkalaya

-

Nepali dictionaries
+

Nepali dictionaries


jump to GNU Lesser General Public License
+ + + + +
The following software may be -included in this product: Polish spelling dictionary; Use of any of -this software +included in this product: Polish spelling dictionary; Use of any of this software is governed by the terms of the license below:
-

Marek Futrega
+

Marek Futrega

-

Polish spelling -dictionary
+

Polish spelling dictionary


jump to Mozilla Public License
+ + + + +
The following software may be -included in this product: Slovak dictionary; Use of any of this -software +included in this product: Slovak dictionary; Use of any of this software is governed by the terms of the license below:
-

Zdenko Podobny
+

Zdenko Podobny

-

Slovak dictionary
+

Slovak dictionary


jump to Mozilla Public License
+ + + + +
The following software may be -included in this product: Slovenian spellcheck dictionary; Use of any -of this software +included in this product: Slovenian spellcheck dictionary; Use of any of this software is governed by the terms of the license below:
-

Ales Kosir
+

Ales Kosir

-

Slovenian spellcheck -dictionary
+

Slovenian spellcheck dictionary


Gnu Lesser General Public License
+ + + + +
The following software may be -included in this product: dictionaries for South African English; Use -of any of this software +included in this product: dictionaries for South African English; Use of any of this software is governed by the terms of the license below:
-

David Bartlett and -Andrew Brown
+

David Bartlett and Andrew Brown

-

dictionaries for -South African English
+

dictionaries for South African English


jump to GNU Lesser General Public License
+ + + + +
The following software may be -included in this product: Swedish dictionary; Use of any of this -software +included in this product: Swedish dictionary; Use of any of this software is governed by the terms of the license below:
-

Göran Anderson
+

Göran Anderson

-

Swedish dictionary
+

Swedish dictionary


jump to GNU Lesser General Public License
+ + + + + + + +
The following software may be +included in this product: expat XML Parser Toolkit; Use of any of this +software +is governed +by the terms of the license below:
+

James Clark
+

+

expat XML Parser Toolkit
+

+Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and +Clark Cooper
+Copyright (c) 2001, 2002, 2003 Expat maintainers. +
+Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: +
+The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. +
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +
+ + + + + + + +
The following software may be +included in this product: Freetype; Use of any of this software +is governed +by the terms of the license below:
+

Freetype Project
+

+

Freetype Library
+

+
+Legal Terms +
+=========== +
+
+0. Definitions +
+-------------- +
+Throughout this license, the terms `package', `FreeType Project', and +`FreeType archive' refer to the set of files originally distributed by +the authors (David Turner, Robert Wilhelm, and Werner Lemberg) as the +`FreeType Project', be they named as alpha, beta or final release.
+`You' refers to the licensee, or person using the project, where +`using' is a generic term including compiling the project's source code +as well as linking it to form a `program' or `executable'. This program +is referred to as `a program using the FreeType engine'.
+This license applies to all files distributed in the original FreeType +Project, including all source code, binaries and documentation, unless +otherwise stated in the file in its original, unmodified form as +distributed in the original archive. If you are unsure whether or not a +particular file is covered by this license, you must contact us to +verify this.
+The FreeType Project is copyright (C) 1996-2000 by David Turner, Robert +Wilhelm, and Werner Lemberg. All rights reserved except as specified +below.
+
+1. No Warranty +
+-------------- +
+THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY KIND, +EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL +ANY OF THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES +CAUSED BY THE USE OR THE INABILITY TO USE, OF THE FREETYPE PROJECT.
+
+2. Redistribution +
+----------------- +
+This license grants a worldwide, royalty-free, perpetual and +irrevocable right and license to use, execute, perform, compile, +display, copy, create derivative works of, distribute and sublicense +the FreeType Project (in both source and object code forms) and +derivative works thereof for any purpose; and to authorize others to +exercise some or all of the rights granted herein, subject to the +following conditions:
+o Redistribution of source code must retain this license file +(`FTL.TXT') unaltered; any additions, deletions or changes to the +original files must be clearly indicated in accompanying documentation. +The copyright notices of the unaltered, original files must be +preserved in all copies of source files.
+o Redistribution in binary form must provide a disclaimer that states +that the software is based in part of the work of the FreeType Team, in +the distribution documentation. We also encourage you to put an URL to +the FreeType web page in your documentation, though this isn't +mandatory.
+
+These conditions apply to any software derived from or based on the +FreeType Project, not just the unmodified files. If you use our work, +you must acknowledge us. However, no fee need be paid to us.
+
+3. Advertising +
+-------------- +
+Neither the FreeType authors and contributors nor you shall use the +name of the other for commercial, advertising, or promotional purposes +without specific prior written permission.
+We suggest, but do not require, that you use one or more of the +following phrases to refer to this software in your documentation or +advertising materials: `FreeType Project', `FreeType Engine', `FreeType +library', or `FreeType Distribution'.
+As you have not signed this license, you are not required to accept it. +However, as the FreeType Project is copyrighted material, only this +license, or another one contracted with the authors, grants you the +right to use, distribute, and modify it. Therefore, by using, +distributing, or modifying the FreeType Project, you indicate that you +understand and accept all the terms of this license.
+
+4. Contacts +
+----------- +
+There are two mailing lists related to FreeType:
+o freetype@freetype.org
+Discusses general use and applications of FreeType, as well as future +and wanted additions to the library and distribution. If you are +looking for support, start in this list if you haven't found anything +to help you in the documentation.
+o devel@freetype.org
+Discusses bugs, as well as engine internals, design issues, specific +licenses, porting, etc.
+o http://www.freetype.org
+Holds the current FreeType web page, which will allow you to download +our latest development version and read online documentation.
+
+You can also contact us individually at:
+
+David Turner
+Robert Wilhelm
+Werner Lemberg
+
+ + + + + + + +
The following software may be +included in this product: GTK+ (The Gimp Toolkit); Use of any of this +software +is governed +by the terms of the license below:
+

gimp.org
+

+

The Gimp Toolkit (GTK+)
+

+jump to LGPL
+ + + + + + + +
The following software may be +included in this product:HSQL Database Engine; Use of any of this software +is governed +by the terms of the license below:
+

Thomas Mueller and the Hypersonic SQL Group:
+

+

HSQLDB
+

+ +


+ ORIGINAL LICENSE (a.k.a. "hypersonic_lic.txt")

+

For content, code, and products originally developed by Thomas + Mueller and the Hypersonic SQL Group:
+
+ Copyright (c) 1995-2000 by the Hypersonic SQL Group.
+ All rights reserved.
+

+

Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ Neither the name of the Hypersonic SQL Group nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE HYPERSONIC SQL GROUP,
+ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+

This software consists of voluntary contributions made by many + individuals on behalf of the
+ Hypersonic SQL Group.
+
+

+

For work added by the HSQL Development Group (a.k.a. hsqldb_lic.txt):

+

Copyright (c) 2001-2004, The HSQL Development Group
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ Neither the name of the HSQL Development Group nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
+ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+
+ + + + + +
The following software may be -included in this product: expat XML Parser Toolkit; Use of any of this -software -is governed -by the terms of the license below:
-

James Clark
+included in this product: Polish hyphenation dictionary; Use of any of this software +is governed by the terms of the license below:
+

Bence Nagy

-

expat XML Parser -Toolkit
+

Hungarian hyphenation dictionary

-Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and -Clark Cooper
-Copyright (c) 2001, 2002, 2003 Expat maintainers.
-Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: -
-The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +Lesser Gnu Library License
+ + + + + +
The following software may be +included in this product: Lithuanian pattern for hyphenation; Use of any of this software +is governed by the terms of the license below:
+

n/a
+

+

Lithuanian pattern for hyphenation
+


-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +jump to the LaTeX Project Public License
+ + + + + + +
The following software may be +included in this product: Polish hyphenation dictionary; Use of any of this software +is governed by the terms of the license below:
+

Adam Polaczynski
+

+

Polish hyphenation dictionary
+


+Lesser Gnu Library License
+ + + + +
The following software may be -included in this product: Freetype; Use of any of this software -is governed -by the terms of the license below:
-

Freetype Project
+included in this product: Slovenian pattern for hyphenation; Use of any of this software +is governed by the terms of the license below:
+

Matjaz Vrecko

-

Freetype Library
-

-
-Legal Terms -
-=========== -
-
-0. Definitions -
--------------- -
-Throughout this license, the terms `package', `FreeType Project', and -`FreeType archive' refer to the set of files originally distributed by -the authors (David Turner, Robert Wilhelm, and Werner Lemberg) as the -`FreeType Project', be they named as alpha, beta or final release.
-`You' refers to the licensee, or person using the project, where -`using' is a generic term including compiling the project's source code -as well as linking it to form a `program' or `executable'. This program -is referred to as `a program using the FreeType engine'.
-This license applies to all files distributed in the original FreeType -Project, including all source code, binaries and documentation, unless -otherwise stated in the file in its original, unmodified form as -distributed in the original archive. If you are unsure whether or not a -particular file is covered by this license, you must contact us to -verify this.
-The FreeType Project is copyright (C) 1996-2000 by David Turner, Robert -Wilhelm, and Werner Lemberg. All rights reserved except as specified -below.
-
-1. No Warranty -
--------------- -
-THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY KIND, -EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL -ANY OF THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES -CAUSED BY THE USE OR THE INABILITY TO USE, OF THE FREETYPE PROJECT.
-
-2. Redistribution -
------------------ -
-This license grants a worldwide, royalty-free, perpetual and -irrevocable right and license to use, execute, perform, compile, -display, copy, create derivative works of, distribute and sublicense -the FreeType Project (in both source and object code forms) and -derivative works thereof for any purpose; and to authorize others to -exercise some or all of the rights granted herein, subject to the -following conditions:
-o Redistribution of source code must retain this license file -(`FTL.TXT') unaltered; any additions, deletions or changes to the -original files must be clearly indicated in accompanying documentation. -The copyright notices of the unaltered, original files must be -preserved in all copies of source files.
-o Redistribution in binary form must provide a disclaimer that states -that the software is based in part of the work of the FreeType Team, in -the distribution documentation. We also encourage you to put an URL to -the FreeType web page in your documentation, though this isn't -mandatory.
-
-These conditions apply to any software derived from or based on the -FreeType Project, not just the unmodified files. If you use our work, -you must acknowledge us. However, no fee need be paid to us.
-
-3. Advertising -
--------------- -
-Neither the FreeType authors and contributors nor you shall use the -name of the other for commercial, advertising, or promotional purposes -without specific prior written permission.
-We suggest, but do not require, that you use one or more of the -following phrases to refer to this software in your documentation or -advertising materials: `FreeType Project', `FreeType Engine', `FreeType -library', or `FreeType Distribution'.
-As you have not signed this license, you are not required to accept it. -However, as the FreeType Project is copyrighted material, only this -license, or another one contracted with the authors, grants you the -right to use, distribute, and modify it. Therefore, by using, -distributing, or modifying the FreeType Project, you indicate that you -understand and accept all the terms of this license.
-
-4. Contacts -
------------ -
-There are two mailing lists related to FreeType:
-o freetype@freetype.org
-Discusses general use and applications of FreeType, as well as future -and wanted additions to the library and distribution. If you are -looking for support, start in this list if you haven't found anything -to help you in the documentation.
-o devel@freetype.org
-Discusses bugs, as well as engine internals, design issues, specific -licenses, porting, etc.
-o http://www.freetype.org
-Holds the current FreeType web page, which will allow you to download -our latest development version and read online documentation.
-
-You can also contact us individually at:
-
-David Turner
-Robert Wilhelm
-Werner Lemberg
-
-
The following software may be -included in this product: GTK+ (The Gimp Toolkit); Use of any of this -software -is governed -by the terms of the license below:
-

gimp.org
-

-

The Gimp Toolkit -(GTK+)
-

-jump to LGPL
-
The following software may be -included in this product:HSQL Database Engine; Use of any of this -software -is governed -by the terms of the license below:
-

Thomas Mueller and -the Hypersonic SQL Group:
-

-

HSQLDB
-

-


-ORIGINAL LICENSE (a.k.a. "hypersonic_lic.txt")

-

For content, code, and products originally developed -by Thomas Mueller and the Hypersonic SQL Group:
-
-Copyright (c) 1995-2000 by the Hypersonic SQL Group.
-All rights reserved.
-

-

Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are -met:
-
-Redistributions of source code must retain the above copyright notice, -this
-list of conditions and the following disclaimer.
-
-Redistributions in binary form must reproduce the above copyright -notice,
-this list of conditions and the following disclaimer in the -documentation
-and/or other materials provided with the distribution.
-
-Neither the name of the Hypersonic SQL Group nor the names of its
-contributors may be used to endorse or promote products derived from -this
-software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE HYPERSONIC SQL GROUP,
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-

This software consists of voluntary contributions made -by many individuals on behalf of the
-Hypersonic SQL Group.
-
-

-

For work added by the HSQL Development Group (a.k.a. -hsqldb_lic.txt):

-

Copyright (c) 2001-2004, The HSQL Development Group
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are -met:
-
-Redistributions of source code must retain the above copyright notice, -this
-list of conditions and the following disclaimer.
-
-Redistributions in binary form must reproduce the above copyright -notice,
-this list of conditions and the following disclaimer in the -documentation
-and/or other materials provided with the distribution.
-
-Neither the name of the HSQL Development Group nor the names of its
-contributors may be used to endorse or promote products derived from -this
-software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-
-
The following software may be -included in this product: Polish hyphenation dictionary; Use of any of -this software -is governed by the terms of the license below:
-

Bence Nagy
-

-

Hungarian hyphenation -dictionary
-

-
-Lesser Gnu Library License
-
The following software may be -included in this product: Lithuanian pattern for hyphenation; Use of -any of this software -is governed by the terms of the license below:
-

n/a
-

-

Lithuanian pattern -for hyphenation
-

-
-jump to the LaTeX Project Public License
-
The following software may be -included in this product: Polish hyphenation dictionary; Use of any of -this software -is governed by the terms of the license below:
-

Adam Polaczynski
-

-

Polish hyphenation -dictionary
-

-
-Lesser Gnu Library License
-
The following software may be -included in this product: Slovenian pattern for hyphenation; Use of any -of this software -is governed by the terms of the license below:
-

Matjaz Vrecko
-

-

Slovenian pattern for -hyphenation
+

Slovenian pattern for hyphenation


Lesser Gnu Library License
+ + + + +
The following software may be -included in this product: Zulu hyphenation dictionary; Use of any of -this software +included in this product: Zulu hyphenation dictionary; Use of any of this software is governed by the terms of the license below:
-

Friedel Wolff
+

Friedel Wolff

-

Zulu hyphenation -dictionary
+

Zulu hyphenation dictionary


Lesser Gnu Library License
+ + + + + + + + +
The following software may be +included in this product: ICU; Use of any of this +software +is governed +by the terms of the license below:
+

International Business Machine Corporation (IBM)
+

+

ICU
+

+ + +

ICU License - ICU 1.8.1 and later

+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1995-2002 International Business Machines Corporation and others
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies of
+the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+of the copyright holder.
+
+--------------------------------------------------------------------------------
+All trademarks and registered trademarks mentioned herein are the property of their respective owners.
+
+ + + + + + + +
The following software may be +included in this product: JDOM; Use of any of this +software +is governed +by the terms of the license below:
+

Jason Hunter, Brett McLaughlin
+

+

JDOM
+

+Copyright (C) 2000-2004 Jason Hunter & Brett McLaughlin. + All rights reserved. +
+ + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: +
+ + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. +
+ + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the disclaimer that follows + these conditions in the documentation and/or other materials + provided with the distribution. +
+ + 3. The name "JDOM" must not be used to endorse or promote products + derived from this software without prior written permission. For + written permission, please contact . +
+ + 4. Products derived from this software may not be called "JDOM", nor + may "JDOM" appear in their name, without prior written permission + from the JDOM Project Management . +
+ + In addition, we request (but do not require) that you include in the + end-user documentation provided with the redistribution and/or in the + software itself an acknowledgement equivalent to the following: +
+ "This product includes software developed by the + JDOM Project (http://www.jdom.org/)." +
+ Alternatively, the acknowledgment may be graphical using the logos + available at http://www.jdom.org/images/logos. +
+ + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. +
+ + This software consists of voluntary contributions made by many + individuals on behalf of the JDOM Project and was originally + created by Jason Hunter and + Brett McLaughlin . For more information + on the JDOM Project, please see . +
+ + + + + + + + +
The following software may be +included in this product: IJG JPEG Library; Use of any of this software +is governed +by the terms of the license below:
+

Independent JPEG Group (IJG)
+

+

IJG JPEG Library
+

+
+LEGAL ISSUES
+============
+
+In plain English:
+
+1. We don't promise that this software works.  (But if you find any bugs,
+   please let us know!)
+2. You can use this software for whatever you want.  You don't have to pay us.
+3. You may not pretend that you wrote this software.  If you use it in a
+   program, you must acknowledge somewhere in your documentation that
+   you've used the IJG code.
+
+In legalese:
+
+The authors make NO WARRANTY or representation, either express or implied,
+with respect to this software, its quality, accuracy, merchantability, or
+fitness for a particular purpose.  This software is provided "AS IS", and you,
+its user, assume the entire risk as to its quality and accuracy.
+
+This software is copyright (C) 1991-1998, Thomas G. Lane.
+All Rights Reserved except as specified below.
+
+Permission is hereby granted to use, copy, modify, and distribute this
+software (or portions thereof) for any purpose, without fee, subject to these
+conditions:
+(1) If any part of the source code for this software is distributed, then this
+README file must be included, with this copyright and no-warranty notice
+unaltered; and any additions, deletions, or changes to the original files
+must be clearly indicated in accompanying documentation.
+(2) If only executable code is distributed, then the accompanying
+documentation must state that "this software is based in part on the work of
+the Independent JPEG Group".
+(3) Permission for use of this software is granted only if the user accepts
+full responsibility for any undesirable consequences; the authors accept
+NO LIABILITY for damages of any kind.
+
+These conditions apply to any software derived from or based on the IJG code,
+not just to the unmodified library.  If you use our work, you ought to
+acknowledge us.
+
+Permission is NOT granted for the use of any IJG author's name or company name
+in advertising or publicity relating to this software or products derived from
+it.  This software may be referred to only as "the Independent JPEG Group's
+software".
+
+We specifically permit and encourage the use of this software as the basis of
+commercial products, provided that all warranty or liability claims are
+assumed by the product vendor.
+
+
+ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
+sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
+ansi2knr.c is NOT covered by the above copyright and conditions, but instead
+by the usual distribution terms of the Free Software Foundation; principally,
+that you must include source code if you redistribute it.  (See the file
+ansi2knr.c for full details.)  However, since ansi2knr.c is not needed as part
+of any program generated from the IJG code, this does not limit you more than
+the foregoing paragraphs do.
+
+The Unix configuration script "configure" was produced with GNU Autoconf.
+It is copyright by the Free Software Foundation but is freely distributable.
+The same holds for its supporting scripts (config.guess, config.sub,
+ltconfig, ltmain.sh).  Another support script, install-sh, is copyright
+by M.I.T. but is also freely distributable.
+
+It appears that the arithmetic coding option of the JPEG spec is covered by
+patents owned by IBM, AT&T, and Mitsubishi.  Hence arithmetic coding cannot
+legally be used without obtaining one or more licenses.  For this reason,
+support for arithmetic coding has been removed from the free JPEG software.
+(Since arithmetic coding provides only a marginal gain over the unpatented
+Huffman mode, it is unlikely that very many implementations will support it.)
+So far as we are aware, there are no patent restrictions on the remaining
+code.
+
+The IJG distribution formerly included code to read and write GIF files.
+To avoid entanglement with the Unisys LZW patent, GIF reading support has
+been removed altogether, and the GIF writer has been simplified to produce
+"uncompressed GIFs".  This technique does not use the LZW algorithm; the
+resulting GIF files are larger than usual, but are readable by all standard
+GIF decoders.
+
+We are required to state that
+    "The Graphics Interchange Format(c) is the Copyright property of
+    CompuServe Incorporated.  GIF(sm) is a Service Mark property of
+    CompuServe Incorporated."
+
+
+ + + + + + + + +
The following software may be +included in this product: libegg; Use of any of this software +is governed by the terms of the license below:
+

Anders Carlson +
+

+

libegg
+

+jump to LGPL
+ + + + + + + +
The following software may be +included in this product: libmspack; Use of any of this software +is governed by the terms of the license below:
+

Stuart Caie +
+

+

libmspack
+

+jump to LGPL
+ + + + + + + +
The following software may be +included in this product: Redland RDF Library librdf; Use of any of this +software +is governed +by the terms of the license below:
+

Dave Beckett
+

+

librdf
+

+jump to LGPL
+ + + + +
The following software may be -included in this product: ICU; Use of any of this -software -is governed -by the terms of the license below:
-

International -Business Machine Corporation (IBM)
-

-

ICU
-

-

ICU License - ICU 1.8.1 and later

-
COPYRIGHT AND PERMISSION NOTICE

Copyright (c) 1995-2002 International Business Machines Corporation and others
All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, and/or sell copies of the Software, and to permit persons
to whom the Software is furnished to do so, provided that the above
copyright notice(s) and this permission notice appear in all copies of
the Software and that both the above copyright notice(s) and this
permission notice appear in supporting documentation.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale, use
or other dealings in this Software without prior written authorization
of the copyright holder.

--------------------------------------------------------------------------------
All trademarks and registered trademarks mentioned herein are the property of their respective owners.
-
The following software may be -included in this product: JDOM; Use of any of this -software -is governed -by the terms of the license below:
-

Jason Hunter, Brett -McLaughlin
-

-

JDOM
-

-Copyright (C) 2000-2004 Jason Hunter & Brett McLaughlin. All rights -reserved.
-Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met:
-1. Redistributions of source code must retain the above copyright -notice, this list of conditions, and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright -notice, this list of conditions, and the disclaimer that follows these -conditions in the documentation and/or other materials provided with -the distribution.
-3. The name "JDOM" must not be used to endorse or promote products -derived from this software without prior written permission. For -written permission, please contact .
-4. Products derived from this software may not be called "JDOM", nor -may "JDOM" appear in their name, without prior written permission from -the JDOM Project Management .
-In addition, we request (but do not require) that you include in the -end-user documentation provided with the redistribution and/or in the -software itself an acknowledgement equivalent to the following:
-"This product includes software developed by the JDOM Project -(http://www.jdom.org/)."
-Alternatively, the acknowledgment may be graphical using the logos -available at http://www.jdom.org/images/logos.
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN -NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-This software consists of voluntary contributions made by many -individuals on behalf of the JDOM Project and was originally created by -Jason Hunter and Brett McLaughlin . -For more information on the JDOM Project, please see .
-
-
The following software may be -included in this product: IJG JPEG Library; Use of any of this software -is governed -by the terms of the license below:
-

Independent JPEG Group -(IJG)
-

-

IJG JPEG Library
-

-
LEGAL ISSUES
============

In plain English:

1. We don't promise that this software works. (But if you find any bugs,
please let us know!)
2. You can use this software for whatever you want. You don't have to pay us.
3. You may not pretend that you wrote this software. If you use it in a
program, you must acknowledge somewhere in your documentation that
you've used the IJG code.

In legalese:

The authors make NO WARRANTY or representation, either express or implied,
with respect to this software, its quality, accuracy, merchantability, or
fitness for a particular purpose. This software is provided "AS IS", and you,
its user, assume the entire risk as to its quality and accuracy.

This software is copyright (C) 1991-1998, Thomas G. Lane.
All Rights Reserved except as specified below.

Permission is hereby granted to use, copy, modify, and distribute this
software (or portions thereof) for any purpose, without fee, subject to these
conditions:
(1) If any part of the source code for this software is distributed, then this
README file must be included, with this copyright and no-warranty notice
unaltered; and any additions, deletions, or changes to the original files
must be clearly indicated in accompanying documentation.
(2) If only executable code is distributed, then the accompanying
documentation must state that "this software is based in part on the work of
the Independent JPEG Group".
(3) Permission for use of this software is granted only if the user accepts
full responsibility for any undesirable consequences; the authors accept
NO LIABILITY for damages of any kind.

These conditions apply to any software derived from or based on the IJG code,
not just to the unmodified library. If you use our work, you ought to
acknowledge us.

Permission is NOT granted for the use of any IJG author's name or company name
in advertising or publicity relating to this software or products derived from
it. This software may be referred to only as "the Independent JPEG Group's
software".

We specifically permit and encourage the use of this software as the basis of
commercial products, provided that all warranty or liability claims are
assumed by the product vendor.


ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
ansi2knr.c is NOT covered by the above copyright and conditions, but instead
by the usual distribution terms of the Free Software Foundation; principally,
that you must include source code if you redistribute it. (See the file
ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part
of any program generated from the IJG code, this does not limit you more than
the foregoing paragraphs do.

The Unix configuration script "configure" was produced with GNU Autoconf.
It is copyright by the Free Software Foundation but is freely distributable.
The same holds for its supporting scripts (config.guess, config.sub,
ltconfig, ltmain.sh). Another support script, install-sh, is copyright
by M.I.T. but is also freely distributable.

It appears that the arithmetic coding option of the JPEG spec is covered by
patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot
legally be used without obtaining one or more licenses. For this reason,
support for arithmetic coding has been removed from the free JPEG software.
(Since arithmetic coding provides only a marginal gain over the unpatented
Huffman mode, it is unlikely that very many implementations will support it.)
So far as we are aware, there are no patent restrictions on the remaining
code.

The IJG distribution formerly included code to read and write GIF files.
To avoid entanglement with the Unisys LZW patent, GIF reading support has
been removed altogether, and the GIF writer has been simplified to produce
"uncompressed GIFs". This technique does not use the LZW algorithm; the
resulting GIF files are larger than usual, but are readable by all standard
GIF decoders.

We are required to state that
"The Graphics Interchange Format(c) is the Copyright property of
CompuServe Incorporated. GIF(sm) is a Service Mark property of
CompuServe Incorporated."

-
The following software may be -included in this product: libegg; Use of any of this software -is governed by the terms of the license below:
-

Anders Carlson
-

-

libegg
-

-jump to LGPL
-
The following software may be -included in this product: libmspack; Use of any of this software -is governed by the terms of the license below:
-

Stuart Caie
-

-

libmspack
-

-jump to LGPL
-
The following software may be -included in this product: Redland RDF Library librdf; Use of any of -this -software -is governed -by the terms of the license below:
-

Dave Beckett
-

-

librdf
-

-jump to LGPL
-
The following software may be -included in this product:libsndfile; Use of any of this software -is governed -by the terms of the license below:
-

Erik de Castro Lopo
-

-

libsndfile
-

-jump to LGPL
-
The following software may be -included in this product: GNU ISO C++ Library; Use of any of this -software +included in this product: GNU ISO C++ Library; Use of any of this software is governed by the terms of the license below:
-

Free Software -Foundation, Inc.
+

Free Software Foundation, Inc.

-

GNU ISO C++ Library
+

GNU ISO C++ Library


Jump to GPL
-
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.

When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.

We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and
modification follow.

GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.

c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.


Copyright (C)

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA


Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.

, 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

Additional License(s)

libstdc++:
// Explicit instantiation file.

// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.

// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307,
// USA.

// As a special exception, you may use this file as part of a free
software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you
compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be
covered by
// the GNU General Public License.

libgcc:
//
// ISO C++ 14882:
//

/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
Contributed by Jakub Jelinek .

This file is part of GNU CC.

GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */

/* As a special exception, if you link this library with other files,
some of which are compiled with GCC, to produce an executable,
this library does not by itself cause the resulting executable
to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public
License. */

/* Locate the FDE entry for a given address, using PT_GNU_EH_FRAME ELF
segment and dl_iterate_phdr to avoid register/deregister calls at
DSO load/unload. */

-
The following software may be -included in this product: libtextcat; Use of any of this software -is governed by the terms of the license below:
-

WiseGuys Internet B.V.
-

-

libtextcat
-

-
-Copyright (c) 2003, WiseGuys Internet B.V. -
-All rights reserved. -
-Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: -
-- Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -
-- Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -
-- Neither the name of the WiseGuys Internet B.V. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. -
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -
-
The following software may be -included in this product: libwpd; Use of any of this -software -is governed -by the terms of the license below:
-

William LaChance
-

-

libwpd
-

-jump to LGPL
-Except where otherwise noted in the source code (trio files, hash.c and -list.c) -
The following software may be -included in this product: libxml2; Use of any of this -software -is governed -by the terms of the license below:
-

Daniel Veillard
-

-

libxml2
-

-Copyright (C) 1998-2002 Daniel Veillard. All Rights Reserved. -Permission is hereby granted, free of charge, to any person obtaining a -copy -of this software and associated documentation files (the "Software"), -to deal -in the Software without restriction, including without limitation the -rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell -copies of the Software, and to permit persons to whom the Software is -fur- -nished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included -in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FIT- -NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE -DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CON- -NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -Except as contained in this notice, the name of Daniel Veillard shall -not -be used in advertising or otherwise to promote the sale, use or other -deal- -ings in this Software without prior written authorization from him. -
The following software may be -included in this product: XML Security Library; Use of any of this -software -is governed -by the terms of the license below:
-

Aleksey Sanin
-

-

XML Security Library
-

-
-
XML Security Library

Use of any of this software is governed by the terms of the license below:

Please note: We do not use all libraries of the project, but only:
- xmlsec-core; License: MIT
- xmlsec-nss; License: GPL + MPL

-------------------------------------------------
The MIT License

Copyright (c)

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-------------------------------------------------------------------
The GNU General Public License (GPL)
Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share
and change it. By contrast, the GNU General Public License is intended to
guarantee your freedom to share and change free software--to make sure the
software is free for all its users. This General Public License applies to most
of the Free Software Foundation's software and to any other program whose
authors commit to using it. (Some other Free Software Foundation software is
covered by the GNU Library General Public License instead.) You can apply it to
your programs, too.

When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the freedom to
distribute copies of free software (and charge for this service if you wish),
that you receive source code or can get it if you want it, that you can change
the software or use pieces of it in new free programs; and that you know you can
do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny
you these rights or to ask you to surrender the rights. These restrictions
translate to certain responsibilities for you if you distribute copies of the
software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a
fee, you must give the recipients all the rights that you have. You must make
sure that they, too, receive or can get the source code. And you must show them
these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer
you this license which gives you legal permission to copy, distribute and/or
modify the software.

Also, for each author's protection and ours, we want to make certain that
everyone understands that there is no warranty for this free software. If the
software is modified by someone else and passed on, we want its recipients to
know that what they have is not the original, so that any problems introduced by
others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish
to avoid the danger that redistributors of a free program will individually
obtain patent licenses, in effect making the program proprietary. To prevent
this, we have made it clear that any patent must be licensed for everyone's free
use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice
placed by the copyright holder saying it may be distributed under the terms of
this General Public License. The "Program", below, refers to any such program or
work, and a "work based on the Program" means either the Program or any
derivative work under copyright law: that is to say, a work containing the
Program or a portion of it, either verbatim or with modifications and/or
translated into another language. (Hereinafter, translation is included without
limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by
this License; they are outside its scope. The act of running the Program is not
restricted, and the output from the Program is covered only if its contents
constitute a work based on the Program (independent of having been made by
running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as
you receive it, in any medium, provided that you conspicuously and appropriately
publish on each copy an appropriate copyright notice and disclaimer of warranty;
keep intact all the notices that refer to this License and to the absence of any
warranty; and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at
your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus
forming a work based on the Program, and copy and distribute such modifications
or work under the terms of Section 1 above, provided that you also meet all of
these conditions:

a) You must cause the modified files to carry prominent notices stating that
you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in whole or
in part contains or is derived from the Program or any part thereof, to be
licensed as a whole at no charge to all third parties under the terms of this
License.

c) If the modified program normally reads commands interactively when run,
you must cause it, when started running for such interactive use in the most
ordinary way, to print or display an announcement including an appropriate
copyright notice and a notice that there is no warranty (or else, saying that
you provide a warranty) and that users may redistribute the program under these
conditions, and telling the user how to view a copy of this License. (Exception:
if the Program itself is interactive but does not normally print such an
announcement, your work based on the Program is not required to print an
announcement.)

These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be reasonably
considered independent and separate works in themselves, then this License, and
its terms, do not apply to those sections when you distribute them as separate
works. But when you distribute the same sections as part of a whole which is a
work based on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the entire whole,
and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your
rights to work written entirely by you; rather, the intent is to exercise the
right to control the distribution of derivative or collective works based on the
Program.

In addition, mere aggregation of another work not based on the Program with the
Program (or with a work based on the Program) on a volume of a storage or
distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section
2) in object code or executable form under the terms of Sections 1 and 2 above
provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source
code, which must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to
give any third party, for a charge no more than your cost of physically
performing source distribution, a complete machine-readable copy of the
corresponding source code, to be distributed under the terms of Sections 1 and 2
above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to
distribute corresponding source code. (This alternative is allowed only for
noncommercial distribution and only if you received the program in object code
or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making
modifications to it. For an executable work, complete source code means all the
source code for all modules it contains, plus any associated interface
definition files, plus the scripts used to control compilation and installation
of the executable. However, as a special exception, the source code distributed
need not include anything that is normally distributed (in either source or
binary form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component itself
accompanies the executable.

If distribution of executable or object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the source code
from the same place counts as distribution of the source code, even though third
parties are not compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as
expressly provided under this License. Any attempt otherwise to copy, modify,
sublicense or distribute the Program is void, and will automatically terminate
your rights under this License. However, parties who have received copies, or
rights, from you under this License will not have their licenses terminated so
long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it.
However, nothing else grants you permission to modify or distribute the Program
or its derivative works. These actions are prohibited by law if you do not
accept this License. Therefore, by modifying or distributing the Program (or any
work based on the Program), you indicate your acceptance of this License to do
so, and all its terms and conditions for copying, distributing or modifying the
Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program),
the recipient automatically receives a license from the original licensor to
copy, distribute or modify the Program subject to these terms and conditions.
You may not impose any further restrictions on the recipients' exercise of the
rights granted herein. You are not responsible for enforcing compliance by third
parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement
or for any other reason (not limited to patent issues), conditions are imposed
on you (whether by court order, agreement or otherwise) that contradict the
conditions of this License, they do not excuse you from the conditions of this
License. If you cannot distribute so as to satisfy simultaneously your
obligations under this License and any other pertinent obligations, then as a
consequence you may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by all those
who receive copies directly or indirectly through you, then the only way you
could satisfy both it and this License would be to refrain entirely from
distribution of the Program.

If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply and the
section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or
other property right claims or to contest validity of any such claims; this
section has the sole purpose of protecting the integrity of the free software
distribution system, which is implemented by public license practices. Many
people have made generous contributions to the wide range of software
distributed through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing to
distribute software through any other system and a licensee cannot impose that
choice.

This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain
countries either by patents or by copyrighted interfaces, the original copyright
holder who places the Program under this License may add an explicit
geographical distribution limitation excluding those countries, so that
distribution is permitted only in or among countries not thus excluded. In such
case, this License incorporates the limitation as if written in the body of this
License.

9. The Free Software Foundation may publish revised and/or new versions of the
General Public License from time to time. Such new versions will be similar in
spirit to the present version, but may differ in detail to address new problems
or concerns.

Each version is given a distinguishing version number. If the Program specifies
a version number of this License which applies to it and "any later version",
you have the option of following the terms and conditions either of that version
or of any later version published by the Free Software Foundation. If the
Program does not specify a version number of this License, you may choose any
version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs
whose distribution conditions are different, write to the author to ask for
permission. For software which is copyrighted by the Free Software Foundation,
write to the Free Software Foundation; we sometimes make exceptions for this.
Our decision will be guided by the two goals of preserving the free status of
all derivatives of our free software and of promoting the sharing and reuse of
software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED
IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS
IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY
TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use
to the public, the best way to achieve this is to make it free software which
everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach
them to the start of each source file to most effectively convey the exclusion
of warranty; and each file should have at least the "copyright" line and a
pointer to where the full notice is found.

one line to give the program's name and a brief idea of what it does.
Copyright (C)

This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option) any
later version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it
starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software,
and you are welcome to redistribute it under certain conditions; type `show c'
for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may be
called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your school,
if any, to sign a "copyright disclaimer" for the program, if necessary. Here is
a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest
in the program `Gnomovision' (which makes passes at compilers)
written by James Hacker.

signature of Ty Coon, 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may consider
it more useful to permit linking proprietary applications with the library. If
this is what you want to do, use the GNU Library General Public License instead
of this License.
----------------------------------------------------------
Mozilla Public License Version 1.0

1. Definitions.

1.1. "Contributor" means each entity that creates or contributes to the
creation of Modifications.

1.2. "Contributor Version" means the combination of the Original Code,
prior Modifications used by a Contributor, and the Modifications made by that
particular Contributor.

1.3. "Covered Code" means the Original Code or Modifications or the
combination of the Original Code and Modifications, in each case including
portions thereof.

1.4. "Electronic Distribution Mechanism" means a mechanism generally
accepted in the software development community for the electronic transfer of data.

1.5. "Executable" means Covered Code in any form other than Source Code.

1.6. "Initial Developer" means the individual or entity identified as the
Initial Developer in the Source Code notice required by Exhibit A.

1.7. "Larger Work" means a work which combines Covered Code or portions
thereof with code not governed by the terms of this License.

1.8. "License" means this document.

1.9. "Modifications" means any addition to or deletion from the substance
or structure of either the Original Code or any previous Modifications. When
Covered Code is released as a series of files, a Modification is:

A. Any addition to or deletion from the contents of a file
containing Original Code or previous Modifications.

B. Any new file that contains any part of the Original Code or
previous Modifications.

1.10. "Original Code" means Source Code of computer software code which is
described in the Source Code notice required by Exhibit A as Original Code, and
which, at the time of its release under this License is not already Covered Code
governed by this License.

1.11. "Source Code" means the preferred form of the Covered Code for
making modifications to it, including all modules it contains, plus any
associated interface definition files, scripts used to control compilation and
installation of an Executable, or a list of source code differential comparisons
against either the Original Code or another well known, available Covered Code
of the Contributor's choice. The Source Code can be in a compressed or archival
form, provided the appropriate decompression or de-archiving software is widely
available for no charge.

1.12. "You" means an individual or a legal entity exercising rights under,
and complying with all of the terms of, this License or a future version of this
License issued under Section 6.1. For legal entities, "You" includes any entity
which controls, is controlled by, or is under common control with You. For
purposes of this definition, "control" means (a) the power, direct or indirect,
to cause the direction or management of such entity, whether by contract or
otherwise, or (b) ownership of fifty percent (50%) or more of the outstanding
shares or beneficial ownership of such entity.

2. Source Code License.

2.1. The Initial Developer Grant.
The Initial Developer hereby grants You a world-wide, royalty-free,
non-exclusive license, subject to third party intellectual property claims:

(a) to use, reproduce, modify, display, perform, sublicense and
distribute the Original Code (or portions thereof) with or without
Modifications, or as part of a Larger Work; and

(b) under patents now or hereafter owned or controlled by Initial
Developer, to make, have made, use and sell ("Utilize") the Original Code (or
portions thereof), but solely to the extent that any such patent is reasonably
necessary to enable You to Utilize the Original Code (or portions thereof) and
not to any greater extent that may be necessary to Utilize further Modifications
or combinations.

2.2. Contributor Grant.
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license, subject to third party intellectual property claims:

(a) to use, reproduce, modify, display, perform, sublicense and
distribute the Modifications created by such Contributor (or portions thereof)
either on an unmodified basis, with other Modifications, as Covered Code or as
part of a Larger Work; and

(b) under patents now or hereafter owned or controlled by
Contributor, to Utilize the Contributor Version (or portions thereof), but
solely to the extent that any such patent is reasonably necessary to enable You
to Utilize the Contributor Version (or portions thereof), and not to any greater
extent that may be necessary to Utilize further Modifications or combinations.

3. Distribution Obligations.

3.1. Application of License.
The Modifications which You create or to which You contribute are governed
by the terms of this License, including without limitation Section 2.2. The
Source Code version of Covered Code may be distributed only under the terms of
this License or a future version of this License released under Section 6.1, and
You must include a copy of this License with every copy of the Source Code You
distribute. You may not offer or impose any terms on any Source Code version
that alters or restricts the applicable version of this License or the
recipients' rights hereunder. However, You may include an additional document
offering the additional rights described in Section 3.5.

3.2. Availability of Source Code.
Any Modification which You create or to which You contribute must be made
available in Source Code form under the terms of this License either on the same
media as an Executable version or via an accepted Electronic Distribution
Mechanism to anyone to whom you made an Executable version available; and if
made available via Electronic Distribution Mechanism, must remain available for
at least twelve (12) months after the date it initially became available, or at
least six (6) months after a subsequent version of that particular Modification
has been made available to such recipients. You are responsible for ensuring
that the Source Code version remains available even if the Electronic
Distribution Mechanism is maintained by a third party.

3.3. Description of Modifications.
You must cause all Covered Code to which you contribute to contain a file
documenting the changes You made to create that Covered Code and the date of any
change. You must include a prominent statement that the Modification is derived,
directly or indirectly, from Original Code provided by the Initial Developer and
including the name of the Initial Developer in (a) the Source Code, and (b) in
any notice in an Executable version or related documentation in which You
describe the origin or ownership of the Covered Code.

3.4. Intellectual Property Matters

(a) Third Party Claims.
If You have knowledge that a party claims an intellectual property
right in particular functionality or code (or its utilization under this
License), you must include a text file with the source code distribution titled
"LEGAL" which describes the claim and the party making the claim in sufficient
detail that a recipient will know whom to contact. If you obtain such knowledge
after You make Your Modification available as described in Section 3.2, You
shall promptly modify the LEGAL file in all copies You make available thereafter
and shall take other steps (such as notifying appropriate mailing lists or
newsgroups) reasonably calculated to inform those who received the Covered Code
that new knowledge has been obtained.

(b) Contributor APIs.
If Your Modification is an application programming interface and You
own or control patents which are reasonably necessary to implement that API, you
must also include this information in the LEGAL file.

3.5. Required Notices.
You must duplicate the notice in Exhibit A in each file of the Source
Code, and this License in any documentation for the Source Code, where You
describe recipients' rights relating to Covered Code. If You created one or more
Modification(s), You may add your name as a Contributor to the notice described
in Exhibit A. If it is not possible to put such notice in a particular Source
Code file due to its structure, then you must include such notice in a location
(such as a relevant directory file) where a user would be likely to look for
such a notice. You may choose to offer, and to charge a fee for, warranty,
support, indemnity or liability obligations to one or more recipients of Covered
Code. However, You may do so only on Your own behalf, and not on behalf of the
Initial Developer or any Contributor. You must make it absolutely clear than any
such warranty, support, indemnity or liability obligation is offered by You
alone, and You hereby agree to indemnify the Initial Developer and every
Contributor for any liability incurred by the Initial Developer or such
Contributor as a result of warranty, support, indemnity or liability terms You
offer.

3.6. Distribution of Executable Versions.
You may distribute Covered Code in Executable form only if the
requirements of Section 3.1-3.5 have been met for that Covered Code, and if You
include a notice stating that the Source Code version of the Covered Code is
available under the terms of this License, including a description of how and
where You have fulfilled the obligations of Section 3.2. The notice must be
conspicuously included in any notice in an Executable version, related
documentation or collateral in which You describe recipients' rights relating to
the Covered Code. You may distribute the Executable version of Covered Code
under a license of Your choice, which may contain terms different from this
License, provided that You are in compliance with the terms of this License and
that the license for the Executable version does not attempt to limit or alter
the recipient's rights in the Source Code version from the rights set forth in
this License. If You distribute the Executable version under a different license
You must make it absolutely clear that any terms which differ from this License
are offered by You alone, not by the Initial Developer or any Contributor. You
hereby agree to indemnify the Initial Developer and every Contributor for any
liability incurred by the Initial Developer or such Contributor as a result of
any such terms You offer.

3.7. Larger Works.
You may create a Larger Work by combining Covered Code with other code not
governed by the terms of this License and distribute the Larger Work as a single
product. In such a case, You must make sure the requirements of this License are
fulfilled for the Covered Code.

4. Inability to Comply Due to Statute or Regulation.

If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Code due to statute or
regulation then You must: (a) comply with the terms of this License to the
maximum extent possible; and (b) describe the limitations and the code they
affect. Such description must be included in the LEGAL file described in Section
3.4 and must be included with all distributions of the Source Code. Except to
the extent prohibited by statute or regulation, such description must be
sufficiently detailed for a recipient of ordinary skill to be able to understand
it.

5. Application of this License.

This License applies to code to which the Initial Developer has attached
the notice in Exhibit A, and to related Covered Code.

6. Versions of the License.

6.1. New Versions.
Netscape Communications Corporation ("Netscape") may publish revised
and/or new versions of the License from time to time. Each version will be given
a distinguishing version number.

6.2. Effect of New Versions.
Once Covered Code has been published under a particular version of the
License, You may always continue to use it under the terms of that version. You
may also choose to use such Covered Code under the terms of any subsequent
version of the License published by Netscape. No one other than Netscape has the
right to modify the terms applicable to Covered Code created under this License.

6.3. Derivative Works.
If you create or use a modified version of this License (which you may
only do in order to apply it to code which is not already Covered Code governed
by this License), you must (a) rename Your license so that the phrases
"Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "NPL" or any confusingly similar
phrase do not appear anywhere in your license and (b) otherwise make it clear
that your version of the license contains terms which differ from the Mozilla
Public License and Netscape Public License. (Filling in the name of the Initial
Developer, Original Code or Contributor in the notice described in Exhibit A
shall not of themselves be deemed to be modifications of this License.)

7. DISCLAIMER OF WARRANTY.

COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE,
FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE
QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE
PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER
CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION.
THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO
USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.

8. TERMINATION.

This License and the rights granted hereunder will terminate automatically
if You fail to comply with terms herein and fail to cure such breach within 30
days of becoming aware of the breach. All sublicenses to the Covered Code which
are properly granted shall survive any termination of this License. Provisions
which, by their nature, must remain in effect beyond the termination of this
License shall survive.

9. LIMITATION OF LIABILITY.

UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL DEVELOPER, ANY OTHER
CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH
PARTIES, BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL,
INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH
PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS
LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND
LIMITATION MAY NOT APPLY TO YOU.

10. U.S. GOVERNMENT END USERS.

The Covered Code is a "commercial item," as that term is defined in 48
C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and
"commercial computer software documentation," as such terms are used in 48
C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R.
227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire
Covered Code with only those rights set forth herein.

11. MISCELLANEOUS.

This License represents the complete agreement concerning subject matter
hereof. If any provision of this License is held to be unenforceable, such
provision shall be reformed only to the extent necessary to make it enforceable.
This License shall be governed by California law provisions (except to the
extent applicable law, if any, provides otherwise), excluding its
conflict-of-law provisions. With respect to disputes in which at least one party
is a citizen of, or an entity chartered or registered to do business in, the
United States of America: (a) unless otherwise agreed in writing, all disputes
relating to this License (excepting any dispute relating to intellectual
property rights) shall be subject to final and binding arbitration, with the
losing party paying all costs of arbitration; (b) any arbitration relating to
this Agreement shall be held in Santa Clara County, California, under the
auspices of JAMS/EndDispute; and (c) any litigation relating to this Agreement
shall be subject to the jurisdiction of the Federal Courts of the Northern
District of California, with venue lying in Santa Clara County, California, with
the losing party responsible for costs, including without limitation, court
costs and reasonable attorneys fees and expenses. The application of the United
Nations Convention on Contracts for the International Sale of Goods is expressly
excluded. Any law or regulation which provides that the language of a contract
shall be construed against the drafter shall not apply to this License.

12. RESPONSIBILITY FOR CLAIMS.

Except in cases where another Contributor has failed to comply with
Section 3.4, You are responsible for damages arising, directly or indirectly,
out of Your utilization of rights under this License, based on the number of
copies of Covered Code you made available, the revenues you received from
utilizing such rights, and other relevant factors. You agree to work with
affected parties to distribute responsibility on an equitable basis.

EXHIBIT A.

"The contents of this file are subject to the Mozilla Public License
Version 1.0 (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 Original Code is ______________________________________.

The Initial Developer of the Original Code is ________________________.
Portions created by ______________________ are Copyright (C) ______
_______________________. All Rights Reserved.

Contributor(s): ______________________________________."

-
The following software may be -included in this product: libxslt; Use of any of this -software -is governed -by the terms of the license below:
-

www.xmlsoft.org
-

-

libxslt
-

-Copyright (C) 2001-2002 Daniel Veillard. All Rights Reserved. -
-Permission is hereby granted, free of charge, to any person obtaining a -copy -of this software and associated documentation files (the "Software"), -to deal -in the Software without restriction, including without limitation the -rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell -copies of the Software, and to permit persons to whom the Software is -fur- -nished to do so, subject to the following conditions: -
-The above copyright notice and this permission notice shall be included -in -all copies or substantial portions of the Software. -
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FIT- -NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE -DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CON- -NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -
-Except as contained in this notice, the name of Daniel Veillard shall -not -be used in advertising or otherwise to promote the sale, use or other -deal- -ings in this Software without prior written authorization from him. -
-
The following software may be -included in this product: lpsolve; Use of any of this software -is governed by the terms of the license below:
-

Kjell Eikland and -Peter Notebaert
-

-

lpsolve
-

-jump to LGPL
-
The following software may be -included in this product: Network Audio System; Use of any of this -software is governed -by the terms of the license below:
-

Network Computer -Devices, Inc.

-

Network Audio System -(NAS)

-Copyright 1995 Network Computing Devices, Inc. Permission to use, copy, -modify, distribute, and sell this software and its documentation for -any purpose is hereby granted without fee, provided that the above -copyright notice appear in all copies and that both that copyright -notice and this permission notice appear in supporting documentation, -and that the name Network Computing Devices, Inc. not be used in -advertising or publicity pertaining to distribution of this software -without specific, written prior permission.
-
-THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, INC., -DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -WITHOUT LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL NETWORK -COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, -INCLUDING SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS -OF USE, DATA, OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, -AND REGARDLESS OF WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. -
The following software may be -included in this product: NeoLight 1.1.x; Use of any of this software -is governed by the terms of the license below:
-

Planamesa, Inc.
-

-

NeoLight
-

-
-jump to GNU Lesser General Public License
-
The following software may be -included in this product: neon; Use of any of this -software -is governed -by the terms of the license below:
-

Joe Orton
-

-

neon
-

-jump to LGPL
-
The following software may be -included in this product: Network Security Services; Use of any of this -software -is governed -by the terms of the license below:
-

The Mozilla Foundation
-

-

Network Security -Services (NSS)
-

-
MOZILLA PUBLIC LICENSE -
-Version 1.1 -

-
- -

1. Definitions. -

-
    - 1.0.1. "Commercial Use" means distribution or otherwise -making -the Covered Code available to a third party. - -

    1.1. ''Contributor'' means each entity that creates or -contributes -to the creation of Modifications. -

    -

    1.2. ''Contributor Version'' means the combination of the -Original -Code, prior Modifications used by a Contributor, and the Modifications -made by that particular Contributor. -

    -

    1.3. ''Covered Code'' means the Original Code or -Modifications -or the combination of the Original Code and Modifications, in each case -including portions thereof. -

    -

    1.4. ''Electronic Distribution Mechanism'' means a -mechanism -generally accepted in the software development community for the -electronic -transfer of data. -

    -

    1.5. ''Executable'' means Covered Code in any form other -than -Source Code. -

    -

    1.6. ''Initial Developer'' means the individual or entity -identified -as the Initial Developer in the Source Code notice required by Exhibit -A. -

    -

    1.7. ''Larger Work'' means a work which combines Covered -Code -or portions thereof with code not governed by the terms of this -License. -

    -

    1.8. ''License'' means this document. -

    -

    1.8.1. "Licensable" means having the right to grant, to the -maximum -extent possible, whether at the time of the initial grant or -subsequently -acquired, any and all of the rights conveyed herein. -

    -

    1.9. ''Modifications'' means any addition to or deletion -from -the substance or structure of either the Original Code or any previous -Modifications. When Covered Code is released as a series of files, a -Modification -is: -

    -
      - A. Any addition to or deletion from the contents of a file -containing -Original Code or previous Modifications. -

      B. Any new file that contains any part of the Original -Code or -previous Modifications. -

      -
    - - 1.10. ''Original Code'' means Source Code of computer software -code -which is described in the Source Code notice required by Exhibit A -as Original Code, and which, at the time of its release under this -License -is not already Covered Code governed by this License. - -

    1.10.1. "Patent Claims" means any patent claim(s), now -owned -or hereafter acquired, including without limitation,  method, -process, -and apparatus claims, in any patent Licensable by grantor. -

    -

    1.11. ''Source Code'' means the preferred form of the -Covered -Code for making modifications to it, including all modules it contains, -plus any associated interface definition files, scripts used to control -compilation and installation of an Executable, or source code -differential -comparisons against either the Original Code or another well known, -available -Covered Code of the Contributor's choice. The Source Code can be in a -compressed -or archival form, provided the appropriate decompression or -de-archiving -software is widely available for no charge. -

    -

    1.12. "You'' (or "Your")  means an individual or a -legal -entity exercising rights under, and complying with all of the terms of, -this License or a future version of this License issued under Section -6.1. -For legal entities, "You'' includes any entity which controls, is -controlled -by, or is under common control with You. For purposes of this -definition, -"control'' means (a) the power, direct or indirect, to cause the -direction -or management of such entity, whether by contract or otherwise, or (b) -ownership of more than fifty percent (50%) of the outstanding shares or -beneficial ownership of such entity.

    -
- -2. Source Code License. - -
    - 2.1. The Initial Developer Grant. -
    -The Initial Developer hereby grants You a world-wide, royalty-free, -non-exclusive license, subject to third party intellectual property -claims: -
      - (a)  under intellectual property rights (other -than -patent or trademark) Licensable by Initial Developer to use, reproduce, -modify, display, perform, sublicense and distribute the Original Code -(or -portions thereof) with or without Modifications, and/or as part of a -Larger -Work; and -

      (b) under Patents Claims infringed by the making, using -or selling -of Original Code, to make, have made, use, practice, sell, and offer -for -sale, and/or otherwise dispose of the Original Code (or portions -thereof). -

      -
        -
          -  -
        -
      - (c) the licenses granted in this Section 2.1(a) and (b) are -effective -on the date Initial Developer first distributes Original Code under the -terms of this License. -

      (d) Notwithstanding Section 2.1(b) above, no patent -license is -granted: 1) for code that You delete from the Original Code; 2) -separate -from the Original Code;  or 3) for infringements caused by: i) the -modification of the Original Code or ii) the combination of the -Original -Code with other software or devices. -

      -
    - - 2.2. Contributor Grant. -
    -Subject to third party intellectual property claims, each Contributor -hereby grants You a world-wide, royalty-free, non-exclusive license -
      -  -
      - (a)  under intellectual property rights (other -than -patent or trademark) Licensable by Contributor, to use, reproduce, -modify, -display, perform, sublicense and distribute the Modifications created -by -such Contributor (or portions thereof) either on an unmodified basis, -with -other Modifications, as Covered Code and/or as part of a Larger Work; -and -

      (b) under Patent Claims infringed by the making, using, -or selling -of  Modifications made by that Contributor either alone and/or in -combination with its Contributor Version (or portions of such -combination), -to make, use, sell, offer for sale, have made, and/or otherwise dispose -of: 1) Modifications made by that Contributor (or portions thereof); -and -2) the combination of  Modifications made by that Contributor with -its Contributor Version (or portions of such combination). -

      -

      (c) the licenses granted in Sections 2.2(a) and 2.2(b) -are effective -on the date Contributor first makes Commercial Use of the Covered Code. -

      -

      (d)    Notwithstanding Section 2.2(b) -above, no -patent license is granted: 1) for any code that Contributor has deleted -from the Contributor Version; 2)  separate from the Contributor -Version;  -3)  for infringements caused by: i) third party modifications of -Contributor -Version or ii)  the combination of Modifications made by that -Contributor -with other software  (except as part of the Contributor Version) -or -other devices; or 4) under Patent Claims infringed by Covered Code in -the -absence of Modifications made by that Contributor.

      -
    -
- -


-3. Distribution Obligations. -

-
    - 3.1. Application of License. -
    -The Modifications which You create or to which You contribute are -governed -by the terms of this License, including without limitation Section 2.2. -The Source Code version of Covered Code may be distributed only under -the -terms of this License or a future version of this License released -under -Section 6.1, and You must include a copy of this License with -every -copy of the Source Code You distribute. You may not offer or impose any -terms on any Source Code version that alters or restricts the -applicable -version of this License or the recipients' rights hereunder. However, -You -may include an additional document offering the additional rights -described -in Section 3.5. - -

    3.2. Availability of Source Code. -
    -Any Modification which You create or to which You contribute must be -made available in Source Code form under the terms of this License -either -on the same media as an Executable version or via an accepted -Electronic -Distribution Mechanism to anyone to whom you made an Executable version -available; and if made available via Electronic Distribution Mechanism, -must remain available for at least twelve (12) months after the date it -initially became available, or at least six (6) months after a -subsequent -version of that particular Modification has been made available to such -recipients. You are responsible for ensuring that the Source Code -version -remains available even if the Electronic Distribution Mechanism is -maintained -by a third party. -

    -

    3.3. Description of Modifications. -
    -You must cause all Covered Code to which You contribute to contain -a file documenting the changes You made to create that Covered Code and -the date of any change. You must include a prominent statement that the -Modification is derived, directly or indirectly, from Original Code -provided -by the Initial Developer and including the name of the Initial -Developer -in (a) the Source Code, and (b) in any notice in an Executable version -or related documentation in which You describe the origin or ownership -of the Covered Code. -

    -

    3.4. Intellectual Property Matters -

    -
      - (a) Third Party Claims. -
      -If Contributor has knowledge that a license under a third party's -intellectual -property rights is required to exercise the rights granted by such -Contributor -under Sections 2.1 or 2.2, Contributor must include a text file with -the -Source Code distribution titled "LEGAL'' which describes the claim and -the party making the claim in sufficient detail that a recipient will -know -whom to contact. If Contributor obtains such knowledge after the -Modification -is made available as described in Section 3.2, Contributor shall -promptly -modify the LEGAL file in all copies Contributor makes available -thereafter -and shall take other steps (such as notifying appropriate mailing lists -or newsgroups) reasonably calculated to inform those who received the -Covered -Code that new knowledge has been obtained. -

      (b) Contributor APIs. -
      -If Contributor's Modifications include an application programming -interface -and Contributor has knowledge of patent licenses which are reasonably -necessary -to implement that API, Contributor must also include this information -in -the LEGAL file. -

      -
    -          (c)    -Representations. -
      -Contributor represents that, except as disclosed pursuant to Section -3.4(a) above, Contributor believes that Contributor's Modifications are -Contributor's original creation(s) and/or Contributor has sufficient -rights -to grant the rights conveyed by this License. -
    - -


    - 3.5. Required Notices. -
    -You must duplicate the notice in Exhibit A in each file of the -Source Code.  If it is not possible to put such notice in a -particular -Source Code file due to its structure, then You must include such -notice -in a location (such as a relevant directory) where a user would be -likely -to look for such a notice.  If You created one or more -Modification(s) -You may add your name as a Contributor to the notice described in Exhibit -A.  You must also duplicate this License in any documentation -for the Source Code where You describe recipients' rights or ownership -rights relating to Covered Code.  You may choose to offer, and to -charge a fee for, warranty, support, indemnity or liability obligations -to one or more recipients of Covered Code. However, You may do so only -on Your own behalf, and not on behalf of the Initial Developer or any -Contributor. -You must make it absolutely clear than any such warranty, support, -indemnity -or liability obligation is offered by You alone, and You hereby agree -to -indemnify the Initial Developer and every Contributor for any liability -incurred by the Initial Developer or such Contributor as a result of -warranty, -support, indemnity or liability terms You offer. -

    -

    3.6. Distribution of Executable Versions. -
    -You may distribute Covered Code in Executable form only if the -requirements -of Section 3.1-3.5 have been met for that Covered Code, and if -You -include a notice stating that the Source Code version of the Covered -Code -is available under the terms of this License, including a description -of -how and where You have fulfilled the obligations of Section 3.2. -The notice must be conspicuously included in any notice in an -Executable -version, related documentation or collateral in which You describe -recipients' -rights relating to the Covered Code. You may distribute the Executable -version of Covered Code or ownership rights under a license of Your -choice, -which may contain terms different from this License, provided that You -are in compliance with the terms of this License and that the license -for -the Executable version does not attempt to limit or alter the -recipient's -rights in the Source Code version from the rights set forth in this -License. -If You distribute the Executable version under a different license You -must make it absolutely clear that any terms which differ from this -License -are offered by You alone, not by the Initial Developer or any -Contributor. -You hereby agree to indemnify the Initial Developer and every -Contributor -for any liability incurred by the Initial Developer or such Contributor -as a result of any such terms You offer. -

    -

    3.7. Larger Works. -
    -You may create a Larger Work by combining Covered Code with other code -not governed by the terms of this License and distribute the Larger -Work -as a single product. In such a case, You must make sure the -requirements -of this License are fulfilled for the Covered Code.

    -
- -4. Inability to Comply Due to Statute or Regulation. -
    -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Code due to statute, -judicial order, or regulation then You must: (a) comply with the terms -of this License to the maximum extent possible; and (b) describe the -limitations -and the code they affect. Such description must be included in the -LEGAL -file described in Section 3.4 and must be included with all -distributions -of the Source Code. Except to the extent prohibited by statute or -regulation, -such description must be sufficiently detailed for a recipient of -ordinary -skill to be able to understand it. -
- -5. Application of this License. -
    -This License applies to code to which the Initial Developer has -attached -the notice in Exhibit A and to related Covered Code. -
- -6. Versions of the License. - -
    - 6.1. New Versions. -
    -Netscape Communications Corporation (''Netscape'') may publish revised -and/or new versions of the License from time to time. Each version will -be given a distinguishing version number. - -

    6.2. Effect of New Versions. -
    -Once Covered Code has been published under a particular version of -the License, You may always continue to use it under the terms of that -version. You may also choose to use such Covered Code under the terms -of -any subsequent version of the License published by Netscape. No one -other -than Netscape has the right to modify the terms applicable to Covered -Code -created under this License. -

    -

    6.3. Derivative Works. -
    -If You create or use a modified version of this License (which you -may only do in order to apply it to code which is not already Covered -Code -governed by this License), You must (a) rename Your license so that the -phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", -''NPL'' -or any confusingly similar phrase do not appear in your license (except -to note that your license differs from this License) and (b) otherwise -make it clear that Your version of the license contains terms which -differ -from the Mozilla Public License and Netscape Public License. (Filling -in -the name of the Initial Developer, Original Code or Contributor in the -notice described in Exhibit A shall not of themselves be deemed -to be modifications of this License.)

    -
- -7. DISCLAIMER OF WARRANTY. -
    -COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, -WITHOUT -WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT -LIMITATION, -WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT -FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE -QUALITY -AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED -CODE -PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY -OTHER -CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR -CORRECTION. -THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS -LICENSE. -NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS -DISCLAIMER. -
- -8. TERMINATION. - -
    - 8.1.  This License and the rights granted hereunder will -terminate automatically if You fail to comply with terms herein and -fail -to cure such breach within 30 days of becoming aware of the breach. All -sublicenses to the Covered Code which are properly granted shall -survive -any termination of this License. Provisions which, by their nature, -must -remain in effect beyond the termination of this License shall survive. - -

    8.2.  If You initiate litigation by asserting a -patent infringement -claim (excluding declatory judgment actions) against Initial Developer -or a Contributor (the Initial Developer or Contributor against whom You -file such action is referred to as "Participant")  alleging that: -

    -

    (a)  such Participant's Contributor Version directly -or -indirectly infringes any patent, then any and all rights granted by -such -Participant to You under Sections 2.1 and/or 2.2 of this License shall, -upon 60 days notice from Participant terminate prospectively, unless if -within 60 days after receipt of notice You either: (i)  agree in -writing -to pay Participant a mutually agreeable reasonable royalty for Your -past -and future use of Modifications made by such Participant, or (ii) -withdraw -Your litigation claim with respect to the Contributor Version against -such -Participant.  If within 60 days of notice, a reasonable royalty -and -payment arrangement are not mutually agreed upon in writing by the -parties -or the litigation claim is not withdrawn, the rights granted by -Participant -to You under Sections 2.1 and/or 2.2 automatically terminate at the -expiration -of the 60 day notice period specified above. -

    -

    (b)  any software, hardware, or device, other than -such -Participant's Contributor Version, directly or indirectly infringes any -patent, then any rights granted to You by such Participant under -Sections -2.1(b) and 2.2(b) are revoked effective as of the date You first made, -used, sold, distributed, or had made, Modifications made by that -Participant. -

    -

    8.3.  If You assert a patent infringement claim -against -Participant alleging that such Participant's Contributor Version -directly -or indirectly infringes any patent where such claim is resolved (such -as -by license or settlement) prior to the initiation of patent -infringement -litigation, then the reasonable value of the licenses granted by such -Participant -under Sections 2.1 or 2.2 shall be taken into account in determining -the -amount or value of any payment or license. -

    -

    8.4.  In the event of termination under Sections 8.1 -or -8.2 above,  all end user license agreements (excluding -distributors -and resellers) which have been validly granted by You or any -distributor -hereunder prior to termination shall survive termination.

    -
- -9. LIMITATION OF LIABILITY. -
    -UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT -(INCLUDING -NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, -ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY -SUPPLIER -OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, -SPECIAL, -INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, -WITHOUT -LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER -FAILURE -OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN -IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH -DAMAGES. -THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR -PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT -APPLICABLE -LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE -EXCLUSION -OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION -AND LIMITATION MAY NOT APPLY TO YOU. -
- -10. U.S. GOVERNMENT END USERS. -
    -The Covered Code is a ''commercial item,'' as that term is defined -in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer -software'' -and ''commercial computer software documentation,'' as such terms are -used -in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and -48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. -Government -End Users acquire Covered Code with only those rights set forth herein. -
- -11. MISCELLANEOUS. -
    -This License represents the complete agreement concerning subject -matter -hereof. If any provision of this License is held to be unenforceable, -such -provision shall be reformed only to the extent necessary to make it -enforceable. -This License shall be governed by California law provisions (except to -the extent applicable law, if any, provides otherwise), excluding its -conflict-of-law -provisions. With respect to disputes in which at least one party is a -citizen -of, or an entity chartered or registered to do business in the United -States -of America, any litigation relating to this License shall be subject to -the jurisdiction of the Federal Courts of the Northern District of -California, -with venue lying in Santa Clara County, California, with the losing -party -responsible for costs, including without limitation, court costs and -reasonable -attorneys' fees and expenses. The application of the United Nations -Convention -on Contracts for the International Sale of Goods is expressly excluded. -Any law or regulation which provides that the language of a contract -shall -be construed against the drafter shall not apply to this License. -
- -12. RESPONSIBILITY FOR CLAIMS. -
    -As between Initial Developer and the Contributors, each party is -responsible -for claims and damages arising, directly or indirectly, out of its -utilization -of rights under this License and You agree to work with Initial -Developer -and Contributors to distribute such responsibility on an equitable -basis. -Nothing herein is intended or shall be deemed to constitute any -admission -of liability. -
- -13. MULTIPLE-LICENSED CODE. -
    -Initial Developer may designate portions of the Covered Code as -“Multiple-Licensed”.  -“Multiple-Licensed” means that the Initial Developer permits you to -utilize -portions of the Covered Code under Your choice of the MPL or the -alternative -licenses, if any, specified by the Initial Developer in the file -described -in Exhibit A. -
- -


-EXHIBIT A -Mozilla Public License. -

-
    -``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 Original Code is ______________________________________. -

    -

    The Initial Developer of the Original Code is -________________________. -Portions created by -
    - ______________________ are Copyright (C) ______ -_______________________. -All Rights -
    -Reserved. -

    -

    Contributor(s): ______________________________________. -

    -

    Alternatively, the contents of this file may be used under the -terms -of the _____ license (the  “[___] License”), in which case the -provisions -of [______] License are applicable  instead of those above.  -If you wish to allow use of your version of this file only under the -terms -of the [____] License and not to allow others to use your version of -this -file under the MPL, indicate your decision by deleting  the -provisions -above and replace  them with the notice and other provisions -required -by the [___] License.  If you do not delete the provisions above, -a recipient may use your version of this file under either the MPL or -the -[___] License." -

    -

    [NOTE: The text of this Exhibit A may differ slightly from the -text -of the notices in the Source Code files of the Original Code. You -should -use the text of this Exhibit A rather than the text found in the -Original -Code Source Code for Your Modifications.] -

    -

    -
-
The following software may be -included in this product: OpenSSL; Use of any of this -software -is governed -by the terms of the license below:
-

OpenSSL Project
-

-

OpenSSL
-

-
  LICENSE ISSUES
==============

The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
the OpenSSL License and the original SSLeay license apply to the toolkit.
See below for the actual license texts. Actually both licenses are BSD-style
Open Source licenses. In case of any license issues related to OpenSSL
please contact openssl-core@openssl.org.

OpenSSL License
---------------

/* ====================================================================
* Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@openssl.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/

Original SSLeay License
-----------------------

/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
* This package is an SSL implementation written
* by Eric Young (eay@cryptsoft.com).
* The implementation was written so as to conform with Netscapes SSL.
*
* This library is free for commercial and non-commercial use as long as
* the following conditions are aheared to. The following conditions
* apply to all code found in this distribution, be it the RC4, RSA,
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
* included with this distribution is covered by the same copyright terms
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
*
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* If this package is used in a product, Eric Young should be given attribution
* as the author of the parts of the library used.
* This can be in the form of a textual message at program startup or
* in documentation (online or textual) provided with the package.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* "This product includes cryptographic software written by
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
* 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
*
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
* [including the GNU Public Licence.]
*/

-
-
The following software may be -included in this product:PortAudio - Portable Real-Time Audio Library; -Use of any of this software -is governed -by the terms of the license below:
-

Ross Bencina and -Phil Burk
-

-

PortAudio
-

-PortAudio Portable Real-Time Audio Library -
-Copyright (c) 1999-2000 Ross Bencina and Phil Burk -

Permission is hereby granted, free of charge, to any person -obtaining -a copy of this software and associated documentation files (the -"Software"), -to deal in the Software without restriction, including without -limitation -the rights to use, copy, modify, merge, publish, distribute, -sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software -is furnished to do so, subject to the following conditions: -

-
    -
  • -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software.
  • -
  • -Any person wishing to distribute modifications to the Software is -requested -to send the modifications to the original developer so that they can be -incorporated into the canonical version.
  • -
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND ON INFRINGEMENT. -
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT -OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE -OR -THE USE OR OTHER DEALINGS IN THE SOFTWARE. -
-  -

Plain English Interpretation of the License

-The following is a plain English interpretation of the license. This -interpretation -is not part of the license and has no legal significance. To understand -the full legal implications of the license you should consult the -license -itself. -
    -
  • -You can use PortAudio for free in your projects or -applications, -even commercial applications.
  • -
  • -You do not have to make your own source available as -open-source -code just because you used PortAudio.
  • -
  • -Do not take our copyright information out of the PortAudio -source -code.
  • -
  • -If you fix a bug in PortAudio, please send us the fix.
  • -
  • -You cannot sue us if your program fails because of PortAudio.
  • -
-


-

-
The following software may be -included in this product: XT; Use of any of this -software -is governed -by the terms of the license below:
-

James Clark, Bill -Lindsey
-

-

PostgreSQL Database -Management System

-
-(formerly known as Postgres, then as Postgres95) -
-Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group -
-Portions Copyright (c) 1994, The Regents of the University of -California -
-Permission to use, copy, modify, and distribute this software and its -documentation for any purpose, without fee, and without a written -agreement -is hereby granted, provided that the above copyright notice and this -paragraph and the following two paragraphs appear in all copies. -
-IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY -FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, -INCLUDING -LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS -DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF -THE -POSSIBILITY OF SUCH DAMAGE. -
-THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY -AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER -IS -ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO -OBLIGATIONS TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -
-
The following software may be -included in this product: PostScript(R) AFM Files; Use of any of this -software -is governed -by the terms of the license below:
-

Adobe
-

-

Printer Description -Files
-

-
-
 Copyright 1987-1995 Adobe Systems Incorporated.
All Rights Reserved.
Permission is granted for redistribution of this file as
long as this copyright notice is intact and the contents
of the file is not altered in any way from its original form.
End of Copyright statement
-
The following software may be -included in this product: Python; Use of any of this + + +
+GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    
+    Copyright (C)   
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  , 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
+Additional License(s)
+
+libstdc++:
+// Explicit instantiation file.
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free
 software
-is governed
-by the terms of the license below:
-

Python Software -Foundation
-

-

Python
-

-
-B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
-===============================================================
-
-PSF LICENSE AGREEMENT FOR PYTHON 2.3
-------------------------------------
-
-1. This LICENSE AGREEMENT is between the Python Software Foundation
-("PSF"), and the Individual or Organization ("Licensee") accessing and
-otherwise using Python 2.3 software in source or binary form and its
-associated documentation.
-
-2. Subject to the terms and conditions of this License Agreement, PSF
-hereby grants Licensee a nonexclusive, royalty-free, world-wide
-license to reproduce, analyze, test, perform and/or display publicly,
-prepare derivative works, distribute, and otherwise use Python 2.3
-alone or in any derivative version, provided, however, that PSF's
-License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
-2001, 2002, 2003, 2004 Python Software Foundation; All Rights Reserved" are
-retained in Python 2.3 alone or in any derivative version prepared by
-Licensee.
-
-3. In the event Licensee prepares a derivative work that is based on
-or incorporates Python 2.3 or any part thereof, and wants to make
-the derivative work available to others as provided herein, then
-Licensee hereby agrees to include in any such work a brief summary of
-the changes made to Python 2.3.
-
-4. PSF is making Python 2.3 available to Licensee on an "AS IS"
-basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.3 WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
-2.3 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
-A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.3,
-OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-6. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-7. Nothing in this License Agreement shall be deemed to create any
-relationship of agency, partnership, or joint venture between PSF and
-Licensee.  This License Agreement does not grant permission to use PSF
-trademarks or trade name in a trademark sense to endorse or promote
-products or services of Licensee, or any third party.
-
-8. By copying, installing or otherwise using Python 2.3, Licensee
-agrees to be bound by the terms and conditions of this License
-Agreement.
-
-
-BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
--------------------------------------------
-
-BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
-
-1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
-office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
-Individual or Organization ("Licensee") accessing and otherwise using
-this software in source or binary form and its associated
-documentation ("the Software").
-
-2. Subject to the terms and conditions of this BeOpen Python License
-Agreement, BeOpen hereby grants Licensee a non-exclusive,
-royalty-free, world-wide license to reproduce, analyze, test, perform
-and/or display publicly, prepare derivative works, distribute, and
-otherwise use the Software alone or in any derivative version,
-provided, however, that the BeOpen Python License is retained in the
-Software, alone or in any derivative version prepared by Licensee.
-
-3. BeOpen is making the Software available to Licensee on an "AS IS"
-basis.  BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
-SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
-AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
-DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-5. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

6. This License Agreement shall be governed by and interpreted in all
respects by the law of the State of California, excluding conflict of
law provisions. Nothing in this License Agreement shall be deemed to
create any relationship of agency, partnership, or joint venture
between BeOpen and Licensee. This License Agreement does not grant
permission to use BeOpen trademarks or trade names in a trademark
sense to endorse or promote products or services of Licensee, or any
third party. As an exception, the "BeOpen Python" logos available at
http://www.pythonlabs.com/logos.html may be used according to the
permissions granted on that web page.

7. By copying, installing or otherwise using the software, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.


CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
---------------------------------------

1. This LICENSE AGREEMENT is between the Corporation for National
Research Initiatives, having an office at 1895 Preston White Drive,
Reston, VA 20191 ("CNRI"), and the Individual or Organization
("Licensee") accessing and otherwise using Python 1.6.1 software in
source or binary form and its associated documentation.

2. Subject to the terms and conditions of this License Agreement, CNRI
hereby grants Licensee a nonexclusive, royalty-free, world-wide
license to reproduce, analyze, test, perform and/or display publicly,
prepare derivative works, distribute, and otherwise use Python 1.6.1
alone or in any derivative version, provided, however, that CNRI's
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
1995-2001 Corporation for National Research Initiatives; All Rights
Reserved" are retained in Python 1.6.1 alone or in any derivative
version prepared by Licensee. Alternately, in lieu of CNRI's License
Agreement, Licensee may substitute the following text (omitting the
quotes): "Python 1.6.1 is made available subject to the terms and
conditions in CNRI's License Agreement. This Agreement together with
Python 1.6.1 may be located on the Internet using the following
unique, persistent identifier (known as a handle): 1895.22/1013. This
Agreement may also be obtained from a proxy server on the Internet
using the following URL: http://hdl.handle.net/1895.22/1013".

3. In the event Licensee prepares a derivative work that is based on
or incorporates Python 1.6.1 or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python 1.6.1.

4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

7. This License Agreement shall be governed by the federal
intellectual property law of the United States, including without
limitation the federal copyright law, and, to the extent such
U.S. federal law does not apply, by the law of the Commonwealth of
Virginia, excluding Virginia's conflict of law provisions.
Notwithstanding the foregoing, with regard to derivative works based
on Python 1.6.1 that incorporate non-separable material that was
previously distributed under the GNU General Public License (GPL), the
law of the Commonwealth of Virginia shall govern this License
Agreement only as to issues arising under or with respect to
Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
License Agreement shall be deemed to create any relationship of
agency, partnership, or joint venture between CNRI and Licensee. This
License Agreement does not grant permission to use CNRI trademarks or
trade name in a trademark sense to endorse or promote products or
services of Licensee, or any third party.

8. By clicking on the "ACCEPT" button where indicated, or by copying,
installing or otherwise using Python 1.6.1, Licensee agrees to be
bound by the terms and conditions of this License Agreement.

ACCEPT


CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
--------------------------------------------------

Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
The Netherlands. All rights reserved.

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Stichting Mathematisch
Centrum or CWI not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.

STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
The following software may be -included in this product: regexp; Use of any of this software -is governed by the terms of the license below:
-

Free Software -Foundation, Inc.
-

-

regexp
-

-jump to LGPL
-
The following software may be -included in this product: Remote Control Wrapper; Use of any of this -software is governed by the terms of the license below:
-

Martin Kahr
-

-

Remote Control Wrapper
-

-
-Created by Martin Kahr under a MIT-style license. 
-Copyright (c) 2006/2007 martinkahr.com. All rights reserved.
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you
+compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be
+covered by
+// the GNU General Public License.
 
-Permission is hereby granted, free of charge, to any person obtaining a 
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
+libgcc:
+//
+// ISO C++ 14882:
+//
 
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
+/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+   Contributed by Jakub Jelinek .
 
-THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+   This file is part of GNU CC.
+
+   GNU CC is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   GNU CC is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GNU CC; see the file COPYING.  If not, write to
+   the Free Software Foundation, 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, if you link this library with other files,
+   some of which are compiled with GCC, to produce an executable,
+   this library does not by itself cause the resulting executable
+   to be covered by the GNU General Public License.
+   This exception does not however invalidate any other reasons why
+   the executable file might be covered by the GNU General Public
+License.  */
+
+/* Locate the FDE entry for a given address, using PT_GNU_EH_FRAME ELF
+   segment and dl_iterate_phdr to avoid register/deregister calls at
+   DSO load/unload.  */
 
 
+ + + + + +
The following software may be -included in this product: Rhino; Use of any of this -software -is governed -by the terms of the license below:
-

Norris Boyd, Patrick -Beard
-

-

Rhino
-

-
MOZILLA PUBLIC LICENSE -
-Version 1.1 -

-
- -

1. Definitions. -

-
    - 1.0.1. "Commercial Use" means distribution or otherwise -making -the Covered Code available to a third party. -

    1.1. ''Contributor'' means each entity that creates or -contributes -to the creation of Modifications.

    -

    1.2. ''Contributor Version'' means the combination of the -Original -Code, prior Modifications used by a Contributor, and the Modifications -made by that particular Contributor.

    -

    1.3. ''Covered Code'' means the Original Code or -Modifications -or the combination of the Original Code and Modifications, in each case -including portions thereof.

    -

    1.4. ''Electronic Distribution Mechanism'' means a -mechanism -generally accepted in the software development community for the -electronic -transfer of data.

    -

    1.5. ''Executable'' means Covered Code in any form other -than -Source Code.

    -

    1.6. ''Initial Developer'' means the individual or entity -identified -as the Initial Developer in the Source Code notice required by Exhibit -A.

    -

    1.7. ''Larger Work'' means a work which combines Covered -Code -or portions thereof with code not governed by the terms of this -License.

    -

    1.8. ''License'' means this document.

    -

    1.8.1. "Licensable" means having the right to grant, to the -maximum -extent possible, whether at the time of the initial grant or -subsequently -acquired, any and all of the rights conveyed herein.

    -

    1.9. ''Modifications'' means any addition to or deletion -from -the substance or structure of either the Original Code or any previous -Modifications. When Covered Code is released as a series of files, a -Modification -is:

    -
      - A. Any addition to or deletion from the contents of a file -containing -Original Code or previous Modifications. -

      B. Any new file that contains any part of the Original -Code or -previous Modifications.

      -
    - 1.10. ''Original Code'' means Source Code -of computer software -code -which is described in the Source Code notice required by Exhibit A -as Original Code, and which, at the time of its release under this -License -is not already Covered Code governed by this License. -

    1.10.1. "Patent Claims" means any patent claim(s), now -owned -or hereafter acquired, including without limitation,  method, -process, -and apparatus claims, in any patent Licensable by grantor.

    -

    1.11. ''Source Code'' means the preferred form of the -Covered -Code for making modifications to it, including all modules it contains, -plus any associated interface definition files, scripts used to control -compilation and installation of an Executable, or source code -differential -comparisons against either the Original Code or another well known, -available -Covered Code of the Contributor's choice. The Source Code can be in a -compressed -or archival form, provided the appropriate decompression or -de-archiving -software is widely available for no charge.

    -

    1.12. "You'' (or "Your")  means an individual or a -legal -entity exercising rights under, and complying with all of the terms of, -this License or a future version of this License issued under Section -6.1. -For legal entities, "You'' includes any entity which controls, is -controlled -by, or is under common control with You. For purposes of this -definition, -"control'' means (a) the power, direct or indirect, to cause the -direction -or management of such entity, whether by contract or otherwise, or (b) -ownership of more than fifty percent (50%) of the outstanding shares or -beneficial ownership of such entity.

    -
- -2. Source Code License. - -
    - 2.1. The Initial Developer Grant.
    -The Initial Developer hereby grants You a world-wide, royalty-free, -non-exclusive license, subject to third party intellectual property -claims: -
      - (a)  under intellectual property rights (other -than -patent or trademark) Licensable by Initial Developer to use, reproduce, -modify, display, perform, sublicense and distribute the Original Code -(or -portions thereof) with or without Modifications, and/or as part of a -Larger -Work; and -

      (b) under Patents Claims infringed by the making, using -or selling -of Original Code, to make, have made, use, practice, sell, and offer -for -sale, and/or otherwise dispose of the Original Code (or portions -thereof).

      -
        -
          -  -
        -
      - (c) the licenses granted in this Section 2.1(a) and (b) are -effective -on the date Initial Developer first distributes Original Code under the -terms of this License. -

      (d) Notwithstanding Section 2.1(b) above, no patent -license is -granted: 1) for code that You delete from the Original Code; 2) -separate -from the Original Code;  or 3) for infringements caused by: i) the -modification of the Original Code or ii) the combination of the -Original -Code with other software or devices.

      -
    - 2.2. Contributor Grant.
    -Subject to third party intellectual property claims, each Contributor -hereby grants You a world-wide, royalty-free, non-exclusive license -

      - (a)  under intellectual property rights (other -than -patent or trademark) Licensable by Contributor, to use, reproduce, -modify, -display, perform, sublicense and distribute the Modifications created -by -such Contributor (or portions thereof) either on an unmodified basis, -with -other Modifications, as Covered Code and/or as part of a Larger Work; -and -

      (b) under Patent Claims infringed by the making, using, -or selling -of  Modifications made by that Contributor either alone and/or in -combination with its Contributor Version (or portions of such -combination), -to make, use, sell, offer for sale, have made, and/or otherwise dispose -of: 1) Modifications made by that Contributor (or portions thereof); -and -2) the combination of  Modifications made by that Contributor with -its Contributor Version (or portions of such combination).

      -

      (c) the licenses granted in Sections 2.2(a) and 2.2(b) -are effective -on the date Contributor first makes Commercial Use of the Covered Code. -

      -

      (d)    Notwithstanding Section 2.2(b) -above, no -patent license is granted: 1) for any code that Contributor has deleted -from the Contributor Version; 2)  separate from the Contributor -Version;  -3)  for infringements caused by: i) third party modifications of -Contributor -Version or ii)  the combination of Modifications made by that -Contributor -with other software  (except as part of the Contributor Version) -or -other devices; or 4) under Patent Claims infringed by Covered Code in -the -absence of Modifications made by that Contributor.

      -
    -
- -


-3. Distribution Obligations. -

-
    - 3.1. Application of License.
    -The Modifications which You create or to which You contribute are -governed -by the terms of this License, including without limitation Section 2.2. -The Source Code version of Covered Code may be distributed only under -the -terms of this License or a future version of this License released -under -Section 6.1, and You must include a copy of this License with -every -copy of the Source Code You distribute. You may not offer or impose any -terms on any Source Code version that alters or restricts the -applicable -version of this License or the recipients' rights hereunder. However, -You -may include an additional document offering the additional rights -described -in Section 3.5. -

    3.2. Availability of Source Code.
    -Any Modification which You create or to which You contribute must be -made available in Source Code form under the terms of this License -either -on the same media as an Executable version or via an accepted -Electronic -Distribution Mechanism to anyone to whom you made an Executable version -available; and if made available via Electronic Distribution Mechanism, -must remain available for at least twelve (12) months after the date it -initially became available, or at least six (6) months after a -subsequent -version of that particular Modification has been made available to such -recipients. You are responsible for ensuring that the Source Code -version -remains available even if the Electronic Distribution Mechanism is -maintained -by a third party.

    -

    3.3. Description of Modifications.
    -You must cause all Covered Code to which You contribute to contain -a file documenting the changes You made to create that Covered Code and -the date of any change. You must include a prominent statement that the -Modification is derived, directly or indirectly, from Original Code -provided -by the Initial Developer and including the name of the Initial -Developer -in (a) the Source Code, and (b) in any notice in an Executable version -or related documentation in which You describe the origin or ownership -of the Covered Code.

    -

    3.4. Intellectual Property Matters

    -
      - (a) Third Party Claims.
      -If Contributor has knowledge that a license under a third party's -intellectual -property rights is required to exercise the rights granted by such -Contributor -under Sections 2.1 or 2.2, Contributor must include a text file with -the -Source Code distribution titled "LEGAL'' which describes the claim and -the party making the claim in sufficient detail that a recipient will -know -whom to contact. If Contributor obtains such knowledge after the -Modification -is made available as described in Section 3.2, Contributor shall -promptly -modify the LEGAL file in all copies Contributor makes available -thereafter -and shall take other steps (such as notifying appropriate mailing lists -or newsgroups) reasonably calculated to inform those who received the -Covered -Code that new knowledge has been obtained. -

      (b) Contributor APIs.
      -If Contributor's Modifications include an application programming -interface -and Contributor has knowledge of patent licenses which are reasonably -necessary -to implement that API, Contributor must also include this information -in -the LEGAL file.

      -
    -          (c)    -Representations. -
      -Contributor represents that, except as disclosed pursuant to Section -3.4(a) above, Contributor believes that Contributor's Modifications are -Contributor's original creation(s) and/or Contributor has sufficient -rights -to grant the rights conveyed by this License. -
    - -


    - 3.5. Required Notices.
    -You must duplicate the notice in Exhibit A in each file of the -Source Code.  If it is not possible to put such notice in a -particular -Source Code file due to its structure, then You must include such -notice -in a location (such as a relevant directory) where a user would be -likely -to look for such a notice.  If You created one or more -Modification(s) -You may add your name as a Contributor to the notice described in Exhibit -A.  You must also duplicate this License in any documentation -for the Source Code where You describe recipients' rights or ownership -rights relating to Covered Code.  You may choose to offer, and to -charge a fee for, warranty, support, indemnity or liability obligations -to one or more recipients of Covered Code. However, You may do so only -on Your own behalf, and not on behalf of the Initial Developer or any -Contributor. -You must make it absolutely clear than any such warranty, support, -indemnity -or liability obligation is offered by You alone, and You hereby agree -to -indemnify the Initial Developer and every Contributor for any liability -incurred by the Initial Developer or such Contributor as a result of -warranty, -support, indemnity or liability terms You offer.

    -

    3.6. Distribution of Executable Versions.
    -You may distribute Covered Code in Executable form only if the -requirements -of Section 3.1-3.5 have been met for that Covered Code, and if -You -include a notice stating that the Source Code version of the Covered -Code -is available under the terms of this License, including a description -of -how and where You have fulfilled the obligations of Section 3.2. -The notice must be conspicuously included in any notice in an -Executable -version, related documentation or collateral in which You describe -recipients' -rights relating to the Covered Code. You may distribute the Executable -version of Covered Code or ownership rights under a license of Your -choice, -which may contain terms different from this License, provided that You -are in compliance with the terms of this License and that the license -for -the Executable version does not attempt to limit or alter the -recipient's -rights in the Source Code version from the rights set forth in this -License. -If You distribute the Executable version under a different license You -must make it absolutely clear that any terms which differ from this -License -are offered by You alone, not by the Initial Developer or any -Contributor. -You hereby agree to indemnify the Initial Developer and every -Contributor -for any liability incurred by the Initial Developer or such Contributor -as a result of any such terms You offer.

    -

    3.7. Larger Works.
    -You may create a Larger Work by combining Covered Code with other code -not governed by the terms of this License and distribute the Larger -Work -as a single product. In such a case, You must make sure the -requirements -of this License are fulfilled for the Covered Code.

    -
- -4. Inability to Comply Due to Statute or Regulation. -
    -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Code due to statute, -judicial order, or regulation then You must: (a) comply with the terms -of this License to the maximum extent possible; and (b) describe the -limitations -and the code they affect. Such description must be included in the -LEGAL -file described in Section 3.4 and must be included with all -distributions -of the Source Code. Except to the extent prohibited by statute or -regulation, -such description must be sufficiently detailed for a recipient of -ordinary -skill to be able to understand it. -
- -5. Application of this License. -
    -This License applies to code to which the Initial Developer has -attached -the notice in Exhibit A and to related Covered Code. -
- -6. Versions of the License. - -
    - 6.1. New Versions.
    -Netscape Communications Corporation (''Netscape'') may publish revised -and/or new versions of the License from time to time. Each version will -be given a distinguishing version number. -

    6.2. Effect of New Versions.
    -Once Covered Code has been published under a particular version of -the License, You may always continue to use it under the terms of that -version. You may also choose to use such Covered Code under the terms -of -any subsequent version of the License published by Netscape. No one -other -than Netscape has the right to modify the terms applicable to Covered -Code -created under this License.

    -

    6.3. Derivative Works.
    -If You create or use a modified version of this License (which you -may only do in order to apply it to code which is not already Covered -Code -governed by this License), You must (a) rename Your license so that the -phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", -''NPL'' -or any confusingly similar phrase do not appear in your license (except -to note that your license differs from this License) and (b) otherwise -make it clear that Your version of the license contains terms which -differ -from the Mozilla Public License and Netscape Public License. (Filling -in -the name of the Initial Developer, Original Code or Contributor in the -notice described in Exhibit A shall not of themselves be deemed -to be modifications of this License.)

    -
- -7. DISCLAIMER OF WARRANTY. -
    -COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, -WITHOUT -WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT -LIMITATION, -WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT -FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE -QUALITY -AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED -CODE -PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY -OTHER -CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR -CORRECTION. -THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS -LICENSE. -NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS -DISCLAIMER. -
- -8. TERMINATION. - -
    - 8.1.  This License and the rights granted hereunder will -terminate automatically if You fail to comply with terms herein and -fail -to cure such breach within 30 days of becoming aware of the breach. All -sublicenses to the Covered Code which are properly granted shall -survive -any termination of this License. Provisions which, by their nature, -must -remain in effect beyond the termination of this License shall survive. -

    8.2.  If You initiate litigation by asserting a -patent infringement -claim (excluding declatory judgment actions) against Initial Developer -or a Contributor (the Initial Developer or Contributor against whom You -file such action is referred to as "Participant")  alleging that:

    -

    (a)  such Participant's Contributor Version directly -or -indirectly infringes any patent, then any and all rights granted by -such -Participant to You under Sections 2.1 and/or 2.2 of this License shall, -upon 60 days notice from Participant terminate prospectively, unless if -within 60 days after receipt of notice You either: (i)  agree in -writing -to pay Participant a mutually agreeable reasonable royalty for Your -past -and future use of Modifications made by such Participant, or (ii) -withdraw -Your litigation claim with respect to the Contributor Version against -such -Participant.  If within 60 days of notice, a reasonable royalty -and -payment arrangement are not mutually agreed upon in writing by the -parties -or the litigation claim is not withdrawn, the rights granted by -Participant -to You under Sections 2.1 and/or 2.2 automatically terminate at the -expiration -of the 60 day notice period specified above.

    -

    (b)  any software, hardware, or device, other than -such -Participant's Contributor Version, directly or indirectly infringes any -patent, then any rights granted to You by such Participant under -Sections -2.1(b) and 2.2(b) are revoked effective as of the date You first made, -used, sold, distributed, or had made, Modifications made by that -Participant.

    -

    8.3.  If You assert a patent infringement claim -against -Participant alleging that such Participant's Contributor Version -directly -or indirectly infringes any patent where such claim is resolved (such -as -by license or settlement) prior to the initiation of patent -infringement -litigation, then the reasonable value of the licenses granted by such -Participant -under Sections 2.1 or 2.2 shall be taken into account in determining -the -amount or value of any payment or license.

    -

    8.4.  In the event of termination under Sections 8.1 -or -8.2 above,  all end user license agreements (excluding -distributors -and resellers) which have been validly granted by You or any -distributor -hereunder prior to termination shall survive termination.

    -
- -9. LIMITATION OF LIABILITY. -
    -UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT -(INCLUDING -NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, -ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY -SUPPLIER -OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, -SPECIAL, -INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, -WITHOUT -LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER -FAILURE -OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN -IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH -DAMAGES. -THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR -PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT -APPLICABLE -LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE -EXCLUSION -OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION -AND LIMITATION MAY NOT APPLY TO YOU. -
- -10. U.S. GOVERNMENT END USERS. -
    -The Covered Code is a ''commercial item,'' as that term is defined -in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer -software'' -and ''commercial computer software documentation,'' as such terms are -used -in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and -48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. -Government -End Users acquire Covered Code with only those rights set forth herein. -
- -11. MISCELLANEOUS. -
    -This License represents the complete agreement concerning subject -matter -hereof. If any provision of this License is held to be unenforceable, -such -provision shall be reformed only to the extent necessary to make it -enforceable. -This License shall be governed by California law provisions (except to -the extent applicable law, if any, provides otherwise), excluding its -conflict-of-law -provisions. With respect to disputes in which at least one party is a -citizen -of, or an entity chartered or registered to do business in the United -States -of America, any litigation relating to this License shall be subject to -the jurisdiction of the Federal Courts of the Northern District of -California, -with venue lying in Santa Clara County, California, with the losing -party -responsible for costs, including without limitation, court costs and -reasonable -attorneys' fees and expenses. The application of the United Nations -Convention -on Contracts for the International Sale of Goods is expressly excluded. -Any law or regulation which provides that the language of a contract -shall -be construed against the drafter shall not apply to this License. -
- -12. RESPONSIBILITY FOR CLAIMS. -
    -As between Initial Developer and the Contributors, each party is -responsible -for claims and damages arising, directly or indirectly, out of its -utilization -of rights under this License and You agree to work with Initial -Developer -and Contributors to distribute such responsibility on an equitable -basis. -Nothing herein is intended or shall be deemed to constitute any -admission -of liability. -
- -13. MULTIPLE-LICENSED CODE. -
    -Initial Developer may designate portions of the Covered Code as -“Multiple-Licensed”.  -“Multiple-Licensed” means that the Initial Developer permits you to -utilize -portions of the Covered Code under Your choice of the MPL or the -alternative -licenses, if any, specified by the Initial Developer in the file -described -in Exhibit A. -
- -


-EXHIBIT A -Mozilla Public License. -

-
    -``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 Original Code is ______________________________________.

    -

    The Initial Developer of the Original Code is -________________________. -Portions created by
    - ______________________ are Copyright (C) ______ -_______________________. -All Rights
    -Reserved.

    -

    Contributor(s): ______________________________________.

    -

    Alternatively, the contents of this file may be used under the -terms -of the _____ license (the  “[___] License”), in which case the -provisions -of [______] License are applicable  instead of those above.  -If you wish to allow use of your version of this file only under the -terms -of the [____] License and not to allow others to use your version of -this -file under the MPL, indicate your decision by deleting  the -provisions -above and replace  them with the notice and other provisions -required -by the [___] License.  If you do not delete the provisions above, -a recipient may use your version of this file under either the MPL or -the -[___] License."

    -

    [NOTE: The text of this Exhibit A may differ slightly from the -text -of the notices in the Source Code files of the Original Code. You -should -use the text of this Exhibit A rather than the text found in the -Original -Code Source Code for Your Modifications.]

    -

    -
-
The following software may be -included in this product: sRGB Profiles; Use of any of this -software -is governed -by the terms of the license below:
-

International Color -Consortium
+included in this product: libtextcat; Use of any of this software +is governed by the terms of the license below:
+

WiseGuys Internet B.V.

-

sRGB Profiles
+

libtextcat

+
Copyright (c) 2003, WiseGuys Internet B.V.
-To anyone who acknowledges that the files "sRGB_IEC61966-2-1_noBPC.icc" -and -"sRGB_IEC61966-2-1_withBPC.icc" are provided "AS IS" WITH NO EXPRESS OR -IMPLIED -WARRANTY, permission to use, copy and distribute these file for any -purpose is -hereby granted without fee, provided that the files are not changed -including -the HP copyright notice tag, and that the name of Hewlett-Packard -Company shall -not be used in advertising or publicity pertaining to distribution of -the -software without specific, written prior permission. Hewlett-Packard -Company -makes no representations about the suitability of this software for any -purpose. -
+All rights reserved.
-
The following software may be -included in this product: Sablotron; Use of any of this -software -is governed -by the terms of the license below:
-

Ginger Alliance
-

-

Sablotron
-

-jump to LGPL
-
The following software may be -included in this product: SANE; Use of any of this -software -is governed -by the terms of the license below:
-

David Mosberger-Tang, -Andreas Beck
-

-

SANE
-

-
/* sane - Scanner Access Now Easy.
Copyright (C) 1997-1999 David Mosberger-Tang and Andreas Beck
This file is part of the SANE package.

This file is in the public domain. You may use and modify it as
you see fit, as long as this copyright message is included and
that there is an indication as to what modifications have been
made (if any).

SANE is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.

This file declares SANE application interface. See the SANE
standard for a detailed explanation of the interface. */
+Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met:
-
The following software may be -included in this product: Saxon (B); Use of any of this -software -is governed -by the terms of the license below:
-

Michael Kay
-

-

Saxon (B)
-

-jump to MPL 1.1
-
The following software may be -included in this product:STLport; Use of any of this software -is governed -by the terms of the license below:
-

Boris Fomitchev
-

-

STLport
-

-

License Agreement

-

Boris Fomitchev grants Licensee a non-exclusive, -non-transferable, royalty-free license to use STLport and its -documentation without fee.
+- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer.
-By downloading, using, or copying STLport or any portion -thereof,  -Licensee agrees to abide by the intellectual property laws and -all other -applicable laws of the United States of America, and to all of the -terms and -conditions of this Agreement.
+- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution.
-Licensee shall maintain the following copyright and -permission  -notices on STLport sources and its documentation unchanged :

-Copyright 1999,2000 Boris Fomitchev
+- Neither the name of the WiseGuys Internet B.V. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission.
-This material is provided "as is", with absolutely no warranty -expressed or implied. Any use is at your own risk.
-Permission to use or copy this software for any purpose is hereby -granted -without fee, provided the above notices are retained on all copies. -Permission -to modify the code and to distribute modified code is granted, provided -the -above notices are retained, and a notice that the code was modified is -included -with the above copyright notice. -

The Licensee may distribute binaries compiled with STLport -(whether original or modified) without any royalties or restrictions.

-

The Licensee may distribute original or modified STLport -sources, -provided that:

-
    -
  • The conditions indicated in the above permission notice are met;
  • -
  • The following copyright notices are retained when present, and -conditions provided in accompanying permission notices are met :
  • -
-

Copyright 1994 Hewlett-Packard Company

-

Copyright 1996,97 Silicon Graphics Computer Systems, Inc.

-

Copyright 1997 Moscow Center for SPARC Technology.

-
-

Permission to use, copy, modify, distribute and -sell this software and its documentation for any purpose is hereby -granted without fee, provided that the above copyright notice appear in -all copies and that both that copyright notice and this permission -notice appear in supporting documentation. Hewlett-Packard Company -makes no representations about the suitability of this software for any -purpose. It is provided "as is" without express or implied warranty.

-

Permission to use, copy, modify, distribute and -sell this software and its documentation for any purpose is hereby -granted without fee, provided that the above copyright notice appear in -all copies and that both that copyright notice and this permission -notice appear in supporting documentation. Silicon Graphics makes no -representations about the suitability of this software for any purpose. -It is provided "as is" without express or implied warranty.

-
-
Permission to use, copy, modify, -distribute and sell this software and its documentation for any purpose -is hereby granted without fee, provided that the above copyright notice -appear in all copies and that both that copyright notice and this -permission notice appear in supporting documentation. Moscow Center for -SPARC Technology  makes no representations about the suitability -of this software for any purpose. It is provided "as is" without -express or implied warranty. -
-
The following software may be -included in this product: Italian Thesaurus; Use of any of this -software -is governed by the terms of the license below:
-

Daniela Volta, Davide -Prina
-

-

Italian Thesaurus
-

+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-Jump to GPL
+ + + + + + + +
The following software may be +included in this product: libwpd; Use of any of this +software +is governed +by the terms of the license below:
+

William LaChance
+

+

libwpd
+

+jump to LGPL
+ + +Except where otherwise noted in the source code (trio files, hash.c and list.c) + + + + + +
The following software may be +included in this product: libxml2; Use of any of this +software +is governed +by the terms of the license below:
+

Daniel Veillard
+

+

libxml2
+

+ + Copyright (C) 1998-2002 Daniel Veillard. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Daniel Veillard shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from him. + + + + + + +
The following software may be +included in this product: XML Security Library; Use of any of this +software +is governed +by the terms of the license below:
+

Aleksey Sanin
+

+

XML Security Library
+

+
+
+XML Security Library
+
+Use of any of this software is governed by the terms of the license below:
+
+Please note: We do not use all libraries of the project, but only:
+- xmlsec-core; License: MIT
+- xmlsec-nss; License: GPL + MPL 
+
+-------------------------------------------------
+The MIT License
+
+Copyright (c)  
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-------------------------------------------------------------------
+The GNU General Public License (GPL)
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to share
+and change it. By contrast, the GNU General Public License is intended to
+guarantee your freedom to share and change free software--to make sure the
+software is free for all its users. This General Public License applies to most
+of the Free Software Foundation's software and to any other program whose
+authors commit to using it. (Some other Free Software Foundation software is
+covered by the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom to
+distribute copies of free software (and charge for this service if you wish),
+that you receive source code or can get it if you want it, that you can change
+the software or use pieces of it in new free programs; and that you know you can
+do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny
+you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for a
+fee, you must give the recipients all the rights that you have. You must make
+sure that they, too, receive or can get the source code. And you must show them
+these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2) offer
+you this license which gives you legal permission to copy, distribute and/or
+modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients to
+know that what they have is not the original, so that any problems introduced by
+others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We wish
+to avoid the danger that redistributors of a free program will individually
+obtain patent licenses, in effect making the program proprietary. To prevent
+this, we have made it clear that any patent must be licensed for everyone's free
+use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification follow.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms of
+this General Public License. The "Program", below, refers to any such program or
+work, and a "work based on the Program" means either the Program or any
+derivative work under copyright law: that is to say, a work containing the
+Program or a portion of it, either verbatim or with modifications and/or
+translated into another language. (Hereinafter, translation is included without
+limitation in the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not covered by
+this License; they are outside its scope. The act of running the Program is not
+restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made by
+running the Program). Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code as
+you receive it, in any medium, provided that you conspicuously and appropriately
+publish on each copy an appropriate copyright notice and disclaimer of warranty;
+keep intact all the notices that refer to this License and to the absence of any
+warranty; and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you may at
+your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it, thus
+forming a work based on the Program, and copy and distribute such modifications
+or work under the terms of Section 1 above, provided that you also meet all of
+these conditions:
+
+    a) You must cause the modified files to carry prominent notices stating that
+you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in whole or
+in part contains or is derived from the Program or any part thereof, to be
+licensed as a whole at no charge to all third parties under the terms of this
+License.
+
+    c) If the modified program normally reads commands interactively when run,
+you must cause it, when started running for such interactive use in the most
+ordinary way, to print or display an announcement including an appropriate
+copyright notice and a notice that there is no warranty (or else, saying that
+you provide a warranty) and that users may redistribute the program under these
+conditions, and telling the user how to view a copy of this License. (Exception:
+if the Program itself is interactive but does not normally print such an
+announcement, your work based on the Program is not required to print an
+announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be reasonably
+considered independent and separate works in themselves, then this License, and
+its terms, do not apply to those sections when you distribute them as separate
+works. But when you distribute the same sections as part of a whole which is a
+work based on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the entire whole,
+and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your
+rights to work written entirely by you; rather, the intent is to exercise the
+right to control the distribution of derivative or collective works based on the
+Program.
+
+In addition, mere aggregation of another work not based on the Program with the
+Program (or with a work based on the Program) on a volume of a storage or
+distribution medium does not bring the other work under the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under Section
+2) in object code or executable form under the terms of Sections 1 and 2 above
+provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable source
+code, which must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three years, to
+give any third party, for a charge no more than your cost of physically
+performing source distribution, a complete machine-readable copy of the
+corresponding source code, to be distributed under the terms of Sections 1 and 2
+above on a medium customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer to
+distribute corresponding source code. (This alternative is allowed only for
+noncommercial distribution and only if you received the program in object code
+or executable form with such an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for making
+modifications to it. For an executable work, complete source code means all the
+source code for all modules it contains, plus any associated interface
+definition files, plus the scripts used to control compilation and installation
+of the executable. However, as a special exception, the source code distributed
+need not include anything that is normally distributed (in either source or
+binary form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component itself
+accompanies the executable.
+
+If distribution of executable or object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the source code
+from the same place counts as distribution of the source code, even though third
+parties are not compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy, modify,
+sublicense or distribute the Program is void, and will automatically terminate
+your rights under this License. However, parties who have received copies, or
+rights, from you under this License will not have their licenses terminated so
+long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the Program
+or its derivative works. These actions are prohibited by law if you do not
+accept this License. Therefore, by modifying or distributing the Program (or any
+work based on the Program), you indicate your acceptance of this License to do
+so, and all its terms and conditions for copying, distributing or modifying the
+Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the Program),
+the recipient automatically receives a license from the original licensor to
+copy, distribute or modify the Program subject to these terms and conditions.
+You may not impose any further restrictions on the recipients' exercise of the
+rights granted herein. You are not responsible for enforcing compliance by third
+parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent infringement
+or for any other reason (not limited to patent issues), conditions are imposed
+on you (whether by court order, agreement or otherwise) that contradict the
+conditions of this License, they do not excuse you from the conditions of this
+License. If you cannot distribute so as to satisfy simultaneously your
+obligations under this License and any other pertinent obligations, then as a
+consequence you may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by all those
+who receive copies directly or indirectly through you, then the only way you
+could satisfy both it and this License would be to refrain entirely from
+distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and the
+section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose that
+choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.
+
+9. The Free Software Foundation may publish revised and/or new versions of the
+General Public License from time to time. Such new versions will be similar in
+spirit to the present version, but may differ in detail to address new problems
+or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies
+a version number of this License which applies to it and "any later version",
+you have the option of following the terms and conditions either of that version
+or of any later version published by the Free Software Foundation. If the
+Program does not specify a version number of this License, you may choose any
+version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software Foundation,
+write to the Free Software Foundation; we sometimes make exceptions for this.
+Our decision will be guided by the two goals of preserving the free status of
+all derivatives of our free software and of promoting the sharing and reuse of
+software generally.
+
+NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
+PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED
+IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS
+IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
+ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
+PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY
+TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
+THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
+PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest possible use
+to the public, the best way to achieve this is to make it free software which
+everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest to attach
+them to the start of each source file to most effectively convey the exclusion
+of warranty; and each file should have at least the "copyright" line and a
+pointer to where the full notice is found.
+
+    one line to give the program's name and a brief idea of what it does.
+    Copyright (C)
+
+    This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option) any
+later version.
+
+    This program is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along with
+this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this when it
+starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
+with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software,
+and you are welcome to redistribute it under certain conditions; type `show c'
+for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may be
+called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your school,
+if any, to sign a "copyright disclaimer" for the program, if necessary. Here is
+a sample; alter the names:
+
+    Yoyodyne, Inc., hereby disclaims all copyright interest
+    in the program `Gnomovision' (which makes passes at compilers)
+    written by James Hacker.
+
+    signature of Ty Coon, 1 April 1989
+    Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may consider
+it more useful to permit linking proprietary applications with the library. If
+this is what you want to do, use the GNU Library General Public License instead
+of this License.
+----------------------------------------------------------
+Mozilla Public License Version 1.0
+
+1. Definitions.
+
+      1.1. "Contributor" means each entity that creates or contributes to the
+creation of Modifications.
+
+      1.2. "Contributor Version" means the combination of the Original Code,
+prior Modifications used by a Contributor, and the Modifications made by that
+particular Contributor.
+
+      1.3. "Covered Code" means the Original Code or Modifications or the
+combination of the Original Code and Modifications, in each case including
+portions thereof.
+
+      1.4. "Electronic Distribution Mechanism" means a mechanism generally
+accepted in the software development community for the electronic transfer of data.
+
+      1.5. "Executable" means Covered Code in any form other than Source Code.
+
+      1.6. "Initial Developer" means the individual or entity identified as the
+Initial Developer in the Source Code notice required by Exhibit A.
+
+      1.7. "Larger Work" means a work which combines Covered Code or portions
+thereof with code not governed by the terms of this License.
+
+      1.8. "License" means this document.
+
+      1.9. "Modifications" means any addition to or deletion from the substance
+or structure of either the Original Code or any previous Modifications. When
+Covered Code is released as a series of files, a Modification is:
+
+            A. Any addition to or deletion from the contents of a file
+containing Original Code or previous Modifications.
+
+            B. Any new file that contains any part of the Original Code or
+previous Modifications. 
+
+      1.10. "Original Code" means Source Code of computer software code which is
+described in the Source Code notice required by Exhibit A as Original Code, and
+which, at the time of its release under this License is not already Covered Code
+governed by this License.
+
+      1.11. "Source Code" means the preferred form of the Covered Code for
+making modifications to it, including all modules it contains, plus any
+associated interface definition files, scripts used to control compilation and
+installation of an Executable, or a list of source code differential comparisons
+against either the Original Code or another well known, available Covered Code
+of the Contributor's choice. The Source Code can be in a compressed or archival
+form, provided the appropriate decompression or de-archiving software is widely
+available for no charge.
+
+      1.12. "You" means an individual or a legal entity exercising rights under,
+and complying with all of the terms of, this License or a future version of this
+License issued under Section 6.1. For legal entities, "You" includes any entity
+which controls, is controlled by, or is under common control with You. For
+purposes of this definition, "control" means (a) the power, direct or indirect,
+to cause the direction or management of such entity, whether by contract or
+otherwise, or (b) ownership of fifty percent (50%) or more of the outstanding
+shares or beneficial ownership of such entity. 
+
+2. Source Code License.
+
+      2.1. The Initial Developer Grant.
+      The Initial Developer hereby grants You a world-wide, royalty-free,
+non-exclusive license, subject to third party intellectual property claims:
+
+            (a) to use, reproduce, modify, display, perform, sublicense and
+distribute the Original Code (or portions thereof) with or without
+Modifications, or as part of a Larger Work; and
+
+            (b) under patents now or hereafter owned or controlled by Initial
+Developer, to make, have made, use and sell ("Utilize") the Original Code (or
+portions thereof), but solely to the extent that any such patent is reasonably
+necessary to enable You to Utilize the Original Code (or portions thereof) and
+not to any greater extent that may be necessary to Utilize further Modifications
+or combinations. 
+
+      2.2. Contributor Grant.
+      Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license, subject to third party intellectual property claims:
+
+            (a) to use, reproduce, modify, display, perform, sublicense and
+distribute the Modifications created by such Contributor (or portions thereof)
+either on an unmodified basis, with other Modifications, as Covered Code or as
+part of a Larger Work; and
+
+            (b) under patents now or hereafter owned or controlled by
+Contributor, to Utilize the Contributor Version (or portions thereof), but
+solely to the extent that any such patent is reasonably necessary to enable You
+to Utilize the Contributor Version (or portions thereof), and not to any greater
+extent that may be necessary to Utilize further Modifications or combinations. 
+
+3. Distribution Obligations.
+
+      3.1. Application of License.
+      The Modifications which You create or to which You contribute are governed
+by the terms of this License, including without limitation Section 2.2. The
+Source Code version of Covered Code may be distributed only under the terms of
+this License or a future version of this License released under Section 6.1, and
+You must include a copy of this License with every copy of the Source Code You
+distribute. You may not offer or impose any terms on any Source Code version
+that alters or restricts the applicable version of this License or the
+recipients' rights hereunder. However, You may include an additional document
+offering the additional rights described in Section 3.5.
+
+      3.2. Availability of Source Code.
+      Any Modification which You create or to which You contribute must be made
+available in Source Code form under the terms of this License either on the same
+media as an Executable version or via an accepted Electronic Distribution
+Mechanism to anyone to whom you made an Executable version available; and if
+made available via Electronic Distribution Mechanism, must remain available for
+at least twelve (12) months after the date it initially became available, or at
+least six (6) months after a subsequent version of that particular Modification
+has been made available to such recipients. You are responsible for ensuring
+that the Source Code version remains available even if the Electronic
+Distribution Mechanism is maintained by a third party.
+
+      3.3. Description of Modifications.
+      You must cause all Covered Code to which you contribute to contain a file
+documenting the changes You made to create that Covered Code and the date of any
+change. You must include a prominent statement that the Modification is derived,
+directly or indirectly, from Original Code provided by the Initial Developer and
+including the name of the Initial Developer in (a) the Source Code, and (b) in
+any notice in an Executable version or related documentation in which You
+describe the origin or ownership of the Covered Code.
+
+      3.4. Intellectual Property Matters
+
+            (a) Third Party Claims.
+            If You have knowledge that a party claims an intellectual property
+right in particular functionality or code (or its utilization under this
+License), you must include a text file with the source code distribution titled
+"LEGAL" which describes the claim and the party making the claim in sufficient
+detail that a recipient will know whom to contact. If you obtain such knowledge
+after You make Your Modification available as described in Section 3.2, You
+shall promptly modify the LEGAL file in all copies You make available thereafter
+and shall take other steps (such as notifying appropriate mailing lists or
+newsgroups) reasonably calculated to inform those who received the Covered Code
+that new knowledge has been obtained.
+
+            (b) Contributor APIs.
+            If Your Modification is an application programming interface and You
+own or control patents which are reasonably necessary to implement that API, you
+must also include this information in the LEGAL file. 
+
+      3.5. Required Notices.
+      You must duplicate the notice in Exhibit A in each file of the Source
+Code, and this License in any documentation for the Source Code, where You
+describe recipients' rights relating to Covered Code. If You created one or more
+Modification(s), You may add your name as a Contributor to the notice described
+in Exhibit A. If it is not possible to put such notice in a particular Source
+Code file due to its structure, then you must include such notice in a location
+(such as a relevant directory file) where a user would be likely to look for
+such a notice. You may choose to offer, and to charge a fee for, warranty,
+support, indemnity or liability obligations to one or more recipients of Covered
+Code. However, You may do so only on Your own behalf, and not on behalf of the
+Initial Developer or any Contributor. You must make it absolutely clear than any
+such warranty, support, indemnity or liability obligation is offered by You
+alone, and You hereby agree to indemnify the Initial Developer and every
+Contributor for any liability incurred by the Initial Developer or such
+Contributor as a result of warranty, support, indemnity or liability terms You
+offer.
+
+      3.6. Distribution of Executable Versions.
+      You may distribute Covered Code in Executable form only if the
+requirements of Section 3.1-3.5 have been met for that Covered Code, and if You
+include a notice stating that the Source Code version of the Covered Code is
+available under the terms of this License, including a description of how and
+where You have fulfilled the obligations of Section 3.2. The notice must be
+conspicuously included in any notice in an Executable version, related
+documentation or collateral in which You describe recipients' rights relating to
+the Covered Code. You may distribute the Executable version of Covered Code
+under a license of Your choice, which may contain terms different from this
+License, provided that You are in compliance with the terms of this License and
+that the license for the Executable version does not attempt to limit or alter
+the recipient's rights in the Source Code version from the rights set forth in
+this License. If You distribute the Executable version under a different license
+You must make it absolutely clear that any terms which differ from this License
+are offered by You alone, not by the Initial Developer or any Contributor. You
+hereby agree to indemnify the Initial Developer and every Contributor for any
+liability incurred by the Initial Developer or such Contributor as a result of
+any such terms You offer.
+
+      3.7. Larger Works.
+      You may create a Larger Work by combining Covered Code with other code not
+governed by the terms of this License and distribute the Larger Work as a single
+product. In such a case, You must make sure the requirements of this License are
+fulfilled for the Covered Code. 
+
+4. Inability to Comply Due to Statute or Regulation.
+
+      If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Code due to statute or
+regulation then You must: (a) comply with the terms of this License to the
+maximum extent possible; and (b) describe the limitations and the code they
+affect. Such description must be included in the LEGAL file described in Section
+3.4 and must be included with all distributions of the Source Code. Except to
+the extent prohibited by statute or regulation, such description must be
+sufficiently detailed for a recipient of ordinary skill to be able to understand
+it. 
+
+5. Application of this License.
+
+      This License applies to code to which the Initial Developer has attached
+the notice in Exhibit A, and to related Covered Code. 
+
+6. Versions of the License.
+
+      6.1. New Versions.
+      Netscape Communications Corporation ("Netscape") may publish revised
+and/or new versions of the License from time to time. Each version will be given
+a distinguishing version number.
+
+      6.2. Effect of New Versions.
+      Once Covered Code has been published under a particular version of the
+License, You may always continue to use it under the terms of that version. You
+may also choose to use such Covered Code under the terms of any subsequent
+version of the License published by Netscape. No one other than Netscape has the
+right to modify the terms applicable to Covered Code created under this License.
+
+      6.3. Derivative Works.
+      If you create or use a modified version of this License (which you may
+only do in order to apply it to code which is not already Covered Code governed
+by this License), you must (a) rename Your license so that the phrases
+"Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "NPL" or any confusingly similar
+phrase do not appear anywhere in your license and (b) otherwise make it clear
+that your version of the license contains terms which differ from the Mozilla
+Public License and Netscape Public License. (Filling in the name of the Initial
+Developer, Original Code or Contributor in the notice described in Exhibit A
+shall not of themselves be deemed to be modifications of this License.) 
+
+7. DISCLAIMER OF WARRANTY.
+
+      COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT
+WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE,
+FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE
+QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE
+PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER
+CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION.
+THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO
+USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. 
+
+8. TERMINATION.
+
+      This License and the rights granted hereunder will terminate automatically
+if You fail to comply with terms herein and fail to cure such breach within 30
+days of becoming aware of the breach. All sublicenses to the Covered Code which
+are properly granted shall survive any termination of this License. Provisions
+which, by their nature, must remain in effect beyond the termination of this
+License shall survive. 
+
+9. LIMITATION OF LIABILITY.
+
+      UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
+NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL DEVELOPER, ANY OTHER
+CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH
+PARTIES, BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL,
+INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
+MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH
+PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS
+LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
+LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND
+LIMITATION MAY NOT APPLY TO YOU. 
+
+10. U.S. GOVERNMENT END USERS.
+
+      The Covered Code is a "commercial item," as that term is defined in 48
+C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and
+"commercial computer software documentation," as such terms are used in 48
+C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R.
+227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire
+Covered Code with only those rights set forth herein. 
+
+11. MISCELLANEOUS.
+
+      This License represents the complete agreement concerning subject matter
+hereof. If any provision of this License is held to be unenforceable, such
+provision shall be reformed only to the extent necessary to make it enforceable.
+This License shall be governed by California law provisions (except to the
+extent applicable law, if any, provides otherwise), excluding its
+conflict-of-law provisions. With respect to disputes in which at least one party
+is a citizen of, or an entity chartered or registered to do business in, the
+United States of America: (a) unless otherwise agreed in writing, all disputes
+relating to this License (excepting any dispute relating to intellectual
+property rights) shall be subject to final and binding arbitration, with the
+losing party paying all costs of arbitration; (b) any arbitration relating to
+this Agreement shall be held in Santa Clara County, California, under the
+auspices of JAMS/EndDispute; and (c) any litigation relating to this Agreement
+shall be subject to the jurisdiction of the Federal Courts of the Northern
+District of California, with venue lying in Santa Clara County, California, with
+the losing party responsible for costs, including without limitation, court
+costs and reasonable attorneys fees and expenses. The application of the United
+Nations Convention on Contracts for the International Sale of Goods is expressly
+excluded. Any law or regulation which provides that the language of a contract
+shall be construed against the drafter shall not apply to this License. 
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+      Except in cases where another Contributor has failed to comply with
+Section 3.4, You are responsible for damages arising, directly or indirectly,
+out of Your utilization of rights under this License, based on the number of
+copies of Covered Code you made available, the revenues you received from
+utilizing such rights, and other relevant factors. You agree to work with
+affected parties to distribute responsibility on an equitable basis. 
+
+EXHIBIT A.
+
+      "The contents of this file are subject to the Mozilla Public License
+Version 1.0 (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 Original Code is ______________________________________.
+
+      The Initial Developer of the Original Code is ________________________.
+Portions created by ______________________ are Copyright (C) ______
+_______________________. All Rights Reserved.
+
+      Contributor(s): ______________________________________." 
+
+
+ + + + + + + + +
The following software may be +included in this product: libxslt; Use of any of this +software +is governed +by the terms of the license below:
+

www.xmlsoft.org
+

+

libxslt
+

+ Copyright (C) 2001-2002 Daniel Veillard. All Rights Reserved. +
+Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: +
+The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +
+Except as contained in this notice, the name of Daniel Veillard shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from him. + +
+ + + + + + + +
The following software may be +included in this product: lpsolve; Use of any of this software +is governed by the terms of the license below:
+

Kjell Eikland and Peter Notebaert +
+

+

lpsolve
+

+jump to LGPL
+ + + + + + + +
The following software may be +included in this product: Network Audio System; Use of any of this +software is governed +by the terms of the license below:
+

Network Computer Devices, Inc.

+

Network Audio System (NAS)

+Copyright 1995 Network Computing Devices, Inc. Permission to use, copy, +modify, distribute, and sell this software and its documentation for +any purpose is hereby granted without fee, provided that the above +copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation, +and that the name Network Computing Devices, Inc. not be used in +advertising or publicity pertaining to distribution of this software +without specific, written prior permission.
+
+THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, INC., +DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +WITHOUT LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL NETWORK +COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, +INCLUDING SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS +OF USE, DATA, OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, +AND REGARDLESS OF WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + + + +
The following software may be -included in this product: Nepali thesaurus dictionary; Use of any of -this software +included in this product: NeoLight 1.1.x; Use of any of this software is governed by the terms of the license below:
-

NepaLinux.org
+

Planamesa, Inc.

-

Nepali thesaurus -dictionary (LGPL v2.1)
+

NeoLight


jump to GNU Lesser General Public License
+ + + + + + + +
The following software may be +included in this product: neon; Use of any of this +software +is governed +by the terms of the license below:
+

Joe Orton
+

+

neon
+

+jump to LGPL
+ + + + + + + Mozilla Public License version 1.1 + + + + +
The following software may be +included in this product: Network Security Services; Use of any of this +software +is governed +by the terms of the license below:
+

The Mozilla Foundation
+

+

Network Security Services (NSS)
+

+ + +
MOZILLA PUBLIC LICENSE + +
Version 1.1 + +

+ +


+ + + +

1. Definitions. + + +

    1.0.1. "Commercial Use" means distribution or otherwise making + +the Covered Code available to a third party. + + +

    1.1. ''Contributor'' means each entity that creates or contributes + +to the creation of Modifications. + + +

    1.2. ''Contributor Version'' means the combination of the Original + +Code, prior Modifications used by a Contributor, and the Modifications + +made by that particular Contributor. + + +

    1.3. ''Covered Code'' means the Original Code or Modifications + +or the combination of the Original Code and Modifications, in each case + +including portions thereof. + + +

    1.4. ''Electronic Distribution Mechanism'' means a mechanism + +generally accepted in the software development community for the electronic + +transfer of data. + + +

    1.5. ''Executable'' means Covered Code in any form other than + +Source Code. + + +

    1.6. ''Initial Developer'' means the individual or entity identified + +as the Initial Developer in the Source Code notice required by Exhibit + +A. + + +

    1.7. ''Larger Work'' means a work which combines Covered Code + +or portions thereof with code not governed by the terms of this License. + + +

    1.8. ''License'' means this document. + + +

    1.8.1. "Licensable" means having the right to grant, to the maximum + +extent possible, whether at the time of the initial grant or subsequently + +acquired, any and all of the rights conveyed herein. + + +

    1.9. ''Modifications'' means any addition to or deletion from + +the substance or structure of either the Original Code or any previous + +Modifications. When Covered Code is released as a series of files, a Modification + +is: + +

      A. Any addition to or deletion from the contents of a file containing + +Original Code or previous Modifications. + +

      B. Any new file that contains any part of the Original Code or + +previous Modifications. + +
       

    + + +1.10. ''Original Code'' means Source Code of computer software code + +which is described in the Source Code notice required by Exhibit A + +as Original Code, and which, at the time of its release under this License + +is not already Covered Code governed by this License. + + +

    1.10.1. "Patent Claims" means any patent claim(s), now owned + +or hereafter acquired, including without limitation,  method, process, + +and apparatus claims, in any patent Licensable by grantor. + + +

    1.11. ''Source Code'' means the preferred form of the Covered + +Code for making modifications to it, including all modules it contains, + +plus any associated interface definition files, scripts used to control + +compilation and installation of an Executable, or source code differential + +comparisons against either the Original Code or another well known, available + +Covered Code of the Contributor's choice. The Source Code can be in a compressed + +or archival form, provided the appropriate decompression or de-archiving + +software is widely available for no charge. + + +

    1.12. "You'' (or "Your")  means an individual or a legal + +entity exercising rights under, and complying with all of the terms of, + +this License or a future version of this License issued under Section 6.1. + +For legal entities, "You'' includes any entity which controls, is controlled + +by, or is under common control with You. For purposes of this definition, + +"control'' means (a) the power, direct or indirect, to cause the direction + +or management of such entity, whether by contract or otherwise, or (b) + +ownership of more than fifty percent (50%) of the outstanding shares or + +beneficial ownership of such entity.

+ + +2. Source Code License. + + +
    2.1. The Initial Developer Grant. + +
    The Initial Developer hereby grants You a world-wide, royalty-free, + +non-exclusive license, subject to third party intellectual property claims: + +
      (a)  under intellectual property rights (other than + +patent or trademark) Licensable by Initial Developer to use, reproduce, + +modify, display, perform, sublicense and distribute the Original Code (or + +portions thereof) with or without Modifications, and/or as part of a Larger + +Work; and + +

      (b) under Patents Claims infringed by the making, using or selling + +of Original Code, to make, have made, use, practice, sell, and offer for + +sale, and/or otherwise dispose of the Original Code (or portions thereof). + +

        + +
           
        + +
      + +(c) the licenses granted in this Section 2.1(a) and (b) are effective + +on the date Initial Developer first distributes Original Code under the + +terms of this License. + +

      (d) Notwithstanding Section 2.1(b) above, no patent license is + +granted: 1) for code that You delete from the Original Code; 2) separate + +from the Original Code;  or 3) for infringements caused by: i) the + +modification of the Original Code or ii) the combination of the Original + +Code with other software or devices. + +
       

    + + +2.2. Contributor Grant. + +
    Subject to third party intellectual property claims, each Contributor + +hereby grants You a world-wide, royalty-free, non-exclusive license + +
        + +
      (a)  under intellectual property rights (other than + +patent or trademark) Licensable by Contributor, to use, reproduce, modify, + +display, perform, sublicense and distribute the Modifications created by + +such Contributor (or portions thereof) either on an unmodified basis, with + +other Modifications, as Covered Code and/or as part of a Larger Work; and + +

      (b) under Patent Claims infringed by the making, using, or selling + +of  Modifications made by that Contributor either alone and/or in + +combination with its Contributor Version (or portions of such combination), + +to make, use, sell, offer for sale, have made, and/or otherwise dispose + +of: 1) Modifications made by that Contributor (or portions thereof); and + +2) the combination of  Modifications made by that Contributor with + +its Contributor Version (or portions of such combination). + +

      (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective + +on the date Contributor first makes Commercial Use of the Covered Code. + +

      (d)    Notwithstanding Section 2.2(b) above, no + +patent license is granted: 1) for any code that Contributor has deleted + +from the Contributor Version; 2)  separate from the Contributor Version;  + +3)  for infringements caused by: i) third party modifications of Contributor + +Version or ii)  the combination of Modifications made by that Contributor + +with other software  (except as part of the Contributor Version) or + +other devices; or 4) under Patent Claims infringed by Covered Code in the + +absence of Modifications made by that Contributor.

    + +
+ + + + +


3. Distribution Obligations. + + +

    3.1. Application of License. + +
    The Modifications which You create or to which You contribute are governed + +by the terms of this License, including without limitation Section 2.2. + +The Source Code version of Covered Code may be distributed only under the + +terms of this License or a future version of this License released under + +Section 6.1, and You must include a copy of this License with every + +copy of the Source Code You distribute. You may not offer or impose any + +terms on any Source Code version that alters or restricts the applicable + +version of this License or the recipients' rights hereunder. However, You + +may include an additional document offering the additional rights described + +in Section 3.5. + + +

    3.2. Availability of Source Code. + +
    Any Modification which You create or to which You contribute must be + +made available in Source Code form under the terms of this License either + +on the same media as an Executable version or via an accepted Electronic + +Distribution Mechanism to anyone to whom you made an Executable version + +available; and if made available via Electronic Distribution Mechanism, + +must remain available for at least twelve (12) months after the date it + +initially became available, or at least six (6) months after a subsequent + +version of that particular Modification has been made available to such + +recipients. You are responsible for ensuring that the Source Code version + +remains available even if the Electronic Distribution Mechanism is maintained + +by a third party. + + +

    3.3. Description of Modifications. + +
    You must cause all Covered Code to which You contribute to contain + +a file documenting the changes You made to create that Covered Code and + +the date of any change. You must include a prominent statement that the + +Modification is derived, directly or indirectly, from Original Code provided + +by the Initial Developer and including the name of the Initial Developer + +in (a) the Source Code, and (b) in any notice in an Executable version + +or related documentation in which You describe the origin or ownership + +of the Covered Code. + + +

    3.4. Intellectual Property Matters + +

      (a) Third Party Claims. + +
      If Contributor has knowledge that a license under a third party's intellectual + +property rights is required to exercise the rights granted by such Contributor + +under Sections 2.1 or 2.2, Contributor must include a text file with the + +Source Code distribution titled "LEGAL'' which describes the claim and + +the party making the claim in sufficient detail that a recipient will know + +whom to contact. If Contributor obtains such knowledge after the Modification + +is made available as described in Section 3.2, Contributor shall promptly + +modify the LEGAL file in all copies Contributor makes available thereafter + +and shall take other steps (such as notifying appropriate mailing lists + +or newsgroups) reasonably calculated to inform those who received the Covered + +Code that new knowledge has been obtained. + +

      (b) Contributor APIs. + +
      If Contributor's Modifications include an application programming interface + +and Contributor has knowledge of patent licenses which are reasonably necessary + +to implement that API, Contributor must also include this information in + +the LEGAL file. + +
       

    + +          (c)    + +Representations. + +
      Contributor represents that, except as disclosed pursuant to Section + +3.4(a) above, Contributor believes that Contributor's Modifications are + +Contributor's original creation(s) and/or Contributor has sufficient rights + +to grant the rights conveyed by this License.
    + + + + +


    3.5. Required Notices. + +
    You must duplicate the notice in Exhibit A in each file of the + +Source Code.  If it is not possible to put such notice in a particular + +Source Code file due to its structure, then You must include such notice + +in a location (such as a relevant directory) where a user would be likely + +to look for such a notice.  If You created one or more Modification(s) + +You may add your name as a Contributor to the notice described in Exhibit + +A.  You must also duplicate this License in any documentation + +for the Source Code where You describe recipients' rights or ownership + +rights relating to Covered Code.  You may choose to offer, and to + +charge a fee for, warranty, support, indemnity or liability obligations + +to one or more recipients of Covered Code. However, You may do so only + +on Your own behalf, and not on behalf of the Initial Developer or any Contributor. + +You must make it absolutely clear than any such warranty, support, indemnity + +or liability obligation is offered by You alone, and You hereby agree to + +indemnify the Initial Developer and every Contributor for any liability + +incurred by the Initial Developer or such Contributor as a result of warranty, + +support, indemnity or liability terms You offer. + + +

    3.6. Distribution of Executable Versions. + +
    You may distribute Covered Code in Executable form only if the requirements + +of Section 3.1-3.5 have been met for that Covered Code, and if You + +include a notice stating that the Source Code version of the Covered Code + +is available under the terms of this License, including a description of + +how and where You have fulfilled the obligations of Section 3.2. + +The notice must be conspicuously included in any notice in an Executable + +version, related documentation or collateral in which You describe recipients' + +rights relating to the Covered Code. You may distribute the Executable + +version of Covered Code or ownership rights under a license of Your choice, + +which may contain terms different from this License, provided that You + +are in compliance with the terms of this License and that the license for + +the Executable version does not attempt to limit or alter the recipient's + +rights in the Source Code version from the rights set forth in this License. + +If You distribute the Executable version under a different license You + +must make it absolutely clear that any terms which differ from this License + +are offered by You alone, not by the Initial Developer or any Contributor. + +You hereby agree to indemnify the Initial Developer and every Contributor + +for any liability incurred by the Initial Developer or such Contributor + +as a result of any such terms You offer. + + +

    3.7. Larger Works. + +
    You may create a Larger Work by combining Covered Code with other code + +not governed by the terms of this License and distribute the Larger Work + +as a single product. In such a case, You must make sure the requirements + +of this License are fulfilled for the Covered Code.

+ + +4. Inability to Comply Due to Statute or Regulation. + +
    If it is impossible for You to comply with any of the terms of this + +License with respect to some or all of the Covered Code due to statute, + +judicial order, or regulation then You must: (a) comply with the terms + +of this License to the maximum extent possible; and (b) describe the limitations + +and the code they affect. Such description must be included in the LEGAL + +file described in Section 3.4 and must be included with all distributions + +of the Source Code. Except to the extent prohibited by statute or regulation, + +such description must be sufficiently detailed for a recipient of ordinary + +skill to be able to understand it.
+ + +5. Application of this License. + +
    This License applies to code to which the Initial Developer has attached + +the notice in Exhibit A and to related Covered Code.
+ + +6. Versions of the License. + + +
    6.1. New Versions. + +
    Netscape Communications Corporation (''Netscape'') may publish revised + +and/or new versions of the License from time to time. Each version will + +be given a distinguishing version number. + + +

    6.2. Effect of New Versions. + +
    Once Covered Code has been published under a particular version of + +the License, You may always continue to use it under the terms of that + +version. You may also choose to use such Covered Code under the terms of + +any subsequent version of the License published by Netscape. No one other + +than Netscape has the right to modify the terms applicable to Covered Code + +created under this License. + + +

    6.3. Derivative Works. + +
    If You create or use a modified version of this License (which you + +may only do in order to apply it to code which is not already Covered Code + +governed by this License), You must (a) rename Your license so that the + +phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", ''NPL'' + +or any confusingly similar phrase do not appear in your license (except + +to note that your license differs from this License) and (b) otherwise + +make it clear that Your version of the license contains terms which differ + +from the Mozilla Public License and Netscape Public License. (Filling in + +the name of the Initial Developer, Original Code or Contributor in the + +notice described in Exhibit A shall not of themselves be deemed + +to be modifications of this License.)

+ + +7. DISCLAIMER OF WARRANTY. + +
    COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, WITHOUT + +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, + +WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT + +FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY + +AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE + +PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER + +CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. + +THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. + +NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+ + +8. TERMINATION. + + +
    8.1.  This License and the rights granted hereunder will + +terminate automatically if You fail to comply with terms herein and fail + +to cure such breach within 30 days of becoming aware of the breach. All + +sublicenses to the Covered Code which are properly granted shall survive + +any termination of this License. Provisions which, by their nature, must + +remain in effect beyond the termination of this License shall survive. + + +

    8.2.  If You initiate litigation by asserting a patent infringement + +claim (excluding declatory judgment actions) against Initial Developer + +or a Contributor (the Initial Developer or Contributor against whom You + +file such action is referred to as "Participant")  alleging that: + +

    (a)  such Participant's Contributor Version directly or + +indirectly infringes any patent, then any and all rights granted by such + +Participant to You under Sections 2.1 and/or 2.2 of this License shall, + +upon 60 days notice from Participant terminate prospectively, unless if + +within 60 days after receipt of notice You either: (i)  agree in writing + +to pay Participant a mutually agreeable reasonable royalty for Your past + +and future use of Modifications made by such Participant, or (ii) withdraw + +Your litigation claim with respect to the Contributor Version against such + +Participant.  If within 60 days of notice, a reasonable royalty and + +payment arrangement are not mutually agreed upon in writing by the parties + +or the litigation claim is not withdrawn, the rights granted by Participant + +to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration + +of the 60 day notice period specified above. + +

    (b)  any software, hardware, or device, other than such + +Participant's Contributor Version, directly or indirectly infringes any + +patent, then any rights granted to You by such Participant under Sections + +2.1(b) and 2.2(b) are revoked effective as of the date You first made, + +used, sold, distributed, or had made, Modifications made by that Participant. + + +

    8.3.  If You assert a patent infringement claim against + +Participant alleging that such Participant's Contributor Version directly + +or indirectly infringes any patent where such claim is resolved (such as + +by license or settlement) prior to the initiation of patent infringement + +litigation, then the reasonable value of the licenses granted by such Participant + +under Sections 2.1 or 2.2 shall be taken into account in determining the + +amount or value of any payment or license. + + +

    8.4.  In the event of termination under Sections 8.1 or + +8.2 above,  all end user license agreements (excluding distributors + +and resellers) which have been validly granted by You or any distributor + +hereunder prior to termination shall survive termination.

+ + +9. LIMITATION OF LIABILITY. + +
    UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING + +NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, + +ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER + +OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, + +INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + +LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE + +OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN + +IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. + +THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR + +PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE + +LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION + +OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION + +AND LIMITATION MAY NOT APPLY TO YOU.
+ + +10. U.S. GOVERNMENT END USERS. + +
    The Covered Code is a ''commercial item,'' as that term is defined + +in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer software'' + +and ''commercial computer software documentation,'' as such terms are used + +in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and + +48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government + +End Users acquire Covered Code with only those rights set forth herein.
+ + +11. MISCELLANEOUS. + +
    This License represents the complete agreement concerning subject matter + +hereof. If any provision of this License is held to be unenforceable, such + +provision shall be reformed only to the extent necessary to make it enforceable. + +This License shall be governed by California law provisions (except to + +the extent applicable law, if any, provides otherwise), excluding its conflict-of-law + +provisions. With respect to disputes in which at least one party is a citizen + +of, or an entity chartered or registered to do business in the United States + +of America, any litigation relating to this License shall be subject to + +the jurisdiction of the Federal Courts of the Northern District of California, + +with venue lying in Santa Clara County, California, with the losing party + +responsible for costs, including without limitation, court costs and reasonable + +attorneys' fees and expenses. The application of the United Nations Convention + +on Contracts for the International Sale of Goods is expressly excluded. + +Any law or regulation which provides that the language of a contract shall + +be construed against the drafter shall not apply to this License.
+ + +12. RESPONSIBILITY FOR CLAIMS. + +
    As between Initial Developer and the Contributors, each party is responsible + +for claims and damages arising, directly or indirectly, out of its utilization + +of rights under this License and You agree to work with Initial Developer + +and Contributors to distribute such responsibility on an equitable basis. + +Nothing herein is intended or shall be deemed to constitute any admission + +of liability.
+ + +13. MULTIPLE-LICENSED CODE. + +
    Initial Developer may designate portions of the Covered Code as “Multiple-Licensed”.  + +“Multiple-Licensed” means that the Initial Developer permits you to utilize + +portions of the Covered Code under Your choice of the MPL or the alternative + +licenses, if any, specified by the Initial Developer in the file described + +in Exhibit A.
+ + + + +


EXHIBIT A -Mozilla Public License. + +

    ``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 Original Code is ______________________________________. + +

    The Initial Developer of the Original Code is ________________________. + +Portions created by + +
     ______________________ are Copyright (C) ______ _______________________. + +All Rights + +
    Reserved. + +

    Contributor(s): ______________________________________. + +

    Alternatively, the contents of this file may be used under the terms + +of the _____ license (the  “[___] License”), in which case the provisions + +of [______] License are applicable  instead of those above.  + +If you wish to allow use of your version of this file only under the terms + +of the [____] License and not to allow others to use your version of this + +file under the MPL, indicate your decision by deleting  the provisions + +above and replace  them with the notice and other provisions required + +by the [___] License.  If you do not delete the provisions above, + +a recipient may use your version of this file under either the MPL or the + +[___] License." + +

    [NOTE: The text of this Exhibit A may differ slightly from the text + +of the notices in the Source Code files of the Original Code. You should + +use the text of this Exhibit A rather than the text found in the Original + +Code Source Code for Your Modifications.] + +

    + +

+ + + + + +
The following software may be +included in this product: OpenSSL; Use of any of this +software +is governed +by the terms of the license below:
+

OpenSSL Project
+

+

OpenSSL
+

+
+  LICENSE ISSUES
+  ==============
+
+  The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
+  the OpenSSL License and the original SSLeay license apply to the toolkit.
+  See below for the actual license texts. Actually both licenses are BSD-style
+  Open Source licenses. In case of any license issues related to OpenSSL
+  please contact openssl-core@openssl.org.
+
+  OpenSSL License
+  ---------------
+
+/* ====================================================================
+ * Copyright (c) 1998-2007 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    openssl-core@openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay@cryptsoft.com).  This product includes software written by Tim
+ * Hudson (tjh@cryptsoft.com).
+ *
+ */
+
+ Original SSLeay License
+ -----------------------
+
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+
+
+ + + + + + + + + +
The following software may be +included in this product:PortAudio - Portable Real-Time Audio Library; Use of any of this software +is governed +by the terms of the license below:
+

Ross Bencina and Phil Burk +
+

+

PortAudio
+

+ + +PortAudio Portable Real-Time Audio Library +
Copyright (c) 1999-2000 Ross Bencina and Phil Burk +

Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following conditions: +

    +
  • +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software.
  • + +
  • +Any person wishing to distribute modifications to the Software is requested +to send the modifications to the original developer so that they can be +incorporated into the canonical version.
  • +
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND ON INFRINGEMENT. +
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. +
  +

+Plain English Interpretation of the License

+The following is a plain English interpretation of the license. This interpretation +is not part of the license and has no legal significance. To understand +the full legal implications of the license you should consult the license +itself. +
    +
  • +You can use PortAudio for free in your projects or applications, +even commercial applications.
  • + +
  • +You do not have to make your own source available as open-source +code just because you used PortAudio.
  • + +
  • +Do not take our copyright information out of the PortAudio source +code.
  • + +
  • +If you fix a bug in PortAudio, please send us the fix.
  • + +
  • +You cannot sue us if your program fails because of PortAudio.
  • +
+ +


+

+ + + + + + + +
The following software may be +included in this product: XT; Use of any of this +software +is governed +by the terms of the license below:
+

James Clark, Bill Lindsey
+

+

PostgreSQL Database Management System

+
+(formerly known as Postgres, then as Postgres95) +
+ +Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group +
+ +Portions Copyright (c) 1994, The Regents of the University of California +
+ +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose, without fee, and without a written agreement +is hereby granted, provided that the above copyright notice and this +paragraph and the following two paragraphs appear in all copies. +
+ +IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING +LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS +DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +
+ +THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +
+ + + + +
The following software may be +included in this product: PostScript(R) AFM Files; Use of any of this software +is governed +by the terms of the license below:
+

Adobe
+

+

Printer Description Files
+

+
+
+ Copyright 1987-1995 Adobe Systems Incorporated.
+ All Rights Reserved.
+ Permission is granted for redistribution of this file as
+ long as this copyright notice is intact and the contents
+ of the file is not altered in any way from its original form.
+ End of Copyright statement
+
+ + + + + + + + +
The following software may be +included in this product: Python; Use of any of this +software +is governed +by the terms of the license below:
+

Python Software Foundation
+

+

Python
+

+
+
+B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
+===============================================================
+
+PSF LICENSE AGREEMENT FOR PYTHON 2.3
+------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using Python 2.3 software in source or binary form and its
+associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF
+hereby grants Licensee a nonexclusive, royalty-free, world-wide
+license to reproduce, analyze, test, perform and/or display publicly,
+prepare derivative works, distribute, and otherwise use Python 2.3
+alone or in any derivative version, provided, however, that PSF's
+License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
+2001, 2002, 2003, 2004 Python Software Foundation; All Rights Reserved" are
+retained in Python 2.3 alone or in any derivative version prepared by
+Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python 2.3 or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python 2.3.
+
+4. PSF is making Python 2.3 available to Licensee on an "AS IS"
+basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.3 WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+2.3 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.3,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee.  This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python 2.3, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
+-------------------------------------------
+
+BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
+
+1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
+office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
+Individual or Organization ("Licensee") accessing and otherwise using
+this software in source or binary form and its associated
+documentation ("the Software").
+
+2. Subject to the terms and conditions of this BeOpen Python License
+Agreement, BeOpen hereby grants Licensee a non-exclusive,
+royalty-free, world-wide license to reproduce, analyze, test, perform
+and/or display publicly, prepare derivative works, distribute, and
+otherwise use the Software alone or in any derivative version,
+provided, however, that the BeOpen Python License is retained in the
+Software, alone or in any derivative version prepared by Licensee.
+
+3. BeOpen is making the Software available to Licensee on an "AS IS"
+basis.  BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
+SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
+AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
+DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+5. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+6. This License Agreement shall be governed by and interpreted in all
+respects by the law of the State of California, excluding conflict of
+law provisions.  Nothing in this License Agreement shall be deemed to
+create any relationship of agency, partnership, or joint venture
+between BeOpen and Licensee.  This License Agreement does not grant
+permission to use BeOpen trademarks or trade names in a trademark
+sense to endorse or promote products or services of Licensee, or any
+third party.  As an exception, the "BeOpen Python" logos available at
+http://www.pythonlabs.com/logos.html may be used according to the
+permissions granted on that web page.
+
+7. By copying, installing or otherwise using the software, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
+---------------------------------------
+
+1. This LICENSE AGREEMENT is between the Corporation for National
+Research Initiatives, having an office at 1895 Preston White Drive,
+Reston, VA 20191 ("CNRI"), and the Individual or Organization
+("Licensee") accessing and otherwise using Python 1.6.1 software in
+source or binary form and its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, CNRI
+hereby grants Licensee a nonexclusive, royalty-free, world-wide
+license to reproduce, analyze, test, perform and/or display publicly,
+prepare derivative works, distribute, and otherwise use Python 1.6.1
+alone or in any derivative version, provided, however, that CNRI's
+License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
+1995-2001 Corporation for National Research Initiatives; All Rights
+Reserved" are retained in Python 1.6.1 alone or in any derivative
+version prepared by Licensee.  Alternately, in lieu of CNRI's License
+Agreement, Licensee may substitute the following text (omitting the
+quotes): "Python 1.6.1 is made available subject to the terms and
+conditions in CNRI's License Agreement.  This Agreement together with
+Python 1.6.1 may be located on the Internet using the following
+unique, persistent identifier (known as a handle): 1895.22/1013.  This
+Agreement may also be obtained from a proxy server on the Internet
+using the following URL: http://hdl.handle.net/1895.22/1013".
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python 1.6.1 or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python 1.6.1.
+
+4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
+basis.  CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. This License Agreement shall be governed by the federal
+intellectual property law of the United States, including without
+limitation the federal copyright law, and, to the extent such
+U.S. federal law does not apply, by the law of the Commonwealth of
+Virginia, excluding Virginia's conflict of law provisions.
+Notwithstanding the foregoing, with regard to derivative works based
+on Python 1.6.1 that incorporate non-separable material that was
+previously distributed under the GNU General Public License (GPL), the
+law of the Commonwealth of Virginia shall govern this License
+Agreement only as to issues arising under or with respect to
+Paragraphs 4, 5, and 7 of this License Agreement.  Nothing in this
+License Agreement shall be deemed to create any relationship of
+agency, partnership, or joint venture between CNRI and Licensee.  This
+License Agreement does not grant permission to use CNRI trademarks or
+trade name in a trademark sense to endorse or promote products or
+services of Licensee, or any third party.
+
+8. By clicking on the "ACCEPT" button where indicated, or by copying,
+installing or otherwise using Python 1.6.1, Licensee agrees to be
+bound by the terms and conditions of this License Agreement.
+
+        ACCEPT
+
+
+CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
+--------------------------------------------------
+
+Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
+The Netherlands.  All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+ + + + + + + +
The following software may be +included in this product: Redland RDF Library librdf; Use of any of this software +is governed by the terms of the license below:
+

librdf.org +
+

+

librdf
+

+jump to LGPL
+ + + + + + + +
The following software may be +included in this product: regexp; Use of any of this software +is governed by the terms of the license below:
+

Free Software Foundation, Inc. +
+

+

regexp
+

+jump to LGPL
+ + + + + + + +
The following software may be +included in this product: Remote Control Wrapper; Use of any of this +software is governed by the terms of the license below:
+

Martin Kahr
+

+

Remote Control Wrapper
+

+ +
+
+Created by Martin Kahr under a MIT-style license. 
+Copyright (c) 2006/2007 martinkahr.com. All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a 
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+ + + + + + + +
The following software may be +included in this product: Rhino; Use of any of this +software +is governed +by the terms of the license below:
+

Norris Boyd, Patrick Beard
+

+

Rhino
+

+
MOZILLA PUBLIC LICENSE +
+Version 1.1 +

+
+ +

1. Definitions. +

+
    + 1.0.1. "Commercial Use" means distribution or otherwise +making +the Covered Code available to a third party. + +

    1.1. ''Contributor'' means each entity that creates or +contributes +to the creation of Modifications. +

    +

    1.2. ''Contributor Version'' means the combination of the +Original +Code, prior Modifications used by a Contributor, and the Modifications +made by that particular Contributor. +

    +

    1.3. ''Covered Code'' means the Original Code or +Modifications +or the combination of the Original Code and Modifications, in each case +including portions thereof. +

    +

    1.4. ''Electronic Distribution Mechanism'' means a +mechanism +generally accepted in the software development community for the +electronic +transfer of data. +

    +

    1.5. ''Executable'' means Covered Code in any form other +than +Source Code. +

    +

    1.6. ''Initial Developer'' means the individual or entity +identified +as the Initial Developer in the Source Code notice required by Exhibit +A. +

    +

    1.7. ''Larger Work'' means a work which combines Covered +Code +or portions thereof with code not governed by the terms of this +License. +

    +

    1.8. ''License'' means this document. +

    +

    1.8.1. "Licensable" means having the right to grant, to the +maximum +extent possible, whether at the time of the initial grant or +subsequently +acquired, any and all of the rights conveyed herein. +

    +

    1.9. ''Modifications'' means any addition to or deletion +from +the substance or structure of either the Original Code or any previous +Modifications. When Covered Code is released as a series of files, a +Modification +is: +

    +
      + A. Any addition to or deletion from the contents of a file +containing +Original Code or previous Modifications. +

      B. Any new file that contains any part of the Original +Code or +previous Modifications. +

      +
    + + 1.10. ''Original Code'' means Source Code of computer software +code +which is described in the Source Code notice required by Exhibit A +as Original Code, and which, at the time of its release under this +License +is not already Covered Code governed by this License. + +

    1.10.1. "Patent Claims" means any patent claim(s), now +owned +or hereafter acquired, including without limitation,  method, +process, +and apparatus claims, in any patent Licensable by grantor. +

    +

    1.11. ''Source Code'' means the preferred form of the +Covered +Code for making modifications to it, including all modules it contains, +plus any associated interface definition files, scripts used to control +compilation and installation of an Executable, or source code +differential +comparisons against either the Original Code or another well known, +available +Covered Code of the Contributor's choice. The Source Code can be in a +compressed +or archival form, provided the appropriate decompression or +de-archiving +software is widely available for no charge. +

    +

    1.12. "You'' (or "Your")  means an individual or a +legal +entity exercising rights under, and complying with all of the terms of, +this License or a future version of this License issued under Section +6.1. +For legal entities, "You'' includes any entity which controls, is +controlled +by, or is under common control with You. For purposes of this +definition, +"control'' means (a) the power, direct or indirect, to cause the +direction +or management of such entity, whether by contract or otherwise, or (b) +ownership of more than fifty percent (50%) of the outstanding shares or +beneficial ownership of such entity.

    +
+ +2. Source Code License. + +
    + 2.1. The Initial Developer Grant. +
    +The Initial Developer hereby grants You a world-wide, royalty-free, +non-exclusive license, subject to third party intellectual property +claims: +
      + (a)  under intellectual property rights (other +than +patent or trademark) Licensable by Initial Developer to use, reproduce, +modify, display, perform, sublicense and distribute the Original Code +(or +portions thereof) with or without Modifications, and/or as part of a +Larger +Work; and +

      (b) under Patents Claims infringed by the making, using +or selling +of Original Code, to make, have made, use, practice, sell, and offer +for +sale, and/or otherwise dispose of the Original Code (or portions +thereof). +

      +
        +
          +  +
        +
      + (c) the licenses granted in this Section 2.1(a) and (b) are +effective +on the date Initial Developer first distributes Original Code under the +terms of this License. +

      (d) Notwithstanding Section 2.1(b) above, no patent +license is +granted: 1) for code that You delete from the Original Code; 2) +separate +from the Original Code;  or 3) for infringements caused by: i) the +modification of the Original Code or ii) the combination of the +Original +Code with other software or devices. +

      +
    + + 2.2. Contributor Grant. +
    +Subject to third party intellectual property claims, each Contributor +hereby grants You a world-wide, royalty-free, non-exclusive license +
      +  +
      + (a)  under intellectual property rights (other +than +patent or trademark) Licensable by Contributor, to use, reproduce, +modify, +display, perform, sublicense and distribute the Modifications created +by +such Contributor (or portions thereof) either on an unmodified basis, +with +other Modifications, as Covered Code and/or as part of a Larger Work; +and +

      (b) under Patent Claims infringed by the making, using, +or selling +of  Modifications made by that Contributor either alone and/or in +combination with its Contributor Version (or portions of such +combination), +to make, use, sell, offer for sale, have made, and/or otherwise dispose +of: 1) Modifications made by that Contributor (or portions thereof); +and +2) the combination of  Modifications made by that Contributor with +its Contributor Version (or portions of such combination). +

      +

      (c) the licenses granted in Sections 2.2(a) and 2.2(b) +are effective +on the date Contributor first makes Commercial Use of the Covered Code. +

      +

      (d)    Notwithstanding Section 2.2(b) +above, no +patent license is granted: 1) for any code that Contributor has deleted +from the Contributor Version; 2)  separate from the Contributor +Version;  +3)  for infringements caused by: i) third party modifications of +Contributor +Version or ii)  the combination of Modifications made by that +Contributor +with other software  (except as part of the Contributor Version) +or +other devices; or 4) under Patent Claims infringed by Covered Code in +the +absence of Modifications made by that Contributor.

      +
    +
+ +


+3. Distribution Obligations. +

+
    + 3.1. Application of License. +
    +The Modifications which You create or to which You contribute are +governed +by the terms of this License, including without limitation Section 2.2. +The Source Code version of Covered Code may be distributed only under +the +terms of this License or a future version of this License released +under +Section 6.1, and You must include a copy of this License with +every +copy of the Source Code You distribute. You may not offer or impose any +terms on any Source Code version that alters or restricts the +applicable +version of this License or the recipients' rights hereunder. However, +You +may include an additional document offering the additional rights +described +in Section 3.5. + +

    3.2. Availability of Source Code. +
    +Any Modification which You create or to which You contribute must be +made available in Source Code form under the terms of this License +either +on the same media as an Executable version or via an accepted +Electronic +Distribution Mechanism to anyone to whom you made an Executable version +available; and if made available via Electronic Distribution Mechanism, +must remain available for at least twelve (12) months after the date it +initially became available, or at least six (6) months after a +subsequent +version of that particular Modification has been made available to such +recipients. You are responsible for ensuring that the Source Code +version +remains available even if the Electronic Distribution Mechanism is +maintained +by a third party. +

    +

    3.3. Description of Modifications. +
    +You must cause all Covered Code to which You contribute to contain +a file documenting the changes You made to create that Covered Code and +the date of any change. You must include a prominent statement that the +Modification is derived, directly or indirectly, from Original Code +provided +by the Initial Developer and including the name of the Initial +Developer +in (a) the Source Code, and (b) in any notice in an Executable version +or related documentation in which You describe the origin or ownership +of the Covered Code. +

    +

    3.4. Intellectual Property Matters +

    +
      + (a) Third Party Claims. +
      +If Contributor has knowledge that a license under a third party's +intellectual +property rights is required to exercise the rights granted by such +Contributor +under Sections 2.1 or 2.2, Contributor must include a text file with +the +Source Code distribution titled "LEGAL'' which describes the claim and +the party making the claim in sufficient detail that a recipient will +know +whom to contact. If Contributor obtains such knowledge after the +Modification +is made available as described in Section 3.2, Contributor shall +promptly +modify the LEGAL file in all copies Contributor makes available +thereafter +and shall take other steps (such as notifying appropriate mailing lists +or newsgroups) reasonably calculated to inform those who received the +Covered +Code that new knowledge has been obtained. +

      (b) Contributor APIs. +
      +If Contributor's Modifications include an application programming +interface +and Contributor has knowledge of patent licenses which are reasonably +necessary +to implement that API, Contributor must also include this information +in +the LEGAL file. +

      +
    +          (c)    +Representations. +
      +Contributor represents that, except as disclosed pursuant to Section +3.4(a) above, Contributor believes that Contributor's Modifications are +Contributor's original creation(s) and/or Contributor has sufficient +rights +to grant the rights conveyed by this License. +
    + +


    + 3.5. Required Notices. +
    +You must duplicate the notice in Exhibit A in each file of the +Source Code.  If it is not possible to put such notice in a +particular +Source Code file due to its structure, then You must include such +notice +in a location (such as a relevant directory) where a user would be +likely +to look for such a notice.  If You created one or more +Modification(s) +You may add your name as a Contributor to the notice described in Exhibit +A.  You must also duplicate this License in any documentation +for the Source Code where You describe recipients' rights or ownership +rights relating to Covered Code.  You may choose to offer, and to +charge a fee for, warranty, support, indemnity or liability obligations +to one or more recipients of Covered Code. However, You may do so only +on Your own behalf, and not on behalf of the Initial Developer or any +Contributor. +You must make it absolutely clear than any such warranty, support, +indemnity +or liability obligation is offered by You alone, and You hereby agree +to +indemnify the Initial Developer and every Contributor for any liability +incurred by the Initial Developer or such Contributor as a result of +warranty, +support, indemnity or liability terms You offer. +

    +

    3.6. Distribution of Executable Versions. +
    +You may distribute Covered Code in Executable form only if the +requirements +of Section 3.1-3.5 have been met for that Covered Code, and if +You +include a notice stating that the Source Code version of the Covered +Code +is available under the terms of this License, including a description +of +how and where You have fulfilled the obligations of Section 3.2. +The notice must be conspicuously included in any notice in an +Executable +version, related documentation or collateral in which You describe +recipients' +rights relating to the Covered Code. You may distribute the Executable +version of Covered Code or ownership rights under a license of Your +choice, +which may contain terms different from this License, provided that You +are in compliance with the terms of this License and that the license +for +the Executable version does not attempt to limit or alter the +recipient's +rights in the Source Code version from the rights set forth in this +License. +If You distribute the Executable version under a different license You +must make it absolutely clear that any terms which differ from this +License +are offered by You alone, not by the Initial Developer or any +Contributor. +You hereby agree to indemnify the Initial Developer and every +Contributor +for any liability incurred by the Initial Developer or such Contributor +as a result of any such terms You offer. +

    +

    3.7. Larger Works. +
    +You may create a Larger Work by combining Covered Code with other code +not governed by the terms of this License and distribute the Larger +Work +as a single product. In such a case, You must make sure the +requirements +of this License are fulfilled for the Covered Code.

    +
+ +4. Inability to Comply Due to Statute or Regulation. +
    +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Code due to statute, +judicial order, or regulation then You must: (a) comply with the terms +of this License to the maximum extent possible; and (b) describe the +limitations +and the code they affect. Such description must be included in the +LEGAL +file described in Section 3.4 and must be included with all +distributions +of the Source Code. Except to the extent prohibited by statute or +regulation, +such description must be sufficiently detailed for a recipient of +ordinary +skill to be able to understand it. +
+ +5. Application of this License. +
    +This License applies to code to which the Initial Developer has +attached +the notice in Exhibit A and to related Covered Code. +
+ +6. Versions of the License. + +
    + 6.1. New Versions. +
    +Netscape Communications Corporation (''Netscape'') may publish revised +and/or new versions of the License from time to time. Each version will +be given a distinguishing version number. + +

    6.2. Effect of New Versions. +
    +Once Covered Code has been published under a particular version of +the License, You may always continue to use it under the terms of that +version. You may also choose to use such Covered Code under the terms +of +any subsequent version of the License published by Netscape. No one +other +than Netscape has the right to modify the terms applicable to Covered +Code +created under this License. +

    +

    6.3. Derivative Works. +
    +If You create or use a modified version of this License (which you +may only do in order to apply it to code which is not already Covered +Code +governed by this License), You must (a) rename Your license so that the +phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", +''NPL'' +or any confusingly similar phrase do not appear in your license (except +to note that your license differs from this License) and (b) otherwise +make it clear that Your version of the license contains terms which +differ +from the Mozilla Public License and Netscape Public License. (Filling +in +the name of the Initial Developer, Original Code or Contributor in the +notice described in Exhibit A shall not of themselves be deemed +to be modifications of this License.)

    +
+ +7. DISCLAIMER OF WARRANTY. +
    +COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, +WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT +LIMITATION, +WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT +FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE +QUALITY +AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED +CODE +PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY +OTHER +CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR +CORRECTION. +THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS +LICENSE. +NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS +DISCLAIMER. +
+ +8. TERMINATION. + +
    + 8.1.  This License and the rights granted hereunder will +terminate automatically if You fail to comply with terms herein and +fail +to cure such breach within 30 days of becoming aware of the breach. All +sublicenses to the Covered Code which are properly granted shall +survive +any termination of this License. Provisions which, by their nature, +must +remain in effect beyond the termination of this License shall survive. + +

    8.2.  If You initiate litigation by asserting a +patent infringement +claim (excluding declatory judgment actions) against Initial Developer +or a Contributor (the Initial Developer or Contributor against whom You +file such action is referred to as "Participant")  alleging that: +

    +

    (a)  such Participant's Contributor Version directly +or +indirectly infringes any patent, then any and all rights granted by +such +Participant to You under Sections 2.1 and/or 2.2 of this License shall, +upon 60 days notice from Participant terminate prospectively, unless if +within 60 days after receipt of notice You either: (i)  agree in +writing +to pay Participant a mutually agreeable reasonable royalty for Your +past +and future use of Modifications made by such Participant, or (ii) +withdraw +Your litigation claim with respect to the Contributor Version against +such +Participant.  If within 60 days of notice, a reasonable royalty +and +payment arrangement are not mutually agreed upon in writing by the +parties +or the litigation claim is not withdrawn, the rights granted by +Participant +to You under Sections 2.1 and/or 2.2 automatically terminate at the +expiration +of the 60 day notice period specified above. +

    +

    (b)  any software, hardware, or device, other than +such +Participant's Contributor Version, directly or indirectly infringes any +patent, then any rights granted to You by such Participant under +Sections +2.1(b) and 2.2(b) are revoked effective as of the date You first made, +used, sold, distributed, or had made, Modifications made by that +Participant. +

    +

    8.3.  If You assert a patent infringement claim +against +Participant alleging that such Participant's Contributor Version +directly +or indirectly infringes any patent where such claim is resolved (such +as +by license or settlement) prior to the initiation of patent +infringement +litigation, then the reasonable value of the licenses granted by such +Participant +under Sections 2.1 or 2.2 shall be taken into account in determining +the +amount or value of any payment or license. +

    +

    8.4.  In the event of termination under Sections 8.1 +or +8.2 above,  all end user license agreements (excluding +distributors +and resellers) which have been validly granted by You or any +distributor +hereunder prior to termination shall survive termination.

    +
+ +9. LIMITATION OF LIABILITY. +
    +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT +(INCLUDING +NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, +ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY +SUPPLIER +OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, +SPECIAL, +INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, +WITHOUT +LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER +FAILURE +OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN +IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH +DAMAGES. +THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR +PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT +APPLICABLE +LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE +EXCLUSION +OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION +AND LIMITATION MAY NOT APPLY TO YOU. +
+ +10. U.S. GOVERNMENT END USERS. +
    +The Covered Code is a ''commercial item,'' as that term is defined +in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer +software'' +and ''commercial computer software documentation,'' as such terms are +used +in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and +48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. +Government +End Users acquire Covered Code with only those rights set forth herein. +
+ +11. MISCELLANEOUS. +
    +This License represents the complete agreement concerning subject +matter +hereof. If any provision of this License is held to be unenforceable, +such +provision shall be reformed only to the extent necessary to make it +enforceable. +This License shall be governed by California law provisions (except to +the extent applicable law, if any, provides otherwise), excluding its +conflict-of-law +provisions. With respect to disputes in which at least one party is a +citizen +of, or an entity chartered or registered to do business in the United +States +of America, any litigation relating to this License shall be subject to +the jurisdiction of the Federal Courts of the Northern District of +California, +with venue lying in Santa Clara County, California, with the losing +party +responsible for costs, including without limitation, court costs and +reasonable +attorneys' fees and expenses. The application of the United Nations +Convention +on Contracts for the International Sale of Goods is expressly excluded. +Any law or regulation which provides that the language of a contract +shall +be construed against the drafter shall not apply to this License. +
+ +12. RESPONSIBILITY FOR CLAIMS. +
    +As between Initial Developer and the Contributors, each party is +responsible +for claims and damages arising, directly or indirectly, out of its +utilization +of rights under this License and You agree to work with Initial +Developer +and Contributors to distribute such responsibility on an equitable +basis. +Nothing herein is intended or shall be deemed to constitute any +admission +of liability. +
+ +13. MULTIPLE-LICENSED CODE. +
    +Initial Developer may designate portions of the Covered Code as +“Multiple-Licensed”.  +“Multiple-Licensed” means that the Initial Developer permits you to +utilize +portions of the Covered Code under Your choice of the MPL or the +alternative +licenses, if any, specified by the Initial Developer in the file +described +in Exhibit A. +
+ +


+EXHIBIT A -Mozilla Public License. +

+
    +``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 Original Code is ______________________________________. +

    +

    The Initial Developer of the Original Code is +________________________. +Portions created by +
    + ______________________ are Copyright (C) ______ +_______________________. +All Rights +
    +Reserved. +

    +

    Contributor(s): ______________________________________. +

    +

    Alternatively, the contents of this file may be used under the +terms +of the _____ license (the  “[___] License”), in which case the +provisions +of [______] License are applicable  instead of those above.  +If you wish to allow use of your version of this file only under the +terms +of the [____] License and not to allow others to use your version of +this +file under the MPL, indicate your decision by deleting  the +provisions +above and replace  them with the notice and other provisions +required +by the [___] License.  If you do not delete the provisions above, +a recipient may use your version of this file under either the MPL or +the +[___] License." +

    +

    [NOTE: The text of this Exhibit A may differ slightly from the +text +of the notices in the Source Code files of the Original Code. You +should +use the text of this Exhibit A rather than the text found in the +Original +Code Source Code for Your Modifications.] +

    +

    +
+ + + + + + + +
The following software may be +included in this product: sRGB Profiles; Use of any of this +software +is governed +by the terms of the license below:
+

International Color Consortium
+

+

sRGB Profiles

+ +
+To anyone who acknowledges that the files "sRGB_IEC61966-2-1_noBPC.icc" and +"sRGB_IEC61966-2-1_withBPC.icc" are provided "AS IS" WITH NO EXPRESS OR IMPLIED +WARRANTY, permission to use, copy and distribute these file for any purpose is +hereby granted without fee, provided that the files are not changed including +the HP copyright notice tag, and that the name of Hewlett-Packard Company shall +not be used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. Hewlett-Packard Company +makes no representations about the suitability of this software for any purpose. + +
+ +
+ + + + + + + +
The following software may be +included in this product: Sablotron; Use of any of this +software +is governed +by the terms of the license below:
+

Ginger Alliance
+

+

Sablotron
+

+jump to LGPL
+ + + + + + + +
The following software may be +included in this product: SANE; Use of any of this +software +is governed +by the terms of the license below:
+

David Mosberger-Tang, Andreas Beck
+

+

SANE
+

+
+/* sane - Scanner Access Now Easy.
+   Copyright (C) 1997-1999 David Mosberger-Tang and Andreas Beck
+   This file is part of the SANE package.
+
+   This file is in the public domain.  You may use and modify it as
+   you see fit, as long as this copyright message is included and
+   that there is an indication as to what modifications have been
+   made (if any).
+
+   SANE is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+   FITNESS FOR A PARTICULAR PURPOSE.
+
+   This file declares SANE application interface.  See the SANE
+   standard for a detailed explanation of the interface.  */
+
+
+ + + + + + +
The following software may be +included in this product: Saxon (B); Use of any of this +software +is governed +by the terms of the license below:
+

Michael Kay
+

+

Saxon (B)
+

+ + +jump to MPL 1.1
+ + + + + + + + +
The following software may be +included in this product: Stax API; Use of any of this +software is governed by the terms of the license below:
+

stax.codehouse.org
+

+

Stax
+

+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+ + + + + + + +
The following software may be +included in this product:STLport; Use of any of this software +is governed +by the terms of the license below:
+

Boris Fomitchev
+

+

STLport
+

+ + + +

License Agreement

+ +

Boris Fomitchev grants Licensee a non-exclusive, +non-transferable, royalty-free license to use STLport and its +documentation without fee.
+
+By downloading, using, or copying STLport or any portion thereof,  +Licensee agrees to abide by the intellectual property laws and all other +applicable laws of the United States of America, and to all of the terms and +conditions of this Agreement.
+
+Licensee shall maintain the following copyright and permission  +notices on STLport sources and its documentation unchanged :

+ + +Copyright 1999,2000 Boris Fomitchev
+
+This material is provided "as is", with absolutely no warranty +expressed or implied. Any use is at your own risk.
+Permission to use or copy this software for any purpose is hereby granted +without fee, provided the above notices are retained on all copies. Permission +to modify the code and to distribute modified code is granted, provided the +above notices are retained, and a notice that the code was modified is included +with the above copyright notice. + + +

The Licensee may distribute binaries compiled with STLport +(whether original or modified) without any royalties or restrictions.

+

The Licensee may distribute original or modified STLport sources, +provided that:

+
    +
  • The conditions indicated in the above permission notice are met;
  • +
  • The following copyright notices are retained when present, and conditions + provided in accompanying permission notices are met :
  • +
+

Copyright 1994 Hewlett-Packard Company

+

Copyright 1996,97 Silicon Graphics Computer Systems, Inc.

+

Copyright 1997 Moscow Center for SPARC Technology.

+
+

Permission to use, copy, modify, distribute and sell this + software and its documentation for any purpose is hereby granted without fee, + provided that the above copyright notice appear in all copies and that both + that copyright notice and this permission notice appear in supporting + documentation. Hewlett-Packard Company makes no representations about the + suitability of this software for any purpose. It is provided "as is" + without express or implied warranty.

+

Permission to use, copy, modify, distribute and sell this + software and its documentation for any purpose is hereby granted without fee, + provided that the above copyright notice appear in all copies and that both + that copyright notice and this permission notice appear in supporting + documentation. Silicon Graphics makes no representations about the suitability + of this software for any purpose. It is provided "as is" without + express or implied warranty.

+
+
+ Permission to use, copy, modify, distribute and sell this + software and its documentation for any purpose is hereby granted without fee, + provided that the above copyright notice appear in all copies and that both + that copyright notice and this permission notice appear in supporting + documentation. Moscow Center for SPARC Technology  makes no + representations about the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. +
+ + + + + + +
The following software may be -included in this product: Italian Thesaurus; Use of any of this -software +included in this product: Italian Thesaurus; Use of any of this software is governed by the terms of the license below:
-

Daniela Volta, Davide -Prina
+

Daniela Volta, Davide Prina

-

Sownik synonimw v. 1, -(Polish Thesaurus)
+

Italian Thesaurus


-Open Software License v. 2.1 -
-This Open Software License (the "License") applies to any original work -of -authorship (the "Original Work") whose owner (the "Licensor") has -placed the -following notice immediately following the copyright notice for the -Original Work: -
-Licensed under the Open Software License version 2.1 -
-1) Grant of Copyright License. Licensor hereby grants You a world-wide, -royalty-free, non-exclusive, perpetual, sublicenseable license to do -the following: -
-* to reproduce the Original Work in copies; -
-* to prepare derivative works ("Derivative Works") based upon the -Original Work; -
-* to distribute copies of the Original Work and Derivative Works to the -
-public, with the proviso that copies of Original Work or Derivative -Works that -You distribute shall be licensed under the Open Software License; * to -perform the Original Work publicly; and -
-* to display the Original Work publicly.
-2) Grant of Patent License. Licensor hereby grants You a world-wide, -royalty-free, non-exclusive, perpetual, sublicenseable license, under -patent -claims owned or controlled by the Licensor that are embodied in the -Original -Work as furnished by the Licensor, to make, use, sell and offer for -sale the -Original Work and Derivative Works. -
-3) Grant of Source Code License. The term "Source Code" means the -preferred form -of the Original Work for making modifications to it and all available -documentation describing how to modify the Original Work. Licensor -hereby agrees -to provide a machine-readable copy of the Source Code of the Original -Work along -with each copy of the Original Work that Licensor distributes. Licensor -reserves -the right to satisfy this obligation by placing a machine-readable copy -of the -Source Code in an information repository reasonably calculated to -permit -inexpensive and convenient access by You for as long as Licensor -continues to -distribute the Original Work, and by publishing the address of that -information -repository in a notice immediately following the copyright notice that -applies -to the Original Work. -
-4) Exclusions From License Grant. Neither the names of Licensor, nor -the names -of any contributors to the Original Work, nor any of their trademarks -or service -marks, may be used to endorse or promote products derived from this -Original -Work without express prior written permission of the Licensor. Nothing -in this -License shall be deemed to grant any rights to trademarks, copyrights, -patents, -trade secrets or any other intellectual property of Licensor except as -expressly -stated herein. No patent license is granted to make, use, sell or offer -to sell -embodiments of any patent claims other than the licensed claims defined -in -Section 2. No right is granted to the trademarks of Licensor even if -such marks -are included in the Original Work. Nothing in this License shall be -interpreted -to prohibit Licensor from licensing under different terms from this -License any -Original Work that Licensor otherwise would have a right to license. -
-5) External Deployment. The term "External Deployment" means the use or -distribution of the Original Work or Derivative Works in any way such -that the -Original Work or Derivative Works may be used by anyone other than You, -whether -the Original Work or Derivative Works are distributed to those persons -or made -available as an application intended for use over a computer network. -As an -express condition for the grants of license hereunder, You agree that -any -External Deployment by You of a Derivative Work shall be deemed a -distribution -and shall be licensed to all under the terms of this License, as -prescribed in -section 1(c) herein. -
-6) Attribution Rights. You must retain, in the Source Code of any -Derivative -Works that You create, all copyright, patent or trademark notices from -the -Source Code of the Original Work, as well as any notices of licensing -and any -descriptive text identified therein as an "Attribution Notice." You -must cause -the Source Code for any Derivative Works that You create to carry a -prominent -Attribution Notice reasonably calculated to inform recipients that You -have -modified the Original Work. -
-7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants -that the -copyright in and to the Original Work and the patent rights granted -herein by -Licensor are owned by the Licensor or are sublicensed to You under the -terms of -this License with the permission of the contributor(s) of those -copyrights and -patent rights. Except as expressly stated in the immediately proceeding -sentence, the Original Work is provided under this License on an "AS -IS" BASIS -and WITHOUT WARRANTY, either express or implied, including, without -limitation, -the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A -PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH -YOU. -This DISCLAIMER OF WARRANTY constitutes an essential part of this -License. No -license to Original Work is granted hereunder except under this -disclaimer. -
-8) Limitation of Liability. Under no circumstances and under no legal -theory, -whether in tort (including negligence), contract, or otherwise, shall -the -Licensor be liable to any person for any direct, indirect, special, -incidental, -or consequential damages of any character arising as a result of this -License or -the use of the Original Work including, without limitation, damages for -loss of -goodwill, work stoppage, computer failure or malfunction, or any and -all other -commercial damages or losses. This limitation of liability shall not -apply to -liability for death or personal injury resulting from Licensor's -negligence to -the extent applicable law prohibits such limitation. Some jurisdictions -do not -allow the exclusion or limitation of incidental or consequential -damages, so -this exclusion and limitation may not apply to You. -
-9) Acceptance and Termination. If You distribute copies of the Original -Work or -a Derivative Work, You must make a reasonable effort under the -circumstances to -obtain the express assent of recipients to the terms of this License. -Nothing -else but this License (or another written agreement between Licensor -and You) -grants You permission to create Derivative Works based upon the -Original Work or -to exercise any of the rights granted in Section 1 herein, and any -attempt to do -so except under the terms of this License (or another written agreement -between -Licensor and You) is expressly prohibited by U.S. copyright law, the -equivalent -laws of other countries, and by international treaty. Therefore, by -exercising -any of the rights granted to You in Section 1 herein, You indicate Your -acceptance of this License and all of its terms and conditions. This -License -shall terminate immediately and you may no longer exercise any of the -rights -granted to You by this License upon Your failure to honor the proviso -in Section -1(c) herein. -
-10) Termination for Patent Action. This License shall terminate -automatically -and You may no longer exercise any of the rights granted to You by this -License -as of the date You commence an action, including a cross-claim or -counterclaim, -against Licensor or any licensee alleging that the Original Work -infringes a -patent. This termination provision shall not apply for an action -alleging patent -infringement by combinations of the Original Work with other software -or hardware. -
-11) Jurisdiction, Venue and Governing Law. Any action or suit relating -to this -License may be brought only in the courts of a jurisdiction wherein the -Licensor -resides or in which Licensor conducts its primary business, and under -the laws -of that jurisdiction excluding its conflict-of-law provisions. The -application -of the United Nations Convention on Contracts for the International -Sale of -Goods is expressly excluded. Any use of the Original Work outside the -scope of -this License or after its termination shall be subject to the -requirements and -penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et seq., the -equivalent -laws of other countries, and international treaty. This section shall -survive -the termination of this License. -
-12) Attorneys Fees. In any action to enforce the terms of this License -or -seeking damages relating thereto, the prevailing party shall be -entitled to -recover its costs and expenses, including, without limitation, -reasonable -attorneys' fees and costs incurred in connection with such action, -including any -appeal of such action. This section shall survive the termination of -this License. -
-13) Miscellaneous. This License represents the complete agreement -concerning the -subject matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to -make it enforceable. -
-14) Definition of "You" in This License. "You" throughout this License, -whether -in upper or lower case, means an individual or a legal entity -exercising rights -under, and complying with all of the terms of, this License. For legal -entities, -"You" includes any entity that controls, is controlled by, or is under -common -control with you. For purposes of this definition, "control" means (i) -the -power, direct or indirect, to cause the direction or management of such -entity, -whether by contract or otherwise, or (ii) ownership of fifty percent -(50%) or -more of the outstanding shares, or (iii) beneficial ownership of such -entity. -
-15) Right to Use. You may use the Original Work in all ways not -otherwise -restricted or conditioned by this License or by law, and Licensor -promises not -to interfere with or be responsible for such uses by You. -
-This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights -reserved. -Permission is hereby granted to copy and distribute this license -without -modification. This license may not be modified without the express -written -permission of its copyright owner. -
+Jump to GPL
+ + + + +
The following software may be -included in this product: Russian thesaurus; Use of any of this -software +included in this product: Nepali thesaurus dictionary; Use of any of this software is governed by the terms of the license below:
-

Mikhail Korolyov
+

NepaLinux.org

-

Russian thesaurus
+

Nepali thesaurus dictionary (LGPL v2.1)


jump to GNU Lesser General Public License
+ + + + +
The following software may be -included in this product: TWAIN; Use of any of this -software -is governed -by the terms of the license below:
-

TWAIN Working Group
-

-

TWAIN
-

-
-The TWAIN License -
-The TWAIN Working Group grants customer ("Customer") the worldwide, -royalty-free, non-exclusive license to reproduce and distribute the -software and -documentation of the TWAIN toolkit ("TWAIN Toolkit"). The TWAIN Toolkit -was -designed to be used by third parties to assist them in becoming -compliant with -the TWAIN standard, but it has not been developed to the standards of a -commercial product. Consequently, the TWAIN toolkit is provided AS IS -without -any warranty. THE TWAIN Working Group disclaims all warranties in the -TWAIN -toolkit whether implied, express or statutory, including, without -limitation, -the implied warranties of merchantability, noninfringement of third -party rights -and fitness for a particular purpose. The TWAIN Working Group disclaims -all -liability for damages, whether direct, indirect, special, incidental, -or -consequential, arising from the reproduction, distribution, -modification, or -other use of the TWAIN Toolkit. -
-As a condition of this license, Customer agrees to include in software -programs -based in whole or in part on the TWAIN Toolkit the following providions -in (i) -the header or similar file in such software and (ii) prominently in its -documentation and to require its sublicensees to include these -provisions in -similar locations: The TWAIN Toolkit is distributed as is. The -developer and -distributors of the TWAIN Toolkit expressly disclaim all implied, -express or -statutory warranties including, without limitation, the implied -warranties of -merchantability, noninfringement of third party rights and fitness for -a -particular purpose. Neither the developers nor the distributors will be -liable -for damages, whether direct, indirect, special, incidental, or -consequential, as -a result of the reproduction, modification, distribution or other use -of the -TWAIN Toolkit. -
-
The following software may be -included in this product: Unicode's CLDR data repository; Use of any of -this software +included in this product: Italian Thesaurus; Use of any of this software is governed by the terms of the license below:
-

Unicode, Inc.
-

-

Unicode CLDR data -repository
-

-
-Copyright 1991-2005 Unicode, Inc. All rights reserved. Distributed -under -the Terms of Use in http://www.unicode.org/copyright.html. -
-Permission is hereby granted, free of charge, to any person obtaining a -copy -of the Unicode data files and any associated documentation (the "Data -Files") -or Unicode software and any associated documentation (the "Software") -to deal -in the Data Files or Software without restriction, including without -limitation the rights to use, copy, modify, merge, publish, distribute, -and/or -sell copies of the Data Files or Software, and to permit persons to -whom the -Data Files or Software are furnished to do so, provided that (a) the -above -copyright notice(s) and this permission notice appear with all copies -of the -Data Files or Software, (b) both the above copyright notice(s) and this -permission notice appear in associated documentation, and (c) there is -clear -notice in each modified Data File or in the Software as well as in the -documentation associated with the Data File(s) or Software that the -data or -software has been modified. -
-THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY -KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF THIRD -PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS -INCLUDED IN -THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR -CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THE -DATA FILES OR SOFTWARE. -
-Except as contained in this notice, the name of a copyright holder -shall not -be used in advertising or otherwise to promote the sale, use or other -dealings -in these Data Files or Software without prior written authorization of -the -copyright holder. -
-
The following software may be -included in this product: unixODBC; Use of any of this -software -is governed -by the terms of the license below:
-

unixODBC.org
-

-

unixODBC
-

-jump to LGPL
-
The following software may be -included in this product: vigra; Use of any of this -software -is governed -by the terms of the license below:
-

Ullrich Koethe
-

-

vigra
-

-
-The VIGRA Artistic License -
-========================== -
-(modeled after the Perl Artistic License) -
-
-Preamble -
--------- -
-
-The intent of this document is to state the conditions under which -VIGRA may be copied, such that the author maintains some -semblance of artistic control over the development of the library, -while giving the users of the library the right to use and -distribute VIGRA in a more-or-less customary fashion, plus the -right to make reasonable modifications. -
-Definitions -
------------ -
-"Copyright Holder" of the VIGRA library is Ullrich Koethe, Cognitive -Systems Group, University of Hamburg, Germany. -
-"Library" refers to the collection of files distributed by the -Copyright Holder under the name "VIGRA" (including this LICENSE file -and all accompanying documentation), and derivatives of that collection -of files created through textual modification. -
-"Standard Version" refers to the Library if it has not been -modified, or has been modified in accordance with the wishes of the -Copyright Holder as specified below. -
-"You" is you, if you're thinking about using, copying, modifying or -distributing this Library. -
-"Freely Available" means that no fee is charged for the item. -It also means that recipients of the item may redistribute it under the -same conditions they received it. -
-"Reasonable copying fee" is whatever you can justify on the basis -of media cost, duplication charges, time of people involved, and so -on. (You will not be required to justify it to the Copyright Holder, -but only to the computing community at large as a market that must -bear the fee.) -
-License terms -
-------------- -
-1. You may make and give away verbatim copies of the Standard Version -of this Library without restriction, provided that you duplicate all of -the original copyright notices, this license, and associated -disclaimers.
-2. The Standard Version of the Library may be distributed as part of a -collection of software, provided no more than a reasonable copying fee -is charged for the software collection.
-3. You may apply bug fixes and portability fixes derived from the -Public Domain or from the Copyright Holder. A Library modified in such -a way shall still be considered the Standard Version.
-4. You may otherwise modify your copy of this Library in any way, -provided that you insert a prominent notice in each changed file -stating how and when you changed that file, and provided that you do at -least ONE of the following:
-a. place your modifications in the Public Domain or otherwise make them -Freely Available, for example by allowing the Copyright Holder to -include your modifications in the Standard Version of the Library.
-b. use the modified Library only within your corporation or -organization.
-c. make other distribution arrangements with the Copyright Holder.
-5. You may distribute programs which use this Library in object code or -executable form without restriction.
-6. Any object code generated as a result of using this Library does not -fall under the copyright of this Library, but belongs to whomever -generated it, and may be sold commercially.
-7. The name of the Copyright Holder or the Library may not be used to -endorse or promote products derived from this software without specific -prior written permission.
-8. THIS LIBRARY IS PROVIDED AS IS AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL, -INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND OR ANY -DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -OR NOT ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR ON ANY THEORY OF -LIABILITY ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -OF THIS LIBRARY.
-
The following software may be -included in this product: Xalan; Use of any of this -software is governed by the terms of the license below:
-

The Apache Software -Foundation
-

-

Xalan
-

-
                                 Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

-
The following software may be -included in this product: XML Security Library (xmlsec); Use of any of -this -software -is governed -by the terms of the license below:
-

Aleksey Sanin
+

Daniela Volta, Davide Prina

-

XML Security Library -(xmlsec)
+

Sownik synonimw v. 1, (Polish Thesaurus)

-xmlsec, xmlsec-openssl, xmlsec-gnutls libraries -
------------------------------------------------------------------------------- -
-Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved. -
-Permission is hereby granted, free of charge, to any person obtaining a -copy -of this software and associated documentation files (the "Software"), -to deal -in the Software without restriction, including without limitation the -rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell -copies of the Software, and to permit persons to whom the Software is -fur- -nished to do so, subject to the following conditions: -
-The above copyright notice and this permission notice shall be included -in -all copies or substantial portions of the Software. -
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FIT- -NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE -ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CON- -NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -
-Except as contained in this notice, the name of Aleksey Sanin shall not -be used in advertising or otherwise to promote the sale, use or other -deal- -ings in this Software without prior written authorization from him.
+ +Open Software License v. 2.1
-xmlsec-nss library +This Open Software License (the "License") applies to any original work of +authorship (the "Original Work") whose owner (the "Licensor") has placed the +following notice immediately following the copyright notice for the Original Work: +
------------------------------------------------------------------------------- +Licensed under the Open Software License version 2.1 +
-Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved. +1) Grant of Copyright License. Licensor hereby grants You a world-wide, +royalty-free, non-exclusive, perpetual, sublicenseable license to do the following: +
-Copyright (c) 2003 America Online, Inc. All rights reserved. + * to reproduce the Original Work in copies;
-Permission is hereby granted, free of charge, to any person obtaining a -copy -of this software and associated documentation files (the "Software"), -to deal -in the Software without restriction, including without limitation the -rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell -copies of the Software, and to permit persons to whom the Software is -fur- -nished to do so, subject to the following conditions: + * to prepare derivative works ("Derivative Works") based upon the Original Work;
-The above copyright notice and this permission notice shall be included -in -all copies or substantial portions of the Software. + * to distribute copies of the Original Work and Derivative Works to the
-Portions of the Software were created using source code and/or APIs -governed by the Mozilla Public License (MPL). The MPL is available -at http://www.mozilla.org/MPL/MPL-1.1.html. The MPL permits such -portions to be distributed with code not governed by MPL, as long -as the requirements of MPL are fulfilled for such portions. +public, with the proviso that copies of Original Work or Derivative Works that +You distribute shall be licensed under the Open Software License; + * to perform the Original Work publicly; and
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FIT- -NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE -ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CON- -NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * to display the Original Work publicly.
-Except as contained in this notice, the name of Aleksey Sanin shall not -be used in advertising or otherwise to promote the sale, use or other -deal- -ings in this Software without prior written authorization from him. + +2) Grant of Patent License. Licensor hereby grants You a world-wide, +royalty-free, non-exclusive, perpetual, sublicenseable license, under patent +claims owned or controlled by the Licensor that are embodied in the Original +Work as furnished by the Licensor, to make, use, sell and offer for sale the +Original Work and Derivative Works. +
-
The following software may be -included in this product: X11 XRender Extension; Use of any of this -software -is governed -by the terms of the license below:
-

Keith Packard, SuSE, -Inc.
-

-

X11 XRender Extension
-

-Copyright © 2000 SuSE, Inc. +3) Grant of Source Code License. The term "Source Code" means the preferred form +of the Original Work for making modifications to it and all available +documentation describing how to modify the Original Work. Licensor hereby agrees +to provide a machine-readable copy of the Source Code of the Original Work along +with each copy of the Original Work that Licensor distributes. Licensor reserves +the right to satisfy this obligation by placing a machine-readable copy of the +Source Code in an information repository reasonably calculated to permit +inexpensive and convenient access by You for as long as Licensor continues to +distribute the Original Work, and by publishing the address of that information +repository in a notice immediately following the copyright notice that applies +to the Original Work. +
-Permission to use, copy, modify, distribute, and sell this software and -its -documentation for any purpose is hereby granted without fee, provided -that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation, and that the name of SuSE not be used in advertising or -publicity pertaining to distribution of the software without specific, -written prior permission. SuSE makes no representations about the -suitability of this software for any purpose. It is provided "as is" -without express or implied warranty. +4) Exclusions From License Grant. Neither the names of Licensor, nor the names +of any contributors to the Original Work, nor any of their trademarks or service +marks, may be used to endorse or promote products derived from this Original +Work without express prior written permission of the Licensor. Nothing in this +License shall be deemed to grant any rights to trademarks, copyrights, patents, +trade secrets or any other intellectual property of Licensor except as expressly +stated herein. No patent license is granted to make, use, sell or offer to sell +embodiments of any patent claims other than the licensed claims defined in +Section 2. No right is granted to the trademarks of Licensor even if such marks +are included in the Original Work. Nothing in this License shall be interpreted +to prohibit Licensor from licensing under different terms from this License any +Original Work that Licensor otherwise would have a right to license. +
-SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -SuSE -BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY -DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +5) External Deployment. The term "External Deployment" means the use or +distribution of the Original Work or Derivative Works in any way such that the +Original Work or Derivative Works may be used by anyone other than You, whether +the Original Work or Derivative Works are distributed to those persons or made +available as an application intended for use over a computer network. As an +express condition for the grants of license hereunder, You agree that any +External Deployment by You of a Derivative Work shall be deemed a distribution +and shall be licensed to all under the terms of this License, as prescribed in +section 1(c) herein. +
-
The following software may be -included in this product: XT; Use of any of this -software -is governed -by the terms of the license below:
-

James Clark, Bill -Lindsey
-

-

XT
-

-Copyright (c) 1998, 1999 James Clark +6) Attribution Rights. You must retain, in the Source Code of any Derivative +Works that You create, all copyright, patent or trademark notices from the +Source Code of the Original Work, as well as any notices of licensing and any +descriptive text identified therein as an "Attribution Notice." You must cause +the Source Code for any Derivative Works that You create to carry a prominent +Attribution Notice reasonably calculated to inform recipients that You have +modified the Original Work. +
-Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -``Software''), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: +7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the +copyright in and to the Original Work and the patent rights granted herein by +Licensor are owned by the Licensor or are sublicensed to You under the terms of +this License with the permission of the contributor(s) of those copyrights and +patent rights. Except as expressly stated in the immediately proceeding +sentence, the Original Work is provided under this License on an "AS IS" BASIS +and WITHOUT WARRANTY, either express or implied, including, without limitation, +the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. +This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No +license to Original Work is granted hereunder except under this disclaimer. +
-The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +8) Limitation of Liability. Under no circumstances and under no legal theory, +whether in tort (including negligence), contract, or otherwise, shall the +Licensor be liable to any person for any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +the use of the Original Work including, without limitation, damages for loss of +goodwill, work stoppage, computer failure or malfunction, or any and all other +commercial damages or losses. This limitation of liability shall not apply to +liability for death or personal injury resulting from Licensor's negligence to +the extent applicable law prohibits such limitation. Some jurisdictions do not +allow the exclusion or limitation of incidental or consequential damages, so +this exclusion and limitation may not apply to You. +
-THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, -EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL JAMES CLARK BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. +9) Acceptance and Termination. If You distribute copies of the Original Work or +a Derivative Work, You must make a reasonable effort under the circumstances to +obtain the express assent of recipients to the terms of this License. Nothing +else but this License (or another written agreement between Licensor and You) +grants You permission to create Derivative Works based upon the Original Work or +to exercise any of the rights granted in Section 1 herein, and any attempt to do +so except under the terms of this License (or another written agreement between +Licensor and You) is expressly prohibited by U.S. copyright law, the equivalent +laws of other countries, and by international treaty. Therefore, by exercising +any of the rights granted to You in Section 1 herein, You indicate Your +acceptance of this License and all of its terms and conditions. This License +shall terminate immediately and you may no longer exercise any of the rights +granted to You by this License upon Your failure to honor the proviso in Section +1(c) herein. +
-Except as contained in this notice, the name of James Clark shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in this Software without prior written authorization -from James Clark. +10) Termination for Patent Action. This License shall terminate automatically +and You may no longer exercise any of the rights granted to You by this License +as of the date You commence an action, including a cross-claim or counterclaim, +against Licensor or any licensee alleging that the Original Work infringes a +patent. This termination provision shall not apply for an action alleging patent +infringement by combinations of the Original Work with other software or hardware. +
+11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this +License may be brought only in the courts of a jurisdiction wherein the Licensor +resides or in which Licensor conducts its primary business, and under the laws +of that jurisdiction excluding its conflict-of-law provisions. The application +of the United Nations Convention on Contracts for the International Sale of +Goods is expressly excluded. Any use of the Original Work outside the scope of +this License or after its termination shall be subject to the requirements and +penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et seq., the equivalent +laws of other countries, and international treaty. This section shall survive +the termination of this License. +
-Copyright (c) 2002 Bill Lindsey +12) Attorneys Fees. In any action to enforce the terms of this License or +seeking damages relating thereto, the prevailing party shall be entitled to +recover its costs and expenses, including, without limitation, reasonable +attorneys' fees and costs incurred in connection with such action, including any +appeal of such action. This section shall survive the termination of this License. +
-Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -``Software''), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: +13) Miscellaneous. This License represents the complete agreement concerning the +subject matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent necessary to +make it enforceable. +
-The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. -Substantial portions of the Software are copyrighted by James Clark. -Copying permissions and restrictions for those portions are covered -in the file "copyingjc.txt" +14) Definition of "You" in This License. "You" throughout this License, whether +in upper or lower case, means an individual or a legal entity exercising rights +under, and complying with all of the terms of, this License. For legal entities, +"You" includes any entity that controls, is controlled by, or is under common +control with you. For purposes of this definition, "control" means (i) the +power, direct or indirect, to cause the direction or management of such entity, +whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or +more of the outstanding shares, or (iii) beneficial ownership of such entity. +
-THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, -EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL BILL LINDSEY BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. +15) Right to Use. You may use the Original Work in all ways not otherwise +restricted or conditioned by this License or by law, and Licensor promises not +to interfere with or be responsible for such uses by You. +
-Except as contained in this notice, the name of Bill Lindsey shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in this Software without prior written authorization -from Bill Lindsey. +This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. +Permission is hereby granted to copy and distribute this license without +modification. This license may not be modified without the express written +permission of its copyright owner.
+ + + + +
The following software may be -included in this product:zlib; Use of any of this software -is governed -by the terms of the license below:
-

Jean-Loup Gailly, -Mark Adler
+included in this product: Russian thesaurus; Use of any of this software +is governed by the terms of the license below:
+

Mikhail Korolyov

-

zlib
+

Russian thesaurus

-(C) 1995-2002 Jean-loup Gailly and Mark Adler
-This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions:

-1. The origin of this software must not be misrepresented; you must not -claim that you wrote the original software. If you use this software in -a product, an acknowledgment in the product documentation would be -appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not -be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source -distribution.
- -
The following software may be -included in this product: Mozilla, Mozilla Address Book, NP SDK: Use of -any of this -software -is governed -by the terms of the license below:
-

The Mozilla Foundation
+jump to GNU Lesser General Public License
+ + + + + + + +
The following software may be +included in this product: TWAIN; Use of any of this +software +is governed +by the terms of the license below:
+

TWAIN Working Group
+

+

TWAIN
+

+ +
+The TWAIN License +
+The TWAIN Working Group grants customer ("Customer") the worldwide, +royalty-free, non-exclusive license to reproduce and distribute the software and +documentation of the TWAIN toolkit ("TWAIN Toolkit"). The TWAIN Toolkit was +designed to be used by third parties to assist them in becoming compliant with +the TWAIN standard, but it has not been developed to the standards of a +commercial product. Consequently, the TWAIN toolkit is provided AS IS without +any warranty. THE TWAIN Working Group disclaims all warranties in the TWAIN +toolkit whether implied, express or statutory, including, without limitation, +the implied warranties of merchantability, noninfringement of third party rights +and fitness for a particular purpose. The TWAIN Working Group disclaims all +liability for damages, whether direct, indirect, special, incidental, or +consequential, arising from the reproduction, distribution, modification, or +other use of the TWAIN Toolkit. +
+As a condition of this license, Customer agrees to include in software programs +based in whole or in part on the TWAIN Toolkit the following providions in (i) +the header or similar file in such software and (ii) prominently in its +documentation and to require its sublicensees to include these provisions in +similar locations: The TWAIN Toolkit is distributed as is. The developer and +distributors of the TWAIN Toolkit expressly disclaim all implied, express or +statutory warranties including, without limitation, the implied warranties of +merchantability, noninfringement of third party rights and fitness for a +particular purpose. Neither the developers nor the distributors will be liable +for damages, whether direct, indirect, special, incidental, or consequential, as +a result of the reproduction, modification, distribution or other use of the +TWAIN Toolkit. +
+ + + + + +
The following software may be +included in this product: Unicode's CLDR data repository; Use of any of this software +is governed by the terms of the license below:
+

Unicode, Inc.
+

+

Unicode CLDR data repository
+

+
+Copyright 1991-2005 Unicode, Inc. All rights reserved. Distributed under +the Terms of Use in http://www.unicode.org/copyright.html. +
+Permission is hereby granted, free of charge, to any person obtaining a copy +of the Unicode data files and any associated documentation (the "Data Files") +or Unicode software and any associated documentation (the "Software") to deal +in the Data Files or Software without restriction, including without +limitation the rights to use, copy, modify, merge, publish, distribute, and/or +sell copies of the Data Files or Software, and to permit persons to whom the +Data Files or Software are furnished to do so, provided that (a) the above +copyright notice(s) and this permission notice appear with all copies of the +Data Files or Software, (b) both the above copyright notice(s) and this +permission notice appear in associated documentation, and (c) there is clear +notice in each modified Data File or in the Software as well as in the +documentation associated with the Data File(s) or Software that the data or +software has been modified. +
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD +PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN +THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR +PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE +DATA FILES OR SOFTWARE. +
+Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in these Data Files or Software without prior written authorization of the +copyright holder. +
+ + + + + + + +
The following software may be +included in this product: unixODBC; Use of any of this +software +is governed +by the terms of the license below:
+

unixODBC.org
+

+

unixODBC
+

+jump to LGPL
+ + + + + + + +
The following software may be +included in this product: vigra; Use of any of this +software +is governed +by the terms of the license below:
+

Ullrich Koethe
+

+

vigra
+

+ +
+The VIGRA Artistic License +
+========================== +
+(modeled after the Perl Artistic License) +
+ +
+ +Preamble +
+-------- +
+ +
+The intent of this document is to state the conditions under which +VIGRA may be copied, such that the author maintains some +semblance of artistic control over the development of the library, +while giving the users of the library the right to use and +distribute VIGRA in a more-or-less customary fashion, plus the +right to make reasonable modifications. +
+ + +Definitions +
+----------- +
+ +"Copyright Holder" of the VIGRA library is +Ullrich Koethe, Cognitive Systems Group, University of Hamburg, Germany. +
+ +"Library" refers to the collection of files distributed by the +Copyright Holder under the name "VIGRA" (including this +LICENSE file and all accompanying documentation), and derivatives of that +collection of files created through textual modification. +
+ +"Standard Version" refers to the Library if it has not been +modified, or has been modified in accordance with the wishes of the +Copyright Holder as specified below. +
+ +"You" is you, if you're thinking about using, copying, modifying or +distributing this Library. +
+ +"Freely Available" means that no fee is charged for the item. +It also means that recipients of the item may redistribute it +under the same conditions they received it. +
+ +"Reasonable copying fee" is whatever you can justify on the basis +of media cost, duplication charges, time of people involved, and so +on. (You will not be required to justify it to the Copyright Holder, +but only to the computing community at large as a market that must +bear the fee.) +
+ + +License terms +
+------------- +
+ +1. You may make and give away verbatim copies of the + Standard Version of this Library without restriction, provided that + you duplicate all of the original copyright notices, this license, + and associated disclaimers. +
+ +2. The Standard Version of the Library may be distributed as part + of a collection of software, provided no more than a reasonable + copying fee is charged for the software collection. +
+ +3. You may apply bug fixes and portability fixes + derived from the Public Domain or from the Copyright Holder. A + Library modified in such a way shall still be considered the + Standard Version. +
+ +4. You may otherwise modify your copy of this Library in any way, + provided that you insert a prominent notice in each changed file + stating how and when you changed that file, and provided that you do + at least ONE of the following: +
+ + a. place your modifications in the Public Domain or otherwise + make them Freely Available, for example by allowing the Copyright + Holder to include your modifications in the Standard Version of + the Library. +
+ + b. use the modified Library only within your corporation or + organization. +
+ + c. make other distribution arrangements with the Copyright + Holder. +
+ +5. You may distribute programs which use this Library + in object code or executable form without restriction. +
+ +6. Any object code generated as a result of using this Library + does not fall under the copyright of this Library, but + belongs to whomever generated it, and may be sold commercially. +
+ +7. The name of the Copyright Holder or the Library may not be used to + endorse or promote products derived from this software without + specific prior written permission. +
+ +8. THIS LIBRARY IS PROVIDED AS IS AND WITHOUT ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +
+ + IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL, + INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + OR NOT ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR ON ANY + THEORY OF LIABILITY ARISING OUT OF OR IN CONNECTION WITH THE USE + OR PERFORMANCE OF THIS LIBRARY. +
+ + + + + + +
The following software may be +included in this product: Xalan; Use of any of this +software is governed by the terms of the license below:
+

The Apache Software Foundation
+

+

Xalan
+

+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+ + + + + + + +
The following software may be +included in this product: XML Security Library (xmlsec); Use of any of this +software +is governed +by the terms of the license below:
+

Aleksey Sanin
+

+

XML Security Library (xmlsec)
+

+xmlsec, xmlsec-openssl, xmlsec-gnutls libraries +
+------------------------------------------------------------------------------ +
+ +Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved. +
+ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: +
+ +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +
+ +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +
+ +Except as contained in this notice, the name of Aleksey Sanin shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from him. +
+ +
+ +xmlsec-nss library +
+------------------------------------------------------------------------------ +
+Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved. +
+Copyright (c) 2003 America Online, Inc. All rights reserved. +
+ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: +
+ +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +
+ +Portions of the Software were created using source code and/or APIs +governed by the Mozilla Public License (MPL). The MPL is available +at http://www.mozilla.org/MPL/MPL-1.1.html. The MPL permits such +portions to be distributed with code not governed by MPL, as long +as the requirements of MPL are fulfilled for such portions. +
+ +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +
+ +Except as contained in this notice, the name of Aleksey Sanin shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from him. +
+ + + + + + + + +
The following software may be +included in this product: X11 XRender Extension; Use of any of this +software +is governed +by the terms of the license below:
+

Keith Packard, SuSE, Inc.
+

+

X11 XRender Extension
+

+Copyright © 2000 SuSE, Inc. +
+Permission to use, copy, modify, distribute, and sell this software and +its +documentation for any purpose is hereby granted without fee, provided +that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of SuSE not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission. SuSE makes no representations about the +suitability of this software for any purpose. It is provided "as is" +without express or implied warranty. +
+SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +SuSE +BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +
+ + + + + + + +
The following software may be +included in this product: XT; Use of any of this +software +is governed +by the terms of the license below:
+

James Clark, Bill Lindsey
+

+

XT
+

+Copyright (c) 1998, 1999 James Clark +
+Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +``Software''), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: +
+The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. +
+THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, +EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL JAMES CLARK BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. +
+Except as contained in this notice, the name of James Clark shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from James Clark. +
+
+Copyright (c) 2002 Bill Lindsey +
+Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +``Software''), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: +
+The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. +Substantial portions of the Software are copyrighted by James Clark. +Copying permissions and restrictions for those portions are covered +in the file "copyingjc.txt" +
+THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, +EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL BILL LINDSEY BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. +
+Except as contained in this notice, the name of Bill Lindsey shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from Bill Lindsey. +
+ + + + + + + +
The following software may be +included in this product:zlib; Use of any of this software +is governed +by the terms of the license below:
+

Jean-Loup Gailly, Mark Adler
+

+

zlib
+

+(C) 1995-2002 Jean-loup Gailly and Mark Adler
+This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software.
+Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not +claim that you wrote the original software. If you use this software in +a product, an acknowledgment in the product documentation would be +appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not +be misrepresented as being the original software.
+3. This notice may not be removed or altered from any source +distribution.
+ + + + + + + + Mozilla Public License version 1.1 + + + +
The following software may be +included in this product: Mozilla, Mozilla Address Book, NP SDK: Use of any of this +software +is governed +by the terms of the license below:
+

The Mozilla Foundation
+

+

Mozilla Address Book
+

+
MOZILLA PUBLIC LICENSE +
+Version 1.1 +

+
+ +

1. Definitions. +

+
    + 1.0.1. "Commercial Use" means distribution or otherwise +making +the Covered Code available to a third party. +

    1.1. ''Contributor'' means each entity that creates or +contributes +to the creation of Modifications.

    +

    1.2. ''Contributor Version'' means the combination of the +Original +Code, prior Modifications used by a Contributor, and the Modifications +made by that particular Contributor.

    +

    1.3. ''Covered Code'' means the Original Code or +Modifications +or the combination of the Original Code and Modifications, in each case +including portions thereof.

    +

    1.4. ''Electronic Distribution Mechanism'' means a +mechanism +generally accepted in the software development community for the +electronic +transfer of data.

    +

    1.5. ''Executable'' means Covered Code in any form other +than +Source Code.

    +

    1.6. ''Initial Developer'' means the individual or entity +identified +as the Initial Developer in the Source Code notice required by Exhibit +A.

    +

    1.7. ''Larger Work'' means a work which combines Covered +Code +or portions thereof with code not governed by the terms of this +License.

    +

    1.8. ''License'' means this document.

    +

    1.8.1. "Licensable" means having the right to grant, to the +maximum +extent possible, whether at the time of the initial grant or +subsequently +acquired, any and all of the rights conveyed herein.

    +

    1.9. ''Modifications'' means any addition to or deletion +from +the substance or structure of either the Original Code or any previous +Modifications. When Covered Code is released as a series of files, a +Modification +is:

    +
      + A. Any addition to or deletion from the contents of a file +containing +Original Code or previous Modifications. +

      B. Any new file that contains any part of the Original +Code or +previous Modifications.

      +
    + 1.10. ''Original Code'' means Source Code +of computer software +code +which is described in the Source Code notice required by Exhibit A +as Original Code, and which, at the time of its release under this +License +is not already Covered Code governed by this License. +

    1.10.1. "Patent Claims" means any patent claim(s), now +owned +or hereafter acquired, including without limitation,  method, +process, +and apparatus claims, in any patent Licensable by grantor.

    +

    1.11. ''Source Code'' means the preferred form of the +Covered +Code for making modifications to it, including all modules it contains, +plus any associated interface definition files, scripts used to control +compilation and installation of an Executable, or source code +differential +comparisons against either the Original Code or another well known, +available +Covered Code of the Contributor's choice. The Source Code can be in a +compressed +or archival form, provided the appropriate decompression or +de-archiving +software is widely available for no charge.

    +

    1.12. "You'' (or "Your")  means an individual or a +legal +entity exercising rights under, and complying with all of the terms of, +this License or a future version of this License issued under Section +6.1. +For legal entities, "You'' includes any entity which controls, is +controlled +by, or is under common control with You. For purposes of this +definition, +"control'' means (a) the power, direct or indirect, to cause the +direction +or management of such entity, whether by contract or otherwise, or (b) +ownership of more than fifty percent (50%) of the outstanding shares or +beneficial ownership of such entity.

    +
+ +2. Source Code License. + +
    + 2.1. The Initial Developer Grant.
    +The Initial Developer hereby grants You a world-wide, royalty-free, +non-exclusive license, subject to third party intellectual property +claims: +
      + (a)  under intellectual property rights (other +than +patent or trademark) Licensable by Initial Developer to use, reproduce, +modify, display, perform, sublicense and distribute the Original Code +(or +portions thereof) with or without Modifications, and/or as part of a +Larger +Work; and +

      (b) under Patents Claims infringed by the making, using +or selling +of Original Code, to make, have made, use, practice, sell, and offer +for +sale, and/or otherwise dispose of the Original Code (or portions +thereof).

      +
        +
          +  +
        +
      + (c) the licenses granted in this Section 2.1(a) and (b) are +effective +on the date Initial Developer first distributes Original Code under the +terms of this License. +

      (d) Notwithstanding Section 2.1(b) above, no patent +license is +granted: 1) for code that You delete from the Original Code; 2) +separate +from the Original Code;  or 3) for infringements caused by: i) the +modification of the Original Code or ii) the combination of the +Original +Code with other software or devices.

      +
    + 2.2. Contributor Grant.
    +Subject to third party intellectual property claims, each Contributor +hereby grants You a world-wide, royalty-free, non-exclusive license +

      + (a)  under intellectual property rights (other +than +patent or trademark) Licensable by Contributor, to use, reproduce, +modify, +display, perform, sublicense and distribute the Modifications created +by +such Contributor (or portions thereof) either on an unmodified basis, +with +other Modifications, as Covered Code and/or as part of a Larger Work; +and +

      (b) under Patent Claims infringed by the making, using, +or selling +of  Modifications made by that Contributor either alone and/or in +combination with its Contributor Version (or portions of such +combination), +to make, use, sell, offer for sale, have made, and/or otherwise dispose +of: 1) Modifications made by that Contributor (or portions thereof); +and +2) the combination of  Modifications made by that Contributor with +its Contributor Version (or portions of such combination).

      +

      (c) the licenses granted in Sections 2.2(a) and 2.2(b) +are effective +on the date Contributor first makes Commercial Use of the Covered Code. +

      +

      (d)    Notwithstanding Section 2.2(b) +above, no +patent license is granted: 1) for any code that Contributor has deleted +from the Contributor Version; 2)  separate from the Contributor +Version;  +3)  for infringements caused by: i) third party modifications of +Contributor +Version or ii)  the combination of Modifications made by that +Contributor +with other software  (except as part of the Contributor Version) +or +other devices; or 4) under Patent Claims infringed by Covered Code in +the +absence of Modifications made by that Contributor.

      +
    +
+ +


+3. Distribution Obligations. +

+
    + 3.1. Application of License.
    +The Modifications which You create or to which You contribute are +governed +by the terms of this License, including without limitation Section 2.2. +The Source Code version of Covered Code may be distributed only under +the +terms of this License or a future version of this License released +under +Section 6.1, and You must include a copy of this License with +every +copy of the Source Code You distribute. You may not offer or impose any +terms on any Source Code version that alters or restricts the +applicable +version of this License or the recipients' rights hereunder. However, +You +may include an additional document offering the additional rights +described +in Section 3.5. +

    3.2. Availability of Source Code.
    +Any Modification which You create or to which You contribute must be +made available in Source Code form under the terms of this License +either +on the same media as an Executable version or via an accepted +Electronic +Distribution Mechanism to anyone to whom you made an Executable version +available; and if made available via Electronic Distribution Mechanism, +must remain available for at least twelve (12) months after the date it +initially became available, or at least six (6) months after a +subsequent +version of that particular Modification has been made available to such +recipients. You are responsible for ensuring that the Source Code +version +remains available even if the Electronic Distribution Mechanism is +maintained +by a third party.

    +

    3.3. Description of Modifications.
    +You must cause all Covered Code to which You contribute to contain +a file documenting the changes You made to create that Covered Code and +the date of any change. You must include a prominent statement that the +Modification is derived, directly or indirectly, from Original Code +provided +by the Initial Developer and including the name of the Initial +Developer +in (a) the Source Code, and (b) in any notice in an Executable version +or related documentation in which You describe the origin or ownership +of the Covered Code.

    +

    3.4. Intellectual Property Matters

    +
      + (a) Third Party Claims.
      +If Contributor has knowledge that a license under a third party's +intellectual +property rights is required to exercise the rights granted by such +Contributor +under Sections 2.1 or 2.2, Contributor must include a text file with +the +Source Code distribution titled "LEGAL'' which describes the claim and +the party making the claim in sufficient detail that a recipient will +know +whom to contact. If Contributor obtains such knowledge after the +Modification +is made available as described in Section 3.2, Contributor shall +promptly +modify the LEGAL file in all copies Contributor makes available +thereafter +and shall take other steps (such as notifying appropriate mailing lists +or newsgroups) reasonably calculated to inform those who received the +Covered +Code that new knowledge has been obtained. +

      (b) Contributor APIs.
      +If Contributor's Modifications include an application programming +interface +and Contributor has knowledge of patent licenses which are reasonably +necessary +to implement that API, Contributor must also include this information +in +the LEGAL file.

      +
    +          (c)    +Representations. +
      +Contributor represents that, except as disclosed pursuant to Section +3.4(a) above, Contributor believes that Contributor's Modifications are +Contributor's original creation(s) and/or Contributor has sufficient +rights +to grant the rights conveyed by this License. +
    + +


    + 3.5. Required Notices.
    +You must duplicate the notice in Exhibit A in each file of the +Source Code.  If it is not possible to put such notice in a +particular +Source Code file due to its structure, then You must include such +notice +in a location (such as a relevant directory) where a user would be +likely +to look for such a notice.  If You created one or more +Modification(s) +You may add your name as a Contributor to the notice described in Exhibit +A.  You must also duplicate this License in any documentation +for the Source Code where You describe recipients' rights or ownership +rights relating to Covered Code.  You may choose to offer, and to +charge a fee for, warranty, support, indemnity or liability obligations +to one or more recipients of Covered Code. However, You may do so only +on Your own behalf, and not on behalf of the Initial Developer or any +Contributor. +You must make it absolutely clear than any such warranty, support, +indemnity +or liability obligation is offered by You alone, and You hereby agree +to +indemnify the Initial Developer and every Contributor for any liability +incurred by the Initial Developer or such Contributor as a result of +warranty, +support, indemnity or liability terms You offer.

    +

    3.6. Distribution of Executable Versions.
    +You may distribute Covered Code in Executable form only if the +requirements +of Section 3.1-3.5 have been met for that Covered Code, and if +You +include a notice stating that the Source Code version of the Covered +Code +is available under the terms of this License, including a description +of +how and where You have fulfilled the obligations of Section 3.2. +The notice must be conspicuously included in any notice in an +Executable +version, related documentation or collateral in which You describe +recipients' +rights relating to the Covered Code. You may distribute the Executable +version of Covered Code or ownership rights under a license of Your +choice, +which may contain terms different from this License, provided that You +are in compliance with the terms of this License and that the license +for +the Executable version does not attempt to limit or alter the +recipient's +rights in the Source Code version from the rights set forth in this +License. +If You distribute the Executable version under a different license You +must make it absolutely clear that any terms which differ from this +License +are offered by You alone, not by the Initial Developer or any +Contributor. +You hereby agree to indemnify the Initial Developer and every +Contributor +for any liability incurred by the Initial Developer or such Contributor +as a result of any such terms You offer.

    +

    3.7. Larger Works.
    +You may create a Larger Work by combining Covered Code with other code +not governed by the terms of this License and distribute the Larger +Work +as a single product. In such a case, You must make sure the +requirements +of this License are fulfilled for the Covered Code.

    +
+ +4. Inability to Comply Due to Statute or Regulation. +
    +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Code due to statute, +judicial order, or regulation then You must: (a) comply with the terms +of this License to the maximum extent possible; and (b) describe the +limitations +and the code they affect. Such description must be included in the +LEGAL +file described in Section 3.4 and must be included with all +distributions +of the Source Code. Except to the extent prohibited by statute or +regulation, +such description must be sufficiently detailed for a recipient of +ordinary +skill to be able to understand it. +
+ +5. Application of this License. +
    +This License applies to code to which the Initial Developer has +attached +the notice in Exhibit A and to related Covered Code. +
+ +6. Versions of the License. + +
    + 6.1. New Versions.
    +Netscape Communications Corporation (''Netscape'') may publish revised +and/or new versions of the License from time to time. Each version will +be given a distinguishing version number. +

    6.2. Effect of New Versions.
    +Once Covered Code has been published under a particular version of +the License, You may always continue to use it under the terms of that +version. You may also choose to use such Covered Code under the terms +of +any subsequent version of the License published by Netscape. No one +other +than Netscape has the right to modify the terms applicable to Covered +Code +created under this License.

    +

    6.3. Derivative Works.
    +If You create or use a modified version of this License (which you +may only do in order to apply it to code which is not already Covered +Code +governed by this License), You must (a) rename Your license so that the +phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", +''NPL'' +or any confusingly similar phrase do not appear in your license (except +to note that your license differs from this License) and (b) otherwise +make it clear that Your version of the license contains terms which +differ +from the Mozilla Public License and Netscape Public License. (Filling +in +the name of the Initial Developer, Original Code or Contributor in the +notice described in Exhibit A shall not of themselves be deemed +to be modifications of this License.)

    +
+ +7. DISCLAIMER OF WARRANTY. +
    +COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, +WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT +LIMITATION, +WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT +FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE +QUALITY +AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED +CODE +PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY +OTHER +CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR +CORRECTION. +THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS +LICENSE. +NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS +DISCLAIMER. +
+ +8. TERMINATION. + +
    + 8.1.  This License and the rights granted hereunder will +terminate automatically if You fail to comply with terms herein and +fail +to cure such breach within 30 days of becoming aware of the breach. All +sublicenses to the Covered Code which are properly granted shall +survive +any termination of this License. Provisions which, by their nature, +must +remain in effect beyond the termination of this License shall survive. +

    8.2.  If You initiate litigation by asserting a +patent infringement +claim (excluding declatory judgment actions) against Initial Developer +or a Contributor (the Initial Developer or Contributor against whom You +file such action is referred to as "Participant")  alleging that:

    +

    (a)  such Participant's Contributor Version directly +or +indirectly infringes any patent, then any and all rights granted by +such +Participant to You under Sections 2.1 and/or 2.2 of this License shall, +upon 60 days notice from Participant terminate prospectively, unless if +within 60 days after receipt of notice You either: (i)  agree in +writing +to pay Participant a mutually agreeable reasonable royalty for Your +past +and future use of Modifications made by such Participant, or (ii) +withdraw +Your litigation claim with respect to the Contributor Version against +such +Participant.  If within 60 days of notice, a reasonable royalty +and +payment arrangement are not mutually agreed upon in writing by the +parties +or the litigation claim is not withdrawn, the rights granted by +Participant +to You under Sections 2.1 and/or 2.2 automatically terminate at the +expiration +of the 60 day notice period specified above.

    +

    (b)  any software, hardware, or device, other than +such +Participant's Contributor Version, directly or indirectly infringes any +patent, then any rights granted to You by such Participant under +Sections +2.1(b) and 2.2(b) are revoked effective as of the date You first made, +used, sold, distributed, or had made, Modifications made by that +Participant.

    +

    8.3.  If You assert a patent infringement claim +against +Participant alleging that such Participant's Contributor Version +directly +or indirectly infringes any patent where such claim is resolved (such +as +by license or settlement) prior to the initiation of patent +infringement +litigation, then the reasonable value of the licenses granted by such +Participant +under Sections 2.1 or 2.2 shall be taken into account in determining +the +amount or value of any payment or license.

    +

    8.4.  In the event of termination under Sections 8.1 +or +8.2 above,  all end user license agreements (excluding +distributors +and resellers) which have been validly granted by You or any +distributor +hereunder prior to termination shall survive termination.

    +
+ +9. LIMITATION OF LIABILITY. +
    +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT +(INCLUDING +NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, +ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY +SUPPLIER +OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, +SPECIAL, +INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, +WITHOUT +LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER +FAILURE +OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN +IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH +DAMAGES. +THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR +PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT +APPLICABLE +LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE +EXCLUSION +OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION +AND LIMITATION MAY NOT APPLY TO YOU. +
+ +10. U.S. GOVERNMENT END USERS. +
    +The Covered Code is a ''commercial item,'' as that term is defined +in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer +software'' +and ''commercial computer software documentation,'' as such terms are +used +in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and +48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. +Government +End Users acquire Covered Code with only those rights set forth herein. +
+ +11. MISCELLANEOUS. +
    +This License represents the complete agreement concerning subject +matter +hereof. If any provision of this License is held to be unenforceable, +such +provision shall be reformed only to the extent necessary to make it +enforceable. +This License shall be governed by California law provisions (except to +the extent applicable law, if any, provides otherwise), excluding its +conflict-of-law +provisions. With respect to disputes in which at least one party is a +citizen +of, or an entity chartered or registered to do business in the United +States +of America, any litigation relating to this License shall be subject to +the jurisdiction of the Federal Courts of the Northern District of +California, +with venue lying in Santa Clara County, California, with the losing +party +responsible for costs, including without limitation, court costs and +reasonable +attorneys' fees and expenses. The application of the United Nations +Convention +on Contracts for the International Sale of Goods is expressly excluded. +Any law or regulation which provides that the language of a contract +shall +be construed against the drafter shall not apply to this License. +
+ +12. RESPONSIBILITY FOR CLAIMS. +
    +As between Initial Developer and the Contributors, each party is +responsible +for claims and damages arising, directly or indirectly, out of its +utilization +of rights under this License and You agree to work with Initial +Developer +and Contributors to distribute such responsibility on an equitable +basis. +Nothing herein is intended or shall be deemed to constitute any +admission +of liability. +
+ +13. MULTIPLE-LICENSED CODE. +
    +Initial Developer may designate portions of the Covered Code as +“Multiple-Licensed”.  +“Multiple-Licensed” means that the Initial Developer permits you to +utilize +portions of the Covered Code under Your choice of the MPL or the +alternative +licenses, if any, specified by the Initial Developer in the file +described +in Exhibit A. +
+ +


+EXHIBIT A -Mozilla Public License. +

+
    +``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 Original Code is ______________________________________.

    +

    The Initial Developer of the Original Code is +________________________. +Portions created by
    + ______________________ are Copyright (C) ______ +_______________________. +All Rights
    +Reserved.

    +

    Contributor(s): ______________________________________.

    +

    Alternatively, the contents of this file may be used under the +terms +of the _____ license (the  “[___] License”), in which case the +provisions +of [______] License are applicable  instead of those above.  +If you wish to allow use of your version of this file only under the +terms +of the [____] License and not to allow others to use your version of +this +file under the MPL, indicate your decision by deleting  the +provisions +above and replace  them with the notice and other provisions +required +by the [___] License.  If you do not delete the provisions above, +a recipient may use your version of this file under either the MPL or +the +[___] License."

    +

    [NOTE: The text of this Exhibit A may differ slightly from the +text +of the notices in the Source Code files of the Original Code. You +should +use the text of this Exhibit A rather than the text found in the +Original +Code Source Code for Your Modifications.]

    +

    +
+ + + + + + +
+

FSF

-

Mozilla Address Book
-

-
MOZILLA PUBLIC LICENSE -
-Version 1.1 -

-
- -

1. Definitions. -

-
    - 1.0.1. "Commercial Use" means distribution or otherwise -making -the Covered Code available to a third party. -

    1.1. ''Contributor'' means each entity that creates or -contributes -to the creation of Modifications.

    -

    1.2. ''Contributor Version'' means the combination of the -Original -Code, prior Modifications used by a Contributor, and the Modifications -made by that particular Contributor.

    -

    1.3. ''Covered Code'' means the Original Code or -Modifications -or the combination of the Original Code and Modifications, in each case -including portions thereof.

    -

    1.4. ''Electronic Distribution Mechanism'' means a -mechanism -generally accepted in the software development community for the -electronic -transfer of data.

    -

    1.5. ''Executable'' means Covered Code in any form other -than -Source Code.

    -

    1.6. ''Initial Developer'' means the individual or entity -identified -as the Initial Developer in the Source Code notice required by Exhibit -A.

    -

    1.7. ''Larger Work'' means a work which combines Covered -Code -or portions thereof with code not governed by the terms of this -License.

    -

    1.8. ''License'' means this document.

    -

    1.8.1. "Licensable" means having the right to grant, to the -maximum -extent possible, whether at the time of the initial grant or -subsequently -acquired, any and all of the rights conveyed herein.

    -

    1.9. ''Modifications'' means any addition to or deletion -from -the substance or structure of either the Original Code or any previous -Modifications. When Covered Code is released as a series of files, a -Modification -is:

    -
      - A. Any addition to or deletion from the contents of a file -containing -Original Code or previous Modifications. -

      B. Any new file that contains any part of the Original -Code or -previous Modifications.

      -
    - 1.10. ''Original Code'' means Source Code -of computer software -code -which is described in the Source Code notice required by Exhibit A -as Original Code, and which, at the time of its release under this -License -is not already Covered Code governed by this License. -

    1.10.1. "Patent Claims" means any patent claim(s), now -owned -or hereafter acquired, including without limitation,  method, -process, -and apparatus claims, in any patent Licensable by grantor.

    -

    1.11. ''Source Code'' means the preferred form of the -Covered -Code for making modifications to it, including all modules it contains, -plus any associated interface definition files, scripts used to control -compilation and installation of an Executable, or source code -differential -comparisons against either the Original Code or another well known, -available -Covered Code of the Contributor's choice. The Source Code can be in a -compressed -or archival form, provided the appropriate decompression or -de-archiving -software is widely available for no charge.

    -

    1.12. "You'' (or "Your")  means an individual or a -legal -entity exercising rights under, and complying with all of the terms of, -this License or a future version of this License issued under Section -6.1. -For legal entities, "You'' includes any entity which controls, is -controlled -by, or is under common control with You. For purposes of this -definition, -"control'' means (a) the power, direct or indirect, to cause the -direction -or management of such entity, whether by contract or otherwise, or (b) -ownership of more than fifty percent (50%) of the outstanding shares or -beneficial ownership of such entity.

    -
- -2. Source Code License. - -
    - 2.1. The Initial Developer Grant.
    -The Initial Developer hereby grants You a world-wide, royalty-free, -non-exclusive license, subject to third party intellectual property -claims: -
      - (a)  under intellectual property rights (other -than -patent or trademark) Licensable by Initial Developer to use, reproduce, -modify, display, perform, sublicense and distribute the Original Code -(or -portions thereof) with or without Modifications, and/or as part of a -Larger -Work; and -

      (b) under Patents Claims infringed by the making, using -or selling -of Original Code, to make, have made, use, practice, sell, and offer -for -sale, and/or otherwise dispose of the Original Code (or portions -thereof).

      -
        -
          -  -
        -
      - (c) the licenses granted in this Section 2.1(a) and (b) are -effective -on the date Initial Developer first distributes Original Code under the -terms of this License. -

      (d) Notwithstanding Section 2.1(b) above, no patent -license is -granted: 1) for code that You delete from the Original Code; 2) -separate -from the Original Code;  or 3) for infringements caused by: i) the -modification of the Original Code or ii) the combination of the -Original -Code with other software or devices.

      -
    - 2.2. Contributor Grant.
    -Subject to third party intellectual property claims, each Contributor -hereby grants You a world-wide, royalty-free, non-exclusive license -

      - (a)  under intellectual property rights (other -than -patent or trademark) Licensable by Contributor, to use, reproduce, -modify, -display, perform, sublicense and distribute the Modifications created -by -such Contributor (or portions thereof) either on an unmodified basis, -with -other Modifications, as Covered Code and/or as part of a Larger Work; -and -

      (b) under Patent Claims infringed by the making, using, -or selling -of  Modifications made by that Contributor either alone and/or in -combination with its Contributor Version (or portions of such -combination), -to make, use, sell, offer for sale, have made, and/or otherwise dispose -of: 1) Modifications made by that Contributor (or portions thereof); -and -2) the combination of  Modifications made by that Contributor with -its Contributor Version (or portions of such combination).

      -

      (c) the licenses granted in Sections 2.2(a) and 2.2(b) -are effective -on the date Contributor first makes Commercial Use of the Covered Code. -

      -

      (d)    Notwithstanding Section 2.2(b) -above, no -patent license is granted: 1) for any code that Contributor has deleted -from the Contributor Version; 2)  separate from the Contributor -Version;  -3)  for infringements caused by: i) third party modifications of -Contributor -Version or ii)  the combination of Modifications made by that -Contributor -with other software  (except as part of the Contributor Version) -or -other devices; or 4) under Patent Claims infringed by Covered Code in -the -absence of Modifications made by that Contributor.

      -
    -
- -


-3. Distribution Obligations. -

-
    - 3.1. Application of License.
    -The Modifications which You create or to which You contribute are -governed -by the terms of this License, including without limitation Section 2.2. -The Source Code version of Covered Code may be distributed only under -the -terms of this License or a future version of this License released -under -Section 6.1, and You must include a copy of this License with -every -copy of the Source Code You distribute. You may not offer or impose any -terms on any Source Code version that alters or restricts the -applicable -version of this License or the recipients' rights hereunder. However, -You -may include an additional document offering the additional rights -described -in Section 3.5. -

    3.2. Availability of Source Code.
    -Any Modification which You create or to which You contribute must be -made available in Source Code form under the terms of this License -either -on the same media as an Executable version or via an accepted -Electronic -Distribution Mechanism to anyone to whom you made an Executable version -available; and if made available via Electronic Distribution Mechanism, -must remain available for at least twelve (12) months after the date it -initially became available, or at least six (6) months after a -subsequent -version of that particular Modification has been made available to such -recipients. You are responsible for ensuring that the Source Code -version -remains available even if the Electronic Distribution Mechanism is -maintained -by a third party.

    -

    3.3. Description of Modifications.
    -You must cause all Covered Code to which You contribute to contain -a file documenting the changes You made to create that Covered Code and -the date of any change. You must include a prominent statement that the -Modification is derived, directly or indirectly, from Original Code -provided -by the Initial Developer and including the name of the Initial -Developer -in (a) the Source Code, and (b) in any notice in an Executable version -or related documentation in which You describe the origin or ownership -of the Covered Code.

    -

    3.4. Intellectual Property Matters

    -
      - (a) Third Party Claims.
      -If Contributor has knowledge that a license under a third party's -intellectual -property rights is required to exercise the rights granted by such -Contributor -under Sections 2.1 or 2.2, Contributor must include a text file with -the -Source Code distribution titled "LEGAL'' which describes the claim and -the party making the claim in sufficient detail that a recipient will -know -whom to contact. If Contributor obtains such knowledge after the -Modification -is made available as described in Section 3.2, Contributor shall -promptly -modify the LEGAL file in all copies Contributor makes available -thereafter -and shall take other steps (such as notifying appropriate mailing lists -or newsgroups) reasonably calculated to inform those who received the -Covered -Code that new knowledge has been obtained. -

      (b) Contributor APIs.
      -If Contributor's Modifications include an application programming -interface -and Contributor has knowledge of patent licenses which are reasonably -necessary -to implement that API, Contributor must also include this information -in -the LEGAL file.

      -
    -          (c)    -Representations. -
      -Contributor represents that, except as disclosed pursuant to Section -3.4(a) above, Contributor believes that Contributor's Modifications are -Contributor's original creation(s) and/or Contributor has sufficient -rights -to grant the rights conveyed by this License. -
    - -


    - 3.5. Required Notices.
    -You must duplicate the notice in Exhibit A in each file of the -Source Code.  If it is not possible to put such notice in a -particular -Source Code file due to its structure, then You must include such -notice -in a location (such as a relevant directory) where a user would be -likely -to look for such a notice.  If You created one or more -Modification(s) -You may add your name as a Contributor to the notice described in Exhibit -A.  You must also duplicate this License in any documentation -for the Source Code where You describe recipients' rights or ownership -rights relating to Covered Code.  You may choose to offer, and to -charge a fee for, warranty, support, indemnity or liability obligations -to one or more recipients of Covered Code. However, You may do so only -on Your own behalf, and not on behalf of the Initial Developer or any -Contributor. -You must make it absolutely clear than any such warranty, support, -indemnity -or liability obligation is offered by You alone, and You hereby agree -to -indemnify the Initial Developer and every Contributor for any liability -incurred by the Initial Developer or such Contributor as a result of -warranty, -support, indemnity or liability terms You offer.

    -

    3.6. Distribution of Executable Versions.
    -You may distribute Covered Code in Executable form only if the -requirements -of Section 3.1-3.5 have been met for that Covered Code, and if -You -include a notice stating that the Source Code version of the Covered -Code -is available under the terms of this License, including a description -of -how and where You have fulfilled the obligations of Section 3.2. -The notice must be conspicuously included in any notice in an -Executable -version, related documentation or collateral in which You describe -recipients' -rights relating to the Covered Code. You may distribute the Executable -version of Covered Code or ownership rights under a license of Your -choice, -which may contain terms different from this License, provided that You -are in compliance with the terms of this License and that the license -for -the Executable version does not attempt to limit or alter the -recipient's -rights in the Source Code version from the rights set forth in this -License. -If You distribute the Executable version under a different license You -must make it absolutely clear that any terms which differ from this -License -are offered by You alone, not by the Initial Developer or any -Contributor. -You hereby agree to indemnify the Initial Developer and every -Contributor -for any liability incurred by the Initial Developer or such Contributor -as a result of any such terms You offer.

    -

    3.7. Larger Works.
    -You may create a Larger Work by combining Covered Code with other code -not governed by the terms of this License and distribute the Larger -Work -as a single product. In such a case, You must make sure the -requirements -of this License are fulfilled for the Covered Code.

    -
- -4. Inability to Comply Due to Statute or Regulation. -
    -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Code due to statute, -judicial order, or regulation then You must: (a) comply with the terms -of this License to the maximum extent possible; and (b) describe the -limitations -and the code they affect. Such description must be included in the -LEGAL -file described in Section 3.4 and must be included with all -distributions -of the Source Code. Except to the extent prohibited by statute or -regulation, -such description must be sufficiently detailed for a recipient of -ordinary -skill to be able to understand it. -
- -5. Application of this License. -
    -This License applies to code to which the Initial Developer has -attached -the notice in Exhibit A and to related Covered Code. -
- -6. Versions of the License. - -
    - 6.1. New Versions.
    -Netscape Communications Corporation (''Netscape'') may publish revised -and/or new versions of the License from time to time. Each version will -be given a distinguishing version number. -

    6.2. Effect of New Versions.
    -Once Covered Code has been published under a particular version of -the License, You may always continue to use it under the terms of that -version. You may also choose to use such Covered Code under the terms -of -any subsequent version of the License published by Netscape. No one -other -than Netscape has the right to modify the terms applicable to Covered -Code -created under this License.

    -

    6.3. Derivative Works.
    -If You create or use a modified version of this License (which you -may only do in order to apply it to code which is not already Covered -Code -governed by this License), You must (a) rename Your license so that the -phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", -''NPL'' -or any confusingly similar phrase do not appear in your license (except -to note that your license differs from this License) and (b) otherwise -make it clear that Your version of the license contains terms which -differ -from the Mozilla Public License and Netscape Public License. (Filling -in -the name of the Initial Developer, Original Code or Contributor in the -notice described in Exhibit A shall not of themselves be deemed -to be modifications of this License.)

    -
- -7. DISCLAIMER OF WARRANTY. -
    -COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, -WITHOUT -WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT -LIMITATION, -WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT -FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE -QUALITY -AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED -CODE -PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY -OTHER -CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR -CORRECTION. -THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS -LICENSE. -NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS -DISCLAIMER. -
- -8. TERMINATION. - -
    - 8.1.  This License and the rights granted hereunder will -terminate automatically if You fail to comply with terms herein and -fail -to cure such breach within 30 days of becoming aware of the breach. All -sublicenses to the Covered Code which are properly granted shall -survive -any termination of this License. Provisions which, by their nature, -must -remain in effect beyond the termination of this License shall survive. -

    8.2.  If You initiate litigation by asserting a -patent infringement -claim (excluding declatory judgment actions) against Initial Developer -or a Contributor (the Initial Developer or Contributor against whom You -file such action is referred to as "Participant")  alleging that:

    -

    (a)  such Participant's Contributor Version directly -or -indirectly infringes any patent, then any and all rights granted by -such -Participant to You under Sections 2.1 and/or 2.2 of this License shall, -upon 60 days notice from Participant terminate prospectively, unless if -within 60 days after receipt of notice You either: (i)  agree in -writing -to pay Participant a mutually agreeable reasonable royalty for Your -past -and future use of Modifications made by such Participant, or (ii) -withdraw -Your litigation claim with respect to the Contributor Version against -such -Participant.  If within 60 days of notice, a reasonable royalty -and -payment arrangement are not mutually agreed upon in writing by the -parties -or the litigation claim is not withdrawn, the rights granted by -Participant -to You under Sections 2.1 and/or 2.2 automatically terminate at the -expiration -of the 60 day notice period specified above.

    -

    (b)  any software, hardware, or device, other than -such -Participant's Contributor Version, directly or indirectly infringes any -patent, then any rights granted to You by such Participant under -Sections -2.1(b) and 2.2(b) are revoked effective as of the date You first made, -used, sold, distributed, or had made, Modifications made by that -Participant.

    -

    8.3.  If You assert a patent infringement claim -against -Participant alleging that such Participant's Contributor Version -directly -or indirectly infringes any patent where such claim is resolved (such -as -by license or settlement) prior to the initiation of patent -infringement -litigation, then the reasonable value of the licenses granted by such -Participant -under Sections 2.1 or 2.2 shall be taken into account in determining -the -amount or value of any payment or license.

    -

    8.4.  In the event of termination under Sections 8.1 -or -8.2 above,  all end user license agreements (excluding -distributors -and resellers) which have been validly granted by You or any -distributor -hereunder prior to termination shall survive termination.

    -
- -9. LIMITATION OF LIABILITY. -
    -UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT -(INCLUDING -NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, -ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY -SUPPLIER -OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, -SPECIAL, -INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, -WITHOUT -LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER -FAILURE -OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN -IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH -DAMAGES. -THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR -PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT -APPLICABLE -LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE -EXCLUSION -OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION -AND LIMITATION MAY NOT APPLY TO YOU. -
- -10. U.S. GOVERNMENT END USERS. -
    -The Covered Code is a ''commercial item,'' as that term is defined -in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer -software'' -and ''commercial computer software documentation,'' as such terms are -used -in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and -48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. -Government -End Users acquire Covered Code with only those rights set forth herein. -
- -11. MISCELLANEOUS. -
    -This License represents the complete agreement concerning subject -matter -hereof. If any provision of this License is held to be unenforceable, -such -provision shall be reformed only to the extent necessary to make it -enforceable. -This License shall be governed by California law provisions (except to -the extent applicable law, if any, provides otherwise), excluding its -conflict-of-law -provisions. With respect to disputes in which at least one party is a -citizen -of, or an entity chartered or registered to do business in the United -States -of America, any litigation relating to this License shall be subject to -the jurisdiction of the Federal Courts of the Northern District of -California, -with venue lying in Santa Clara County, California, with the losing -party -responsible for costs, including without limitation, court costs and -reasonable -attorneys' fees and expenses. The application of the United Nations -Convention -on Contracts for the International Sale of Goods is expressly excluded. -Any law or regulation which provides that the language of a contract -shall -be construed against the drafter shall not apply to this License. -
- -12. RESPONSIBILITY FOR CLAIMS. -
    -As between Initial Developer and the Contributors, each party is -responsible -for claims and damages arising, directly or indirectly, out of its -utilization -of rights under this License and You agree to work with Initial -Developer -and Contributors to distribute such responsibility on an equitable -basis. -Nothing herein is intended or shall be deemed to constitute any -admission -of liability. -
- -13. MULTIPLE-LICENSED CODE. -
    -Initial Developer may designate portions of the Covered Code as -“Multiple-Licensed”.  -“Multiple-Licensed” means that the Initial Developer permits you to -utilize -portions of the Covered Code under Your choice of the MPL or the -alternative -licenses, if any, specified by the Initial Developer in the file -described -in Exhibit A. -
- -


-EXHIBIT A -Mozilla Public License. -

-
    -``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 Original Code is ______________________________________.

    -

    The Initial Developer of the Original Code is -________________________. -Portions created by
    - ______________________ are Copyright (C) ______ -_______________________. -All Rights
    -Reserved.

    -

    Contributor(s): ______________________________________.

    -

    Alternatively, the contents of this file may be used under the -terms -of the _____ license (the  “[___] License”), in which case the -provisions -of [______] License are applicable  instead of those above.  -If you wish to allow use of your version of this file only under the -terms -of the [____] License and not to allow others to use your version of -this -file under the MPL, indicate your decision by deleting  the -provisions -above and replace  them with the notice and other provisions -required -by the [___] License.  If you do not delete the provisions above, -a recipient may use your version of this file under either the MPL or -the -[___] License."

    -

    [NOTE: The text of this Exhibit A may differ slightly from the -text -of the notices in the Source Code files of the Original Code. You -should -use the text of this Exhibit A rather than the text found in the -Original -Code Source Code for Your Modifications.]

    -

    -
+

GNU General Public License
+

+ +
-

FSF
-

-

GNU General Public -License
-

-

+

GNU GENERAL PUBLIC LICENSE

Version 2, June 1991

-
Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
+ +
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
+51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+

Preamble

-

The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public + +

+ The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This +software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to your programs, too. +

-

When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you + +

+ When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

-

To protect your rights, we need to make restrictions that forbid + +

+ To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

-

For example, if you distribute copies of such a program, whether + +

+ For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their rights.

-

We protect your rights with two steps: (1) copyright the software, -and + +

+ We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

-

Also, for each author's protection and ours, we want to make -certain + +

+ Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we +software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

-

Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free + +

+ Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any +program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

-

The precise terms and conditions for copying, distribution and + +

+ The precise terms and conditions for copying, distribution and modification follow. +

+ +

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

+ +

-0. This License applies to any program or other work -which contains +0. + This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, +under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you".

+

Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of +covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

+

-1. You may copy and distribute verbatim copies of the -Program's +1. + You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the @@ -5411,109 +8655,134 @@ notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

+

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

+

-2. You may modify your copy or copies of the Program -or any portion +2. + You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: +

+
-

-
-
a) You must cause the modified files to carry -prominent notices stating that you changed the files and the date of -any change.
-

-
-
b) You must cause any work that you distribute -or publish, that in whole or in part contains or is derived from the -Program or any part thereof, to be licensed as a whole at no charge to -all third parties under the terms of this License.
-

-
-
c) If the modified program normally reads -commands interactively when run, you must cause it, when started -running for such interactive use in the most ordinary way, to print or -display an announcement including an appropriate copyright notice and a -notice that there is no warranty (or else, saying that you provide a -warranty) and that users may redistribute the program under these -conditions, and telling the user how to view a copy of this License. -(Exception: if the Program itself is interactive but does not normally -print such an announcement, your work based on the Program is not -required to print an announcement.)
+
+
+ a) + You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. +
+
+
+ + b) + You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. +
+
+
+ c) + If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) +
+

-These requirements apply to the modified work as a whole. If +These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you +sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. +entire whole, and thus to each and every part regardless of who wrote it.

+

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

+

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

+

-3. You may copy and distribute the Program (or a work -based on it, +3. + You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: +

+ +
-

-
-
a) Accompany it with the complete -corresponding machine-readable source code, which must be distributed -under the terms of Sections 1 and 2 above on a medium customarily used -for software interchange; or,
-

-
-
b) Accompany it with a written offer, valid -for at least three years, to give any third party, for a charge no more -than your cost of physically performing source distribution, a complete -machine-readable copy of the corresponding source code, to be -distributed under the terms of Sections 1 and 2 above on a medium -customarily used for software interchange; or,
-

-
-
c) Accompany it with the information you -received as to the offer to distribute corresponding source code. (This -alternative is allowed only for noncommercial distribution and only if -you received the program in object code or executable form with such an -offer, in accord with Subsection b above.)
+
+
+ a) + Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, +
+
+ +
+ b) + Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, +
+
+
+ c) + Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) +
+
+

The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source +making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a +control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

+

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent @@ -5521,637 +8790,1136 @@ access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

+

-4. You may not copy, modify, sublicense, or distribute -the Program -except as expressly provided under this License. Any attempt +4. + You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

+

-5. You are not required to accept this License, since -you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by +5. + You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

+

-6. Each time you redistribute the Program (or any work -based on the +6. + Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further +these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

+

-7. If, as a consequence of a court judgment or -allegation of patent +7. + + If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot +excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent +may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

+

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

+

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is -implemented by public license practices. Many people have made +implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

+

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

+

-8. If the distribution and/or use of the Program is -restricted in + +8. + If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates +countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

+

-9. The Free Software Foundation may publish revised -and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail -to +9. + The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

+

-Each version is given a distinguishing version number. If the Program +Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and -conditions +later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number -of -this License, you may choose any version ever published by the Free -Software +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software Foundation.

+

-10. If you wish to incorporate parts of the Program -into other free -programs whose distribution conditions are different, write to the -author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we -sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software -and +10. + If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

+

NO WARRANTY

+

-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, -THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +11. + BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER -EXPRESSED +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK -AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY -SERVICING, +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

+

-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR -AGREED TO IN WRITING +12. + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR -DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES -ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT -LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED -BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY -OTHER +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

-

END OF TERMS AND CONDITIONS

-
-

FSF
-

-

GNU Lesser General -Public License
-

-

-GNU LESSER GENERAL PUBLIC LICENSE
-Version 2.1, February 1999
-
-Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple -Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to -copy and distribute verbatim copies of this license document, but -changing it is not allowed.
-[This is the first released version of the Lesser GPL. It also counts -as the successor of the GNU Library Public License, version 2, hence -the version number 2.1.]
-
-Preamble
-
-The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. -
-This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations -below. -
-When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. -
-To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. -
-For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. -
-We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. -
-To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. -
-
-Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. -
-Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. -
-When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. -
-We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. -
-For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it -becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. -
-In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. -
-Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. -
-The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. -
-
-GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, -DISTRIBUTION AND MODIFICATION -
-0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". -
-A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. -
-The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) -
-"Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control -compilation -and installation of the library. -
-Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. -
-1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. -
-You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. -
-
-2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: -
-a) The modified work must itself be a software library. -
-b) You must cause the files modified to carry prominent notices stating -that you changed the files and the date of any change. -
-c) You must cause the whole of the work to be licensed at no charge to -all third parties under the terms of this License. -
-d) If a facility in the modified Library refers to a function or a -table of data to be supplied by an application program that uses the -facility, other than as an argument passed when the facility is -invoked, then you must make a good faith effort to ensure that, in the -event an application does not supply such function or table, the -facility still operates, and performs whatever part of its purpose -remains meaningful. (For example, a function in a library to compute -square roots has a purpose that is entirely well-defined independent of -the application. Therefore, Subsection 2d requires that any -application-supplied function or table used by this function must be -optional: if the application does not supply it, the square root -function must still compute square roots.) -
-These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. -
-Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. -
-In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. -
-3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. -
-
-Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. -
-This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. -
-4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. -
-If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. -
-5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. -
-However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. -
-When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. -
-If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) -
-Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. -
-
-6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. -
-You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: -
-a) Accompany the work with the complete corresponding machine-readable -source code for the Library including whatever changes were used in the -work (which must be distributed under Sections 1 and 2 above); and, if -the work is an executable linked with the Library, with the complete -machine-readable "work that uses the Library", as object code and/or -source code, so that the user can modify the Library and then relink to -produce a modified executable containing the modified Library. (It is -understood that the user who changes the contents of definitions files -in the Library will not necessarily be able to recompile the -application to use the modified definitions.) -
-b) Use a suitable shared library mechanism for linking with the -Library. A suitable mechanism is one that (1) uses at run time a copy -of the library already present on the user's computer system, rather -than copying library functions into the executable, and (2) will -operate properly with a modified version of the library, if the user -installs one, as long as the modified version is interface-compatible -with the version that the work was made with. -
-c) Accompany the work with a written offer, valid for at least three -years, to give the same user the materials specified in Subsection 6a, -above, for a charge no more than the cost of performing this -distribution. -
-d) If distribution of the work is made by offering access to copy from -a designated place, offer equivalent access to copy the above specified -materials from the same place. -
-e) Verify that the user has already received a copy of these materials -or that you have already sent this user a copy. -
-For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. -
-It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. -
-
-7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: -
-a) Accompany the combined library with a copy of the same work based on -the Library, uncombined with any other library facilities. This must be -distributed under the terms of the Sections above. -
-b) Give prominent notice with the combined library of the fact that -part of it is a work based on the Library, and explaining where to find -the accompanying uncombined form of the same work. -
-8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. -
-9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. -
-10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. -
-
-11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. -
-If any portion of this section is held invalid or unenforceable under -any -particular circumstance, the balance of the section is intended to -apply, -and the section as a whole is intended to apply in other circumstances. -
-It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. -
-This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. -
-12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may -add -an explicit geographical distribution limitation excluding those -countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. -
-13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. -
-Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. -
-
-14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. -
-
-NO WARRANTY -
-15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. -
-16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. -
-END OF TERMS AND CONDITIONS -
-
-

LaTeX3 Project
-

-

The LaTeX Project -Public License
-

-The LaTeX Project Public License -
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

LPPL Version 1.3c 2006-05-20

Copyright 1999 2002-2006 LaTeX3 Project
Everyone is allowed to distribute verbatim copies of this
license document, but modification of it is not allowed.


PREAMBLE
========

The LaTeX Project Public License (LPPL) is the primary license under
which the the LaTeX kernel and the base LaTeX packages are distributed.

You may use this license for any work of which you hold the copyright
and which you wish to distribute. This license may be particularly
suitable if your work is TeX-related (such as a LaTeX package), but
it is written in such a way that you can use it even if your work is
unrelated to TeX.

The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
below, gives instructions, examples, and recommendations for authors
who are considering distributing their works under this license.

This license gives conditions under which a work may be distributed
and modified, as well as conditions under which modified versions of
that work may be distributed.

We, the LaTeX3 Project, believe that the conditions below give you
the freedom to make and distribute modified versions of your work
that conform with whatever technical specifications you wish while
maintaining the availability, integrity, and reliability of
that work. If you do not see how to achieve your goal while
meeting these conditions, then read the document `cfgguide.tex'
and `modguide.tex' in the base LaTeX distribution for suggestions.


DEFINITIONS
===========

In this license document the following terms are used:

`Work'
Any work being distributed under this License.

`Derived Work'
Any work that under any applicable law is derived from the Work.

`Modification'
Any procedure that produces a Derived Work under any applicable
law -- for example, the production of a file containing an
original file associated with the Work or a significant portion of
such a file, either verbatim or with modifications and/or
translated into another language.

`Modify'
To apply any procedure that produces a Derived Work under any
applicable law.

`Distribution'
Making copies of the Work available from one person to another, in
whole or in part. Distribution includes (but is not limited to)
making any electronic components of the Work accessible by
file transfer protocols such as FTP or HTTP or by shared file
systems such as Sun's Network File System (NFS).

`Compiled Work'
A version of the Work that has been processed into a form where it
is directly usable on a computer system. This processing may
include using installation facilities provided by the Work,
transformations of the Work, copying of components of the Work, or
other activities. Note that modification of any installation
facilities provided by the Work constitutes modification of the Work.

`Current Maintainer'
A person or persons nominated as such within the Work. If there is
no such explicit nomination then it is the `Copyright Holder' under
any applicable law.

`Base Interpreter'
A program or process that is normally needed for running or
interpreting a part or the whole of the Work.

A Base Interpreter may depend on external components but these
are not considered part of the Base Interpreter provided that each
external component clearly identifies itself whenever it is used
interactively. Unless explicitly specified when applying the
license to the Work, the only applicable Base Interpreter is a
`LaTeX-Format' or in the case of files belonging to the
`LaTeX-format' a program implementing the `TeX language'.



CONDITIONS ON DISTRIBUTION AND MODIFICATION
===========================================

1. Activities other than distribution and/or modification of the Work
are not covered by this license; they are outside its scope. In
particular, the act of running the Work is not restricted and no
requirements are made concerning any offers of support for the Work.

2. You may distribute a complete, unmodified copy of the Work as you
received it. Distribution of only part of the Work is considered
modification of the Work, and no right to distribute such a Derived
Work may be assumed under the terms of this clause.

3. You may distribute a Compiled Work that has been generated from a
complete, unmodified copy of the Work as distributed under Clause 2
above, as long as that Compiled Work is distributed in such a way that
the recipients may install the Compiled Work on their system exactly
as it would have been installed if they generated a Compiled Work
directly from the Work.

4. If you are the Current Maintainer of the Work, you may, without
restriction, modify the Work, thus creating a Derived Work. You may
also distribute the Derived Work without restriction, including
Compiled Works generated from the Derived Work. Derived Works
distributed in this manner by the Current Maintainer are considered to
be updated versions of the Work.

5. If you are not the Current Maintainer of the Work, you may modify
your copy of the Work, thus creating a Derived Work based on the Work,
and compile this Derived Work, thus creating a Compiled Work based on
the Derived Work.

6. If you are not the Current Maintainer of the Work, you may
distribute a Derived Work provided the following conditions are met
for every component of the Work unless that component clearly states
in the copyright notice that it is exempt from that condition. Only
the Current Maintainer is allowed to add such statements of exemption
to a component of the Work.

a. If a component of this Derived Work can be a direct replacement
for a component of the Work when that component is used with the
Base Interpreter, then, wherever this component of the Work
identifies itself to the user when used interactively with that
Base Interpreter, the replacement component of this Derived Work
clearly and unambiguously identifies itself as a modified version
of this component to the user when used interactively with that
Base Interpreter.

b. Every component of the Derived Work contains prominent notices
detailing the nature of the changes to that component, or a
prominent reference to another file that is distributed as part
of the Derived Work and that contains a complete and accurate log
of the changes.

c. No information in the Derived Work implies that any persons,
including (but not limited to) the authors of the original version
of the Work, provide any support, including (but not limited to)
the reporting and handling of errors, to recipients of the
Derived Work unless those persons have stated explicitly that
they do provide such support for the Derived Work.

d. You distribute at least one of the following with the Derived Work:

1. A complete, unmodified copy of the Work;
if your distribution of a modified component is made by
offering access to copy the modified component from a
designated place, then offering equivalent access to copy
the Work from the same or some similar place meets this
condition, even though third parties are not compelled to
copy the Work along with the modified component;

2. Information that is sufficient to obtain a complete,
unmodified copy of the Work.

7. If you are not the Current Maintainer of the Work, you may
distribute a Compiled Work generated from a Derived Work, as long as
the Derived Work is distributed to all recipients of the Compiled
Work, and as long as the conditions of Clause 6, above, are met with
regard to the Derived Work.

8. The conditions above are not intended to prohibit, and hence do not
apply to, the modification, by any method, of any component so that it
becomes identical to an updated version of that component of the Work as
it is distributed by the Current Maintainer under Clause 4, above.

9. Distribution of the Work or any Derived Work in an alternative
format, where the Work or that Derived Work (in whole or in part) is
then produced by applying some process to that format, does not relax or
nullify any sections of this license as they pertain to the results of
applying that process.

10. a. A Derived Work may be distributed under a different license
provided that license itself honors the conditions listed in
Clause 6 above, in regard to the Work, though it does not have
to honor the rest of the conditions in this license.

b. If a Derived Work is distributed under a different license, that
Derived Work must provide sufficient documentation as part of
itself to allow each recipient of that Derived Work to honor the
restrictions in Clause 6 above, concerning changes from the Work.

11. This license places no restrictions on works that are unrelated to
the Work, nor does this license place any restrictions on aggregating
such works with the Work by any means.

12. Nothing in this license is intended to, or may be used to, prevent
complete compliance by all parties with all applicable laws.


NO WARRANTY
===========

There is no warranty for the Work. Except when otherwise stated in
writing, the Copyright Holder provides the Work `as is', without
warranty of any kind, either expressed or implied, including, but not
limited to, the implied warranties of merchantability and fitness for a
particular purpose. The entire risk as to the quality and performance
of the Work is with you. Should the Work prove defective, you assume
the cost of all necessary servicing, repair, or correction.

In no event unless required by applicable law or agreed to in writing
will The Copyright Holder, or any author named in the components of the
Work, or any other party who may distribute and/or modify the Work as
permitted above, be liable to you for damages, including any general,
special, incidental or consequential damages arising out of any use of
the Work or out of inability to use the Work (including, but not limited
to, loss of data, data being rendered inaccurate, or losses sustained by
anyone as a result of any failure of the Work to operate with any other
programs), even if the Copyright Holder or said author or said other
party has been advised of the possibility of such damages.


MAINTENANCE OF THE WORK
=======================

The Work has the status `author-maintained' if the Copyright Holder
explicitly and prominently states near the primary copyright notice in
the Work that the Work can only be maintained by the Copyright Holder
or simply that it is `author-maintained'.

The Work has the status `maintained' if there is a Current Maintainer
who has indicated in the Work that they are willing to receive error
reports for the Work (for example, by supplying a valid e-mail
address). It is not required for the Current Maintainer to acknowledge
or act upon these error reports.

The Work changes from status `maintained' to `unmaintained' if there
is no Current Maintainer, or the person stated to be Current
Maintainer of the work cannot be reached through the indicated means
of communication for a period of six months, and there are no other
significant signs of active maintenance.

You can become the Current Maintainer of the Work by agreement with
any existing Current Maintainer to take over this role.

If the Work is unmaintained, you can become the Current Maintainer of
the Work through the following steps:

1. Make a reasonable attempt to trace the Current Maintainer (and
the Copyright Holder, if the two differ) through the means of
an Internet or similar search.

2. If this search is successful, then enquire whether the Work
is still maintained.

a. If it is being maintained, then ask the Current Maintainer
to update their communication data within one month.

b. If the search is unsuccessful or no action to resume active
maintenance is taken by the Current Maintainer, then announce
within the pertinent community your intention to take over
maintenance. (If the Work is a LaTeX work, this could be
done, for example, by posting to comp.text.tex.)

3a. If the Current Maintainer is reachable and agrees to pass
maintenance of the Work to you, then this takes effect
immediately upon announcement.

b. If the Current Maintainer is not reachable and the Copyright
Holder agrees that maintenance of the Work be passed to you,
then this takes effect immediately upon announcement.

4. If you make an `intention announcement' as described in 2b. above
and after three months your intention is challenged neither by
the Current Maintainer nor by the Copyright Holder nor by other
people, then you may arrange for the Work to be changed so as
to name you as the (new) Current Maintainer.

5. If the previously unreachable Current Maintainer becomes
reachable once more within three months of a change completed
under the terms of 3b) or 4), then that Current Maintainer must
become or remain the Current Maintainer upon request provided
they then update their communication data within one month.

A change in the Current Maintainer does not, of itself, alter the fact
that the Work is distributed under the LPPL license.

If you become the Current Maintainer of the Work, you should
immediately provide, within the Work, a prominent and unambiguous
statement of your status as Current Maintainer. You should also
announce your new status to the same pertinent community as
in 2b) above.


WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
======================================================

This section contains important instructions, examples, and
recommendations for authors who are considering distributing their
works under this license. These authors are addressed as `you' in
this section.

Choosing This License or Another License
----------------------------------------

If for any part of your work you want or need to use *distribution*
conditions that differ significantly from those in this license, then
do not refer to this license anywhere in your work but, instead,
distribute your work under a different license. You may use the text
of this license as a model for your own license, but your license
should not refer to the LPPL or otherwise give the impression that
your work is distributed under the LPPL.

The document `modguide.tex' in the base LaTeX distribution explains
the motivation behind the conditions of this license. It explains,
for example, why distributing LaTeX under the GNU General Public
License (GPL) was considered inappropriate. Even if your work is
unrelated to LaTeX, the discussion in `modguide.tex' may still be
relevant, and authors intending to distribute their works under any
license are encouraged to read it.

A Recommendation on Modification Without Distribution
-----------------------------------------------------

It is wise never to modify a component of the Work, even for your own
personal use, without also meeting the above conditions for
distributing the modified component. While you might intend that such
modifications will never be distributed, often this will happen by
accident -- you may forget that you have modified that component; or
it may not occur to you when allowing others to access the modified
version that you are thus distributing it and violating the conditions
of this license in ways that could have legal implications and, worse,
cause problems for the community. It is therefore usually in your
best interest to keep your copy of the Work identical with the public
one. Many works provide ways to control the behavior of that work
without altering any of its licensed components.

How to Use This License
-----------------------

To use this license, place in each of the components of your work both
an explicit copyright notice including your name and the year the work
was authored and/or last substantially modified. Include also a
statement that the distribution and/or modification of that
component is constrained by the conditions in this license.

Here is an example of such a notice and statement:

%% pig.dtx
%% Copyright 2005 M. Y. Name
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is M. Y. Name.
%
% This work consists of the files pig.dtx and pig.ins
% and the derived file pig.sty.

Given such a notice and statement in a file, the conditions
given in this license document would apply, with the `Work' referring
to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
referring to any `LaTeX-Format', and both `Copyright Holder' and
`Current Maintainer' referring to the person `M. Y. Name'.

If you do not want the Maintenance section of LPPL to apply to your
Work, change `maintained' above into `author-maintained'.
However, we recommend that you use `maintained', as the Maintenance
section was added in order to ensure that your Work remains useful to
the community even when you can no longer maintain and support it
yourself.

Derived Works That Are Not Replacements
---------------------------------------

Several clauses of the LPPL specify means to provide reliability and
stability for the user community. They therefore concern themselves
with the case that a Derived Work is intended to be used as a
(compatible or incompatible) replacement of the original Work. If
this is not the case (e.g., if a few lines of code are reused for a
completely different task), then clauses 6b and 6d shall not apply.


Important Recommendations
-------------------------

Defining What Constitutes the Work

The LPPL requires that distributions of the Work contain all the
files of the Work. It is therefore important that you provide a
way for the licensee to determine which files constitute the Work.
This could, for example, be achieved by explicitly listing all the
files of the Work near the copyright notice of each file or by
using a line such as:

% This work consists of all files listed in manifest.txt.

in that place. In the absence of an unequivocal list it might be
impossible for the licensee to determine what is considered by you
to comprise the Work and, in such a case, the licensee would be
entitled to make reasonable conjectures as to which files comprise
the Work.

-
+

END OF TERMS AND CONDITIONS

+ + + + +
+

FSF
+

+

GNU Lesser General Public License
+

+ + +
+
+GNU LESSER GENERAL PUBLIC LICENSE +
+ Version 2.1, February 1999 +
+
+ + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. +
+ +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] +
+ +
+ Preamble +
+
+ + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + +
+ This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + +
+ When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. +
+ + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. +
+ + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. +
+ + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. +
+ + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. +
+
+ Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. +
+ + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. +
+ + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. +
+ + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. +
+ + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. +
+ + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. +
+ + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. +
+ + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. +
+
+ GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +
+ 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + +
+ A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. +
+ + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) +
+ + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. +
+ + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. +
+ + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + +
+ You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. +
+
+ 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +
+ a) The modified work must itself be a software library. + +
+ b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + +
+ c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + +
+ d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) +
+ +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +
+Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +
+In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +
+ 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. +
+
+ Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + +
+ This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + +
+ 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + +
+ If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. +
+ + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. +
+ + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. +
+ + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. +
+ + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) +
+ + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. +
+
+ 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. +
+ + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: +
+ + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) +
+ + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. +
+ + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. +
+ + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. +
+ + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. +
+ + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. +
+ + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. +
+
+ 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: +
+ + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. +
+ + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. +
+ + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. +
+ + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. +
+ + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. +
+
+ 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. +
+ +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. +
+ +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. +
+ +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. +
+ + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. +
+ + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. +
+ +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. +
+
+ 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. +
+
+ + NO WARRANTY + +
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. +
+ + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. +
+ + END OF TERMS AND CONDITIONS +
+ + + + + + + + +
+

LaTeX3 Project
+

+

The LaTeX Project Public License
+

+ + +The LaTeX Project Public License +
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c  2006-05-20
+
+Copyright 1999 2002-2006 LaTeX3 Project
+    Everyone is allowed to distribute verbatim copies of this
+    license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute.  This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but 
+it is written in such a way that you can use it even if your work is 
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work.  If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+   `Work'
+    Any work being distributed under this License.
+    
+   `Derived Work'
+    Any work that under any applicable law is derived from the Work.
+
+   `Modification' 
+    Any procedure that produces a Derived Work under any applicable
+    law -- for example, the production of a file containing an
+    original file associated with the Work or a significant portion of
+    such a file, either verbatim or with modifications and/or
+    translated into another language.
+
+   `Modify'
+    To apply any procedure that produces a Derived Work under any
+    applicable law.
+    
+   `Distribution'
+    Making copies of the Work available from one person to another, in
+    whole or in part.  Distribution includes (but is not limited to)
+    making any electronic components of the Work accessible by
+    file transfer protocols such as FTP or HTTP or by shared file
+    systems such as Sun's Network File System (NFS).
+
+   `Compiled Work'
+    A version of the Work that has been processed into a form where it
+    is directly usable on a computer system.  This processing may
+    include using installation facilities provided by the Work,
+    transformations of the Work, copying of components of the Work, or
+    other activities.  Note that modification of any installation
+    facilities provided by the Work constitutes modification of the Work.
+
+   `Current Maintainer'
+    A person or persons nominated as such within the Work.  If there is
+    no such explicit nomination then it is the `Copyright Holder' under
+    any applicable law.
+
+   `Base Interpreter' 
+    A program or process that is normally needed for running or
+    interpreting a part or the whole of the Work.    
+
+    A Base Interpreter may depend on external components but these
+    are not considered part of the Base Interpreter provided that each
+    external component clearly identifies itself whenever it is used
+    interactively.  Unless explicitly specified when applying the
+    license to the Work, the only applicable Base Interpreter is a
+    `LaTeX-Format' or in the case of files belonging to the 
+    `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1.  Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope.  In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2.  You may distribute a complete, unmodified copy of the Work as you
+received it.  Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3.  You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4.  If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work.  You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work.  Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5.  If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6.  If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition.  Only
+the Current Maintainer is allowed to add such statements of exemption 
+to a component of the Work. 
+
+  a. If a component of this Derived Work can be a direct replacement
+     for a component of the Work when that component is used with the
+     Base Interpreter, then, wherever this component of the Work
+     identifies itself to the user when used interactively with that
+     Base Interpreter, the replacement component of this Derived Work
+     clearly and unambiguously identifies itself as a modified version
+     of this component to the user when used interactively with that
+     Base Interpreter.
+     
+  b. Every component of the Derived Work contains prominent notices
+     detailing the nature of the changes to that component, or a
+     prominent reference to another file that is distributed as part
+     of the Derived Work and that contains a complete and accurate log
+     of the changes.
+  
+  c. No information in the Derived Work implies that any persons,
+     including (but not limited to) the authors of the original version
+     of the Work, provide any support, including (but not limited to)
+     the reporting and handling of errors, to recipients of the
+     Derived Work unless those persons have stated explicitly that
+     they do provide such support for the Derived Work.
+
+  d. You distribute at least one of the following with the Derived Work:
+
+       1. A complete, unmodified copy of the Work; 
+          if your distribution of a modified component is made by
+          offering access to copy the modified component from a
+          designated place, then offering equivalent access to copy
+          the Work from the same or some similar place meets this
+          condition, even though third parties are not compelled to
+          copy the Work along with the modified component;
+
+       2. Information that is sufficient to obtain a complete,
+          unmodified copy of the Work.
+
+7.  If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8.  The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9.  Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+     
+10. a. A Derived Work may be distributed under a different license
+       provided that license itself honors the conditions listed in
+       Clause 6 above, in regard to the Work, though it does not have
+       to honor the rest of the conditions in this license.
+      
+    b. If a Derived Work is distributed under a different license, that
+       Derived Work must provide sufficient documentation as part of
+       itself to allow each recipient of that Derived Work to honor the 
+       restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12.  Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work.  Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose.  The entire risk as to the quality and performance
+of the Work is with you.  Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1.  Make a reasonable attempt to trace the Current Maintainer (and
+     the Copyright Holder, if the two differ) through the means of
+     an Internet or similar search.
+
+ 2.  If this search is successful, then enquire whether the Work
+     is still maintained.
+
+  a. If it is being maintained, then ask the Current Maintainer
+     to update their communication data within one month.
+     
+  b. If the search is unsuccessful or no action to resume active
+     maintenance is taken by the Current Maintainer, then announce
+     within the pertinent community your intention to take over
+     maintenance.  (If the Work is a LaTeX work, this could be
+     done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+     maintenance of the Work to you, then this takes effect
+     immediately upon announcement.
+     
+  b. If the Current Maintainer is not reachable and the Copyright
+     Holder agrees that maintenance of the Work be passed to you,
+     then this takes effect immediately upon announcement.  
+    
+ 4.  If you make an `intention announcement' as described in 2b. above
+     and after three months your intention is challenged neither by
+     the Current Maintainer nor by the Copyright Holder nor by other
+     people, then you may arrange for the Work to be changed so as
+     to name you as the (new) Current Maintainer.
+     
+ 5.  If the previously unreachable Current Maintainer becomes
+     reachable once more within three months of a change completed
+     under the terms of 3b) or 4), then that Current Maintainer must
+     become or remain the Current Maintainer upon request provided
+     they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer.  You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license.  These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license.  You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license.  It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate.  Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component.  While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community.  It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one.  Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified.  Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+  %% pig.dtx
+  %% Copyright 2005 M. Y. Name
+  %
+  % This work may be distributed and/or modified under the
+  % conditions of the LaTeX Project Public License, either version 1.3
+  % of this license or (at your option) any later version.
+  % The latest version of this license is in
+  %   http://www.latex-project.org/lppl.txt
+  % and version 1.3 or later is part of all distributions of LaTeX
+  % version 2005/12/01 or later.
+  %
+  % This work has the LPPL maintenance status `maintained'.
+  % 
+  % The Current Maintainer of this work is M. Y. Name.
+  %
+  % This work consists of the files pig.dtx and pig.ins
+  % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.  
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+   The LPPL requires that distributions of the Work contain all the
+   files of the Work.  It is therefore important that you provide a
+   way for the licensee to determine which files constitute the Work.
+   This could, for example, be achieved by explicitly listing all the
+   files of the Work near the copyright notice of each file or by
+   using a line such as:
+
+    % This work consists of all files listed in manifest.txt.
+   
+   in that place.  In the absence of an unequivocal list it might be
+   impossible for the licensee to determine what is considered by you
+   to comprise the Work and, in such a case, the licensee would be
+   entitled to make reasonable conjectures as to which files comprise
+   the Work.
+
+ +
+ + diff --git a/scripting/source/pyprov/pythonscript.py b/scripting/source/pyprov/pythonscript.py index 9580f2ca9beb..6ce354215ccc 100644 --- a/scripting/source/pyprov/pythonscript.py +++ b/scripting/source/pyprov/pythonscript.py @@ -91,7 +91,8 @@ log.debug( "pythonscript loading" ) from com.sun.star.uno import RuntimeException from com.sun.star.lang import XServiceInfo from com.sun.star.io import IOException -from com.sun.star.ucb import CommandAbortedException +from com.sun.star.ucb import CommandAbortedException, XCommandEnvironment, XProgressHandler +from com.sun.star.task import XInteractionHandler from com.sun.star.beans import XPropertySet from com.sun.star.container import XNameContainer from com.sun.star.xml.sax import XDocumentHandler, InputSource @@ -102,6 +103,7 @@ from com.sun.star.awt import XActionListener from com.sun.star.script.provider import XScriptProvider, XScript, XScriptContext, ScriptFrameworkErrorException from com.sun.star.script.browse import XBrowseNode from com.sun.star.script.browse.BrowseNodeTypes import SCRIPT, CONTAINER, ROOT +from com.sun.star.util import XModifyListener LANGUAGENAME = "Python" GLOBAL_SCRIPTCONTEXT_NAME = "XSCRIPTCONTEXT" @@ -238,7 +240,7 @@ class ProviderContext: def addPackageByUrl( self, url ): packageName = self.getPackageNameFromUrl( url ) transientPart = self.getTransientPartFromUrl( url ) - log.isDebugLevel() and log.debug( "addPackageByUrl : " + packageName + ", " + transientPart ) + log.isDebugLevel() and log.debug( "addPackageByUrl : " + packageName + ", " + transientPart + "("+url+")" + ", rootUrl="+self.rootUrl ) if self.mapPackageName2Path.has_key( packageName ): package = self.mapPackageName2Path[ packageName ] package.pathes = package.pathes + (url, ) @@ -249,8 +251,10 @@ class ProviderContext: def isUrlInPackage( self, url ): values = self.mapPackageName2Path.values() for i in values: +# print "checking " + url + " in " + str(i.pathes) if url in i.pathes: return True +# print "false" return False def setPackageAttributes( self, mapPackageName2Path, rootUrl ): @@ -545,6 +549,18 @@ class ManifestHandler( XDocumentHandler, unohelper.Base ): def setDocumentLocator( self, locator ): pass +def isPyFileInPath( sfa, path ): + ret = False + contents = sfa.getFolderContents( path, True ) + for i in contents: + if sfa.isFolder(i): + ret = isPyFileInPath(sfa,i) + else: + if i.endswith(".py"): + ret = True + if ret: + break + return ret # extracts META-INF directory from def getPathesFromPackage( rootUrl, sfa ): @@ -556,6 +572,9 @@ def getPathesFromPackage( rootUrl, sfa ): handler = ManifestHandler( rootUrl ) parser.setDocumentHandler( handler ) parser.parseStream( InputSource( inputStream , "", fileUrl, fileUrl ) ) + for i in tuple(handler.urlList): + if not isPyFileInPath( sfa, i ): + handler.urlList.remove(i) ret = tuple( handler.urlList ) except UnoException, e: text = lastException2String() @@ -569,24 +588,77 @@ class Package: self.pathes = pathes self.transientPathElement = transientPathElement -def getPackageName2PathMap( sfa, rootUrl ): +class DummyInteractionHandler( unohelper.Base, XInteractionHandler ): + def __init__( self ): + pass + def handle( self, event): + log.isDebugLevel() and log.debug( "pythonscript: DummyInteractionHandler.handle " + str( event ) ) + +class DummyProgressHandler( unohelper.Base, XProgressHandler ): + def __init__( self ): + pass + + def push( self,status ): + log.isDebugLevel() and log.debug( "pythonscript: DummyProgressHandler.push " + str( status ) ) + def update( self,status ): + log.isDebugLevel() and log.debug( "pythonscript: DummyProgressHandler.update " + str( status ) ) + def pop( self ): + log.isDebugLevel() and log.debug( "pythonscript: DummyProgressHandler.push " + str( event ) ) + +class CommandEnvironment(unohelper.Base, XCommandEnvironment): + def __init__( self ): + self.progressHandler = DummyProgressHandler() + self.interactionHandler = DummyInteractionHandler() + def getInteractionHandler( self ): + return self.interactionHandler + def getProgressHandler( self ): + return self.progressHandler + +#maybe useful for debugging purposes +#class ModifyListener( unohelper.Base, XModifyListener ): +# def __init__( self ): +# pass +# def modified( self, event ): +# log.isDebugLevel() and log.debug( "pythonscript: ModifyListener.modified " + str( event ) ) +# def disposing( self, event ): +# log.isDebugLevel() and log.debug( "pythonscript: ModifyListener.disposing " + str( event ) ) + +def mapStorageType2PackageContext( storageType ): + ret = storageType + if( storageType == "share:uno_packages" ): + ret = "shared" + if( storageType == "user:uno_packages" ): + ret = "user" + return ret + +def getPackageName2PathMap( sfa, storageType ): ret = {} - contents = sfa.getFolderContents( rootUrl, True ) - for i in contents: - if sfa.isFolder( i ): - transientPathElement = lastElement( i ) - subcontents = sfa.getFolderContents( i , True ) - for j in subcontents: - if sfa.isFolder( j ): - # ok, found a package. Now let's have a look, if - # it contains scripts - pathes = getPathesFromPackage( j, sfa ) - if len( pathes ) > 0: - # map package name to url, we need this later - log.isErrorLevel() and log.error( "adding Package " + transientPathElement + " " + str( pathes ) ) - ret[ lastElement( j ) ] = Package( pathes, transientPathElement ) + packageManagerFactory = uno.getComponentContext().getValueByName( + "/singletons/com.sun.star.deployment.thePackageManagerFactory" ) + packageManager = packageManagerFactory.getPackageManager( + mapStorageType2PackageContext(storageType)) +# packageManager.addModifyListener( ModifyListener() ) + log.isDebugLevel() and log.debug( "pythonscript: getPackageName2PathMap start getDeployedPackages" ) + packages = packageManager.getDeployedPackages( + packageManager.createAbortChannel(), CommandEnvironment( ) ) + log.isDebugLevel() and log.debug( "pythonscript: getPackageName2PathMap end getDeployedPackages (" + str(len(packages))+")" ) + + for i in packages: + log.isDebugLevel() and log.debug( "inspecting package " + i.Name + "("+i.Identifier.Value+")" ) + transientPathElement = penultimateElement( i.URL ) + j = expandUri( i.URL ) + pathes = getPathesFromPackage( j, sfa ) + if len( pathes ) > 0: + # map package name to url, we need this later + log.isErrorLevel() and log.error( "adding Package " + transientPathElement + " " + str( pathes ) ) + ret[ lastElement( j ) ] = Package( pathes, transientPathElement ) return ret +def penultimateElement( aStr ): + lastSlash = aStr.rindex("/") + penultimateSlash = aStr.rindex("/",0,lastSlash-1) + return aStr[ penultimateSlash+1:lastSlash ] + def lastElement( aStr): return aStr[ aStr.rfind( "/" )+1:len(aStr)] @@ -690,7 +762,7 @@ class PythonScriptProvider( unohelper.Base, XBrowseNode, XScriptProvider, XNameC log.isDebugLevel() and log.debug( "got urlHelper " + str( urlHelper ) ) - rootUrl = urlHelper.getRootStorageURI() + rootUrl = expandUri( urlHelper.getRootStorageURI() ) log.isDebugLevel() and log.debug( storageType + " transformed to " + rootUrl ) ucbService = "com.sun.star.ucb.SimpleFileAccess" @@ -702,7 +774,7 @@ class PythonScriptProvider( unohelper.Base, XBrowseNode, XScriptProvider, XNameC self.provCtx = ProviderContext( storageType, sfa, urlHelper, ScriptContext( uno.getComponentContext(), None ) ) if isPackage: - mapPackageName2Path = getPackageName2PathMap( sfa, rootUrl ) + mapPackageName2Path = getPackageName2PathMap( sfa, storageType ) self.provCtx.setPackageAttributes( mapPackageName2Path , rootUrl ) self.dirBrowseNode = PackageBrowseNode( self.provCtx, LANGUAGENAME, rootUrl ) else: @@ -787,14 +859,23 @@ class PythonScriptProvider( unohelper.Base, XBrowseNode, XScriptProvider, XNameC def removeByName( self, name ): log.debug( "removeByName called" + str( name )) uri = expandUri( name ) - self.provCtx.removePackageByUrl( uri ) + if self.provCtx.isUrlInPackage( uri ): + self.provCtx.removePackageByUrl( uri ) + else: + log.debug( "removeByName unknown uri " + str( name ) + ", ignoring" ) + raise NoSuchElementException( uri + "is not in package" , self ) log.debug( "removeByName called" + str( uri ) + " successful" ) def insertByName( self, name, value ): log.debug( "insertByName called " + str( name ) + " " + str( value )) uri = expandUri( name ) - self.provCtx.addPackageByUrl( uri ) - log.debug( "insertByName called" + str( uri ) + " successful" ) + if isPyFileInPath( self.provCtx.sfa, uri ): + self.provCtx.addPackageByUrl( uri ) + else: + # package is no python package ... + log.debug( "insertByName: no python files in " + str( uri ) + ", ignoring" ) + raise IllegalArgumentException( uri + " does not contain .py files", self, 1 ) + log.debug( "insertByName called " + str( uri ) + " successful" ) def replaceByName( self, name, value ): log.debug( "replaceByName called " + str( name ) + " " + str( value )) diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx index 72143edd36cc..50d82498c91c 100644 --- a/sfx2/source/appl/workwin.cxx +++ b/sfx2/source/appl/workwin.cxx @@ -1595,7 +1595,7 @@ void SfxWorkWindow::UpdateChildWindows_Impl() if ( pCW->pCli ) { // Fenster ist direktes Child - if ( bAllChildsVisible && ( IsDockingAllowed() && bInternalDockingAllowed || pCW->pCli->eAlign == SFX_ALIGN_NOALIGNMENT ) ) + if ( bAllChildsVisible && ( (IsDockingAllowed() && bInternalDockingAllowed) || pCW->pCli->eAlign == SFX_ALIGN_NOALIGNMENT ) ) pCW->pCli->nVisible |= CHILD_NOT_HIDDEN; } else if ( pCW->bCreate && IsDockingAllowed() && bInternalDockingAllowed ) diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index cb2c14893e33..c0ee288eb882 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -1731,6 +1731,7 @@ BOOL SfxCommonTemplateDialog_Impl::Execute_Impl( nId, SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD | SFX_CALLMODE_MODAL, pItems, nModi ); + // FIXME: Dialog can be destroyed while in Execute() check stack variable for dtor flag! if ( !pItem || aDeleted() ) return FALSE; @@ -1753,6 +1754,11 @@ BOOL SfxCommonTemplateDialog_Impl::Execute_Impl( *pIdx = i; } } + + // Reset destroyed flag otherwise we use the pointer in the dtor + // where the local stack object is already destroyed. This would + // overwrite objects on the stack!! See #i100110 + pbDeleted = NULL; return TRUE; } diff --git a/sfx2/source/doc/objuno.cxx b/sfx2/source/doc/objuno.cxx index 628c4a5dc55b..5b8fa4c3d541 100644 --- a/sfx2/source/doc/objuno.cxx +++ b/sfx2/source/doc/objuno.cxx @@ -289,6 +289,8 @@ MixedPropertySetInfo::~MixedPropertySetInfo() for (sal_Int32 i = 0; i < udProps.getLength(); ++i) { if (std::find(_pUserKeys, _pUserKeys+FOUR, udProps[i].Name) == _pUserKeys+FOUR) { + // #i100027#: handles from udProps are not valid here + udProps[i].Handle = -1; lProps.push_back(udProps[i]); } } diff --git a/svx/inc/svx/optimprove.hxx b/svx/inc/svx/optimprove.hxx index 816e531ca28a..61f184239e88 100644 --- a/svx/inc/svx/optimprove.hxx +++ b/svx/inc/svx/optimprove.hxx @@ -79,6 +79,7 @@ public: inline String GetYesButtonText() const { return m_aYesRB.GetText(); } inline String GetNoButtonText() const { return m_aNoRB.GetText(); } inline String GetInfoText() const { return m_sInfo; } + inline String GetTitleText() const { return m_aImproveFL.GetText(); } }; class SvxImprovementOptionsPage : public SfxTabPage @@ -100,10 +101,10 @@ private: String m_sMoreInfo; ::rtl::OUString m_sLogPath; - SVX_DLLPRIVATE SvxImprovementOptionsPage( Window* pParent, const SfxItemSet& rSet ); + SvxImprovementOptionsPage( Window* pParent, const SfxItemSet& rSet ); - DECL_DLLPRIVATE_LINK( HandleHyperlink, svt::FixedHyperlinkImage * ); - DECL_DLLPRIVATE_LINK( HandleShowData, PushButton * ); + DECL_LINK( HandleHyperlink, svt::FixedHyperlinkImage * ); + DECL_LINK( HandleShowData, PushButton * ); public: virtual ~SvxImprovementOptionsPage(); @@ -115,13 +116,13 @@ public: virtual void Reset( const SfxItemSet& rSet ); }; -class SVX_DLLPUBLIC SvxImprovementDialog : public SfxSingleTabDialog +class SvxImprovementDialog : public SfxSingleTabDialog { private: SvxImprovementPage* m_pPage; - DECL_DLLPRIVATE_LINK( HandleOK, OKButton * ); - DECL_DLLPRIVATE_LINK( HandleHyperlink, svt::FixedHyperlinkImage * ); + DECL_LINK( HandleOK, OKButton * ); + DECL_LINK( HandleHyperlink, svt::FixedHyperlinkImage * ); public: SvxImprovementDialog( Window* pParent, const String& rInfoURL ); diff --git a/svx/source/dialog/SpellDialog.cxx b/svx/source/dialog/SpellDialog.cxx index 58ffa4cb964b..3febb657ded2 100644 --- a/svx/source/dialog/SpellDialog.cxx +++ b/svx/source/dialog/SpellDialog.cxx @@ -1488,8 +1488,8 @@ long SentenceEditWindow_Impl::PreNotify( NotifyEvent& rNEvt ) } } //Here we have to determine if the error found is the one currently active - bool bIsErrorActive = pErrorAttr && pErrorAttr->GetStart() == m_nErrorStart || - pErrorAttrLeft && pErrorAttrLeft->GetStart() == m_nErrorStart; + bool bIsErrorActive = (pErrorAttr && pErrorAttr->GetStart() == m_nErrorStart) || + (pErrorAttrLeft && pErrorAttrLeft->GetStart() == m_nErrorStart); DBG_ASSERT(nSelectionType != INVALID, "selection type not set!"); diff --git a/svx/source/dialog/dlgfact.cxx b/svx/source/dialog/dlgfact.cxx index a3fd66ff04fe..ed53f512fc5d 100644 --- a/svx/source/dialog/dlgfact.cxx +++ b/svx/source/dialog/dlgfact.cxx @@ -41,7 +41,8 @@ #include #include #include - +#include +#include #include "splitcelldlg.hxx" #include #include "fmresids.hrc" @@ -2081,6 +2082,14 @@ AbstractSfxSingleTabDialog* AbstractDialogFactory_Impl::CreateSfxSingleTabDialog case RID_SFXPAGE_DBREGISTER : pDlg = new DatabaseRegistrationDialog( pParent, rAttr ); break; + case RID_SVXPAGE_IMPROVEMENT : + { + String help_url; + SFX_ITEMSET_ARG( &rAttr, pItem, SfxStringItem, SID_CURRENT_URL, sal_False ); + if ( pItem ) + help_url = pItem->GetValue(); + pDlg = new SvxImprovementDialog( pParent, help_url); + } default: break; } diff --git a/svx/source/dialog/hangulhanja.cxx b/svx/source/dialog/hangulhanja.cxx index 88b9b645961d..3a3f35d36e0a 100644 --- a/svx/source/dialog/hangulhanja.cxx +++ b/svx/source/dialog/hangulhanja.cxx @@ -313,8 +313,8 @@ namespace svx // determine conversion type if (m_nSourceLang == LANGUAGE_KOREAN && m_nTargetLang == LANGUAGE_KOREAN) m_eConvType = HHC::eConvHangulHanja; - else if (m_nSourceLang == LANGUAGE_CHINESE_TRADITIONAL && m_nTargetLang == LANGUAGE_CHINESE_SIMPLIFIED || - m_nSourceLang == LANGUAGE_CHINESE_SIMPLIFIED && m_nTargetLang == LANGUAGE_CHINESE_TRADITIONAL) + else if ( (m_nSourceLang == LANGUAGE_CHINESE_TRADITIONAL && m_nTargetLang == LANGUAGE_CHINESE_SIMPLIFIED) || + (m_nSourceLang == LANGUAGE_CHINESE_SIMPLIFIED && m_nTargetLang == LANGUAGE_CHINESE_TRADITIONAL) ) m_eConvType = HHC::eConvSimplifiedTraditional; else { diff --git a/svx/source/dialog/makefile.mk b/svx/source/dialog/makefile.mk index e88eebb8d908..17814b7c7089 100644 --- a/svx/source/dialog/makefile.mk +++ b/svx/source/dialog/makefile.mk @@ -365,7 +365,6 @@ LIB1OBJFILES= \ $(SLO)$/framelink.obj\ $(SLO)$/framelinkarray.obj \ $(SLO)$/databaseregistrationui.obj \ - $(SLO)$/optimprove.obj \ $(SLO)$/radiobtnbox.obj .IF "$(GUI)"=="UNX" @@ -444,6 +443,7 @@ LIB2OBJFILES= \ $(SLO)$/optctl.obj \ $(SLO)$/optjava.obj \ $(SLO)$/optupdt.obj \ + $(SLO)$/optimprove.obj \ $(SLO)$/optimprove2.obj \ $(SLO)$/optgenrl.obj \ $(SLO)$/connect.obj \ diff --git a/svx/source/dialog/optimprove.cxx b/svx/source/dialog/optimprove.cxx index c50abdf026b0..e644cc58d7b8 100644 --- a/svx/source/dialog/optimprove.cxx +++ b/svx/source/dialog/optimprove.cxx @@ -31,6 +31,9 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svx.hxx" +#ifdef SVX_DLLIMPLEMENTATION +#undef SVX_DLLIMPLEMENTATION +#endif // include --------------------------------------------------------------- #define _SVX_OPTIMPROVE_CXX diff --git a/svx/source/dialog/swpossizetabpage.cxx b/svx/source/dialog/swpossizetabpage.cxx index 87063f866b73..685fc03145f2 100644 --- a/svx/source/dialog/swpossizetabpage.cxx +++ b/svx/source/dialog/swpossizetabpage.cxx @@ -751,9 +751,11 @@ BOOL SvxSwPosSizeTabPage::FillItemSet( SfxItemSet& rSet) short nRel = GetRelation(m_pHMap, m_aHoriToLB); const long nHoriByPos = static_cast(m_aHoriByMF.Denormalize(m_aHoriByMF.GetValue(FUNIT_TWIP))); - if(nAlign != rHoriOrient.GetValue()|| - nRel != rHoriRelation.GetValue()|| - m_aHoriByMF.IsEnabled() && nHoriByPos != rHoriPosition.GetValue()) + if ( + nAlign != rHoriOrient.GetValue() || + nRel != rHoriRelation.GetValue() || + (m_aHoriByMF.IsEnabled() && nHoriByPos != rHoriPosition.GetValue()) + ) { rSet.Put(SfxInt16Item(SID_ATTR_TRANSFORM_HORI_ORIENT, nAlign)); rSet.Put(SfxInt16Item(SID_ATTR_TRANSFORM_HORI_RELATION, nRel)); diff --git a/svx/source/dialog/treeopt.cxx b/svx/source/dialog/treeopt.cxx index 7b13286ebd36..7491b2bb1cc5 100644 --- a/svx/source/dialog/treeopt.cxx +++ b/svx/source/dialog/treeopt.cxx @@ -1918,9 +1918,30 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame ) } // Disable OOoImprovement page if not enabled if( RID_SVXPAGE_IMPROVEMENT == nPageId ) + { + continue; + } + if ( nPageId != RID_SVXPAGE_SSO || isSSOEnabled ) + { + AddTabPage( nPageId, sNewTitle, nGroup ); + } + } + // private iteration hack for Improvement Program + // hack for OOo 3.1 + // should not be in found in any later release + for(bool bOnce = false; bOnce==false; bOnce=true) + { + String sNewTitle = C2U("Improvement Program"); + { + SvxImprovementPage aTempTabPage(this); + sNewTitle = aTempTabPage.GetTitleText(); + } + nPageId = RID_SVXPAGE_IMPROVEMENT; + if ( lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) ) + continue; + // Disable OOoImprovement page if not enabled { const ::rtl::OUString sService = C2U("com.sun.star.oooimprovement.CoreController"); - try { Reference < XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); @@ -1935,26 +1956,6 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame ) { continue; } - - SvxEmptyPage* pTempPage = new SvxEmptyPage( this ); - sPageTitle = pTempPage->GetText(); - delete pTempPage; - xub_StrLen nPos = sPageTitle.Search( rGeneralArray.GetString(0) ); - if ( nPos != STRING_NOTFOUND ) - { - xub_StrLen nLen = rGeneralArray.GetString(0).Len(); - if ( sPageTitle.GetChar( nPos + nLen ) == ' ' ) - nLen++; - else if ( nPos + nLen == sPageTitle.Len() && - sPageTitle.GetChar( nPos + nLen ) == ' ' ) - { - nPos++; - nLen++; - } - sPageTitle.Erase( nPos, nLen ); - } - if(sPageTitle.Len() > 0) - sNewTitle = sPageTitle; } if ( nPageId != RID_SVXPAGE_SSO || isSSOEnabled ) { diff --git a/svx/source/editeng/impedit3.cxx b/svx/source/editeng/impedit3.cxx index 93bbf1915ab0..d272991953c5 100644 --- a/svx/source/editeng/impedit3.cxx +++ b/svx/source/editeng/impedit3.cxx @@ -344,7 +344,19 @@ IMPL_LINK( ImpEditEngine, OnlineSpellHdl, Timer *, EMPTYARG ) IMPL_LINK_INLINE_START( ImpEditEngine, IdleFormatHdl, Timer *, EMPTYARG ) { aIdleFormatter.ResetRestarts(); - FormatAndUpdate( aIdleFormatter.GetView() ); + + // #i97146# check if that view is still available + // else probably the idle format timer fired while we're already + // downing + EditView* pView = aIdleFormatter.GetView(); + for( sal_uInt16 nView = 0; nView < aEditViews.Count(); nView++ ) + { + if( aEditViews[nView] == pView ) + { + FormatAndUpdate( pView ); + break; + } + } return 0; } IMPL_LINK_INLINE_END( ImpEditEngine, IdleFormatHdl, Timer *, EMPTYARG ) diff --git a/svx/source/form/fmctrler.cxx b/svx/source/form/fmctrler.cxx index 8fbac309c736..df9f34f4fa49 100644 --- a/svx/source/form/fmctrler.cxx +++ b/svx/source/form/fmctrler.cxx @@ -1912,7 +1912,7 @@ void FmXFormController::setControlLock(const Reference< XControl > & xControl) // a.) wenn der ganze Datensatz gesperrt ist // b.) wenn das zugehoerige Feld gespeert ist Reference< XBoundControl > xBound(xControl, UNO_QUERY); - if (xBound.is() && ((bLocked && bLocked != xBound->getLock() || + if (xBound.is() && (( (bLocked && bLocked != xBound->getLock()) || !bLocked))) // beim entlocken immer einzelne Felder ueberprüfen { // gibt es eine Datenquelle diff --git a/svx/source/form/fmtextcontrolshell.cxx b/svx/source/form/fmtextcontrolshell.cxx index 08643e025e19..cb8a46cd88a9 100644 --- a/svx/source/form/fmtextcontrolshell.cxx +++ b/svx/source/form/fmtextcontrolshell.cxx @@ -677,21 +677,21 @@ namespace svx SfxItemPool* pPool = EditEngine::CreatePool(); pPool->FreezeIdRanges(); - SfxItemSet aPureItems( *pPool ); + ::std::auto_ptr< SfxItemSet > pPureItems( new SfxItemSet( *pPool ) ); // put the current states of the items into the set - SfxAllItemSet aCurrentItems( aPureItems ); - transferFeatureStatesToItemSet( m_aControlFeatures, aCurrentItems ); + ::std::auto_ptr< SfxAllItemSet > pCurrentItems( new SfxAllItemSet( *pPureItems ) ); + transferFeatureStatesToItemSet( m_aControlFeatures, *pCurrentItems ); // additional items, which we are not responsible for at the SfxShell level, // but which need to be forwarded to the dialog, anyway ControlFeatures aAdditionalFestures; fillFeatureDispatchers( m_xActiveControl, pDialogSlots, aAdditionalFestures ); - transferFeatureStatesToItemSet( aAdditionalFestures, aCurrentItems, true ); + transferFeatureStatesToItemSet( aAdditionalFestures, *pCurrentItems, true ); ::std::auto_ptr< SfxTabDialog > pDialog ( _eSet == eCharAttribs - ? static_cast< SfxTabDialog* >( new TextControlCharAttribDialog( NULL, aCurrentItems, *pFontList ) ) - : static_cast< SfxTabDialog* >( new TextControlParaAttribDialog( NULL, aCurrentItems ) ) ); + ? static_cast< SfxTabDialog* >( new TextControlCharAttribDialog( NULL, *pCurrentItems, *pFontList ) ) + : static_cast< SfxTabDialog* >( new TextControlParaAttribDialog( NULL, *pCurrentItems ) ) ); if ( RET_OK == pDialog->Execute() ) { const SfxItemSet& rModifiedItems = *pDialog->GetOutputItemSet(); @@ -728,9 +728,9 @@ namespace svx Sequence< PropertyValue > aArgs; // temporarily put the modified item into a "clean" set, // and let TransformItems calc the respective UNO parameters - aPureItems.Put( *pModifiedItem ); - TransformItems( nSlotForItemSet, aPureItems, aArgs ); - aPureItems.ClearItem( nWhich ); + pPureItems->Put( *pModifiedItem ); + TransformItems( nSlotForItemSet, *pPureItems, aArgs ); + pPureItems->ClearItem( nWhich ); if ( ( nSlotForItemSet == SID_ATTR_PARA_HANGPUNCTUATION ) || ( nSlotForItemSet == SID_ATTR_PARA_FORBIDDEN_RULES ) @@ -775,6 +775,9 @@ namespace svx _rReq.Done( rModifiedItems ); } + pDialog.reset(); + pCurrentItems.reset(); + pPureItems.reset(); SfxItemPool::Free(pPool); } diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx index b6dc0a8186f2..fe56b2da4e61 100644 --- a/svx/source/svdraw/svdotextdecomposition.cxx +++ b/svx/source/svdraw/svdotextdecomposition.cxx @@ -206,6 +206,10 @@ namespace false)); basegfx::B2DHomMatrix aNewTransform; + // #i100489# need extra scale factor for DXArray which collects all scalings + // which are needed to get the DXArray to unit coordinates + double fDXArrayScaleFactor(aSize.getX()); + // add font scale to new transform aNewTransform.scale(aSize.getX(), aSize.getY()); @@ -214,6 +218,10 @@ namespace { const double fFactor(rInfo.mrFont.GetPropr() / 100.0); aNewTransform.scale(fFactor, fFactor); + + // #i100489# proportional font scaling influences the DXArray, + // add to factor + fDXArrayScaleFactor *= fFactor; } // apply font rotate @@ -265,7 +273,8 @@ namespace if(!bDisableTextArray && rInfo.mpDXArray && rInfo.mnTextLen) { - const double fScaleFactor(basegfx::fTools::equalZero(aSize.getX()) ? 1.0 : 1.0 / aSize.getX()); + // #i100489# use fDXArrayScaleFactor here + const double fScaleFactor(basegfx::fTools::equalZero(fDXArrayScaleFactor) ? 1.0 : 1.0 / fDXArrayScaleFactor); aDXArray.reserve(rInfo.mnTextLen); for(xub_StrLen a(0); a < rInfo.mnTextLen; a++) diff --git a/sysui/desktop/menus/calc.desktop b/sysui/desktop/menus/calc.desktop index f8e08e33ce3b..e49b114b0954 100644 --- a/sysui/desktop/menus/calc.desktop +++ b/sysui/desktop/menus/calc.desktop @@ -5,7 +5,7 @@ Icon=calc Type=Application Categories=Office;X-Red-Hat-Base;X-SuSE-Core-Office;X-MandrivaLinux-Office-Spreadsheets; Exec=openoffice -calc %U -MimeType=application/vnd.oasis.opendocument.spreadsheet;application/vnd.oasis.opendocument.spreadsheet-template;application/vnd.sun.xml.calc;application/vnd.sun.xml.calc.template;application/vnd.stardivision.calc;application/vnd.stardivision.chart;application/msexcel;application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.ms-excel.sheet.macroenabled.12;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.template.macroenabled.12;application/vnd.ms-excel.sheet.binary.macroenabled.12;text/csv; +MimeType=application/vnd.oasis.opendocument.spreadsheet;application/vnd.oasis.opendocument.spreadsheet-template;application/vnd.sun.xml.calc;application/vnd.sun.xml.calc.template;application/vnd.stardivision.calc;application/vnd.stardivision.chart;application/msexcel;application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.ms-excel.sheet.macroenabled.12;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.template.macroenabled.12;application/vnd.ms-excel.sheet.binary.macroenabled.12;text/csv;application/x-dbf; Name=%PRODUCTNAME Calc GenericName=Spreadsheet Comment=Perform calculation, analyze information and manage lists in spreadsheets by using Calc. diff --git a/sysui/desktop/solaris/copyright b/sysui/desktop/solaris/copyright index 4c8823c969e7..2ebebd6ed806 100644 --- a/sysui/desktop/solaris/copyright +++ b/sysui/desktop/solaris/copyright @@ -1,2 +1,2 @@ -Copyright 2005 Sun Microsystems, Inc. All rights reserved. +Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. diff --git a/sysui/desktop/solaris/makefile.mk b/sysui/desktop/solaris/makefile.mk index 25cf88ea32fb..9a2c606f6264 100644 --- a/sysui/desktop/solaris/makefile.mk +++ b/sysui/desktop/solaris/makefile.mk @@ -125,8 +125,8 @@ $(PKGFILES) : $(MISC)$/{$(PRODUCTLIST)}$/prototype @-$(RM) $(BIN)$/$(@:f) @$(MKDIRHIER) $(@:d) pkgmk -l 1073741824 -r . -f $(MISC)$/$(@:b:b:s/-/ /:1)$/prototype -o -d $(PKGDIR) ARCH=$(PKGARCH) VERSION=$(PKGVERSION.$(@:b:s/-/ /:1)),REV=$(PKGREV).$(PKGDATESTRING) - $(FASPAC) $(SOLARBINDIR)/faspac-so.sh -a -d $(PKGDIR) $(@:b:b:s/-/ /:1:s/.//)30-desktop-int - @tar -cf - -C $(PKGDIR) $(@:b:b:s/-/ /:1:s/.//)30-desktop-int | gzip > $@ - @rm -rf $(PKGDIR)/$(@:b:b:s/-/ /:1:s/.//)30-desktop-int + $(FASPAC) $(SOLARBINDIR)/faspac-so.sh -a -d $(PKGDIR) $(@:b:b:s/-/ /:1:s/.//)$(PRODUCTVERSIONSHORT)-desktop-int + @tar -cf - -C $(PKGDIR) $(@:b:b:s/-/ /:1:s/.//)$(PRODUCTVERSIONSHORT)-desktop-int | gzip > $@ + @rm -rf $(PKGDIR)/$(@:b:b:s/-/ /:1:s/.//)$(PRODUCTVERSIONSHORT)-desktop-int .ENDIF diff --git a/sysui/desktop/solaris/pkginfo b/sysui/desktop/solaris/pkginfo index 448096b1c26a..8fbf60ec812f 100644 --- a/sysui/desktop/solaris/pkginfo +++ b/sysui/desktop/solaris/pkginfo @@ -1,4 +1,4 @@ -PKG=%pkgprefix30-desktop-int +PKG=%pkgprefix3-desktop-int NAME=%PRODUCTNAME Solaris desktop integration CATEGORY=application BASEDIR=/ diff --git a/xmloff/source/chart/SchXMLTools.cxx b/xmloff/source/chart/SchXMLTools.cxx index 1650da2e3623..7915c9e4e8c1 100644 --- a/xmloff/source/chart/SchXMLTools.cxx +++ b/xmloff/source/chart/SchXMLTools.cxx @@ -613,18 +613,21 @@ bool isDocumentGeneratedWithOpenOfficeOlderThan2_3( const uno::Reference< frame: { bool bResult = false; ::rtl::OUString aGenerator( lcl_getGeneratorFromModel(xChartModel) ); + //if there is a meta stream at the chart object it was not written with an older OpenOffice version < 2.3 if( !aGenerator.getLength() ) { - //if there is no meta stream at the chart object it was not written with a newer OpenOffice version >= 2.3 - - //so it is sufficient to check now whether it was written by an OpenOffice version at all - //->check the meta information at the parent document + //if there is no meta stream at the chart object we need to check the version from the parent document + //and we need to check whether the document was created with OpenOffice.org at all uno::Reference< container::XChild > xChild( xChartModel, uno::UNO_QUERY ); if( xChild.is() ) { ::rtl::OUString aParentGenerator( lcl_getGeneratorFromModel( uno::Reference< frame::XModel >( xChild->getParent(), uno::UNO_QUERY) ) ); if( aParentGenerator.indexOf( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("OpenOffice.org_project") ) ) != -1 ) - bResult= true; + { + sal_Int32 nBuilId = lcl_getBuildIDFromGenerator( aParentGenerator ); + if( nBuilId<=9161 ) //9161 is build id of OpenOffice.org 2.2.1 + bResult= true; + } else if( ( aParentGenerator.indexOf( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("OpenOffice.org 1") ) ) == 0 ) || ( aParentGenerator.indexOf( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("StarOffice 6") ) ) == 0 ) -- cgit v1.2.3 From f242e25ce036b26a6da80d5c088ff69a5853eb23 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Fri, 24 Apr 2009 11:01:58 +0000 Subject: #i92516# cache output device --- sfx2/source/view/viewprn.cxx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 902f1d7c0e26..085cb1c58806 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -84,6 +84,8 @@ class SfxPrinterListener : public vcl::PrinterListener Reference< view::XRenderable > mxRenderable; sal_Bool mbApi; sal_Bool mbDirect; + mutable Printer* mpLastPrinter; + mutable Reference mxDevice; Sequence< beans::PropertyValue > getMergedOptions() const; public: @@ -108,6 +110,7 @@ SfxPrinterListener::SfxPrinterListener( const Reference< frame::XModel>& i_xMode , mxRenderable( i_xRender ) , mbApi( i_bApi ) , mbDirect( i_bDirect ) + , mpLastPrinter( NULL ) { // initialize extra ui options if( mxRenderable.is() ) @@ -135,13 +138,18 @@ SfxPrinterListener::~SfxPrinterListener() Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const { - VCLXDevice* pXDevice = new VCLXDevice(); boost::shared_ptr pPrinter( getPrinter() ); - pXDevice->SetOutputDevice( &(*pPrinter) ); + if( pPrinter.get() != mpLastPrinter ) + { + mpLastPrinter = pPrinter.get(); + VCLXDevice* pXDevice = new VCLXDevice(); + pXDevice->SetOutputDevice( mpLastPrinter ); + mxDevice = Reference< awt::XDevice >( pXDevice ); + } Sequence< beans::PropertyValue > aRenderOptions( 3 ); aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); - aRenderOptions[ 0 ].Value <<= Reference< awt::XDevice >( pXDevice ); + aRenderOptions[ 0 ].Value <<= mxDevice; aRenderOptions[ 1 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsApi" ) ); aRenderOptions[ 1 ].Value <<= mbApi; aRenderOptions[ 2 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDirect" ) ); -- cgit v1.2.3 From b615ebb9c2c6ee799b692e2a03c15dd62a076965 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Thu, 30 Apr 2009 09:49:41 +0000 Subject: #i92516# pass selection or whole document to XRenderable interface --- sfx2/source/view/viewprn.cxx | 48 ++++++++++++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 13 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 085cb1c58806..9dced99d21aa 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -80,7 +80,8 @@ TYPEINIT1(SfxPrintingHint, SfxHint); class SfxPrinterListener : public vcl::PrinterListener { - Reference< frame::XModel > mxModel; + Any maCompleteSelection; + Any maSelection; Reference< view::XRenderable > mxRenderable; sal_Bool mbApi; sal_Bool mbDirect; @@ -88,8 +89,10 @@ class SfxPrinterListener : public vcl::PrinterListener mutable Reference mxDevice; Sequence< beans::PropertyValue > getMergedOptions() const; + const Any& getSelectionObject() const; public: - SfxPrinterListener( const Reference< frame::XModel>& i_xModel, + SfxPrinterListener( const Any& i_rComplete, + const Any& i_rSelection, const Reference< view::XRenderable >& i_xRender, sal_Bool i_bApi, sal_Bool i_bDirect ); @@ -102,11 +105,13 @@ public: virtual void jobFinished(); // optional }; -SfxPrinterListener::SfxPrinterListener( const Reference< frame::XModel>& i_xModel, +SfxPrinterListener::SfxPrinterListener( const Any& i_rComplete, + const Any& i_rSelection, const Reference< view::XRenderable >& i_xRender, sal_Bool i_bApi, sal_Bool i_bDirect ) - : mxModel( i_xModel ) + : maCompleteSelection( i_rComplete ) + , maSelection( i_rSelection ) , mxRenderable( i_xRender ) , mbApi( i_bApi ) , mbDirect( i_bDirect ) @@ -117,7 +122,7 @@ SfxPrinterListener::SfxPrinterListener( const Reference< frame::XModel>& i_xMode { Sequence< beans::PropertyValue > aRenderOptions( 1 ); aRenderOptions[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ExtraPrintUIOptions" ) ); - Sequence< beans::PropertyValue > aRenderParms( mxRenderable->getRenderer( 0 , makeAny( mxModel ), aRenderOptions ) ); + Sequence< beans::PropertyValue > aRenderParms( mxRenderable->getRenderer( 0 , getSelectionObject(), aRenderOptions ) ); int nProps = aRenderParms.getLength(); for( int i = 0; i < nProps; i++ ) { @@ -136,6 +141,11 @@ SfxPrinterListener::~SfxPrinterListener() { } +const Any& SfxPrinterListener::getSelectionObject() const +{ + return getSelectionString().equalsAscii( "selection" ) ? maSelection : maCompleteSelection; +} + Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const { boost::shared_ptr pPrinter( getPrinter() ); @@ -166,7 +176,7 @@ int SfxPrinterListener::getPageCount() const if( mxRenderable.is() && pPrinter ) { Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); - nPages = mxRenderable->getRendererCount( makeAny( mxModel ), aJobOptions ); + nPages = mxRenderable->getRendererCount( getSelectionObject(), aJobOptions ); } return nPages; } @@ -179,7 +189,7 @@ Sequence< beans::PropertyValue > SfxPrinterListener::getPageParameters( int i_nP if( mxRenderable.is() && pPrinter ) { Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); - aResult = mxRenderable->getRenderer( i_nPage, makeAny( mxModel ), aJobOptions ); + aResult = mxRenderable->getRenderer( i_nPage, getSelectionObject(), aJobOptions ); } return aResult; } @@ -190,7 +200,7 @@ void SfxPrinterListener::printPage( int i_nPage ) const if( mxRenderable.is() && pPrinter ) { Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); - mxRenderable->render( i_nPage, makeAny( mxModel ), aJobOptions ); + mxRenderable->render( i_nPage, getSelectionObject(), aJobOptions ); } } @@ -949,11 +959,23 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) case SID_PRINTDOC: case SID_PRINTDOCDIRECT: { - boost::shared_ptr pListener( new SfxPrinterListener( GetObjectShell()->GetModel(), - GetRenderable(), - bIsAPI, - nId == SID_PRINTDOCDIRECT - ) ); + // get the current selection; our controller should know it + Reference< frame::XController > xController( GetController() ); + Reference< view::XSelectionSupplier > xSupplier( xController, UNO_QUERY ); + + Any aSelection; + if( xSupplier.is() ) + aSelection = xSupplier->getSelection(); + else + aSelection <<= GetObjectShell()->GetModel(); + Any aComplete( makeAny( GetObjectShell()->GetModel() ) ); + + boost::shared_ptr pListener( new SfxPrinterListener( aComplete, + aSelection, + GetRenderable(), + bIsAPI, + nId == SID_PRINTDOCDIRECT + ) ); // FIXME: job setup JobSetup aJobSetup; if( nId == SID_PRINTDOCDIRECT ) -- cgit v1.2.3 From 17b70a6f5c4c7b454ca9c349bdda30dd2e9b5d07 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Thu, 30 Apr 2009 12:43:49 +0000 Subject: #i92516# pass view as property --- sfx2/source/view/viewprn.cxx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 9dced99d21aa..1db06ee55ea6 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -82,6 +82,7 @@ class SfxPrinterListener : public vcl::PrinterListener { Any maCompleteSelection; Any maSelection; + Any maViewProperty; Reference< view::XRenderable > mxRenderable; sal_Bool mbApi; sal_Bool mbDirect; @@ -93,6 +94,7 @@ class SfxPrinterListener : public vcl::PrinterListener public: SfxPrinterListener( const Any& i_rComplete, const Any& i_rSelection, + const Any& i_rViewProp, const Reference< view::XRenderable >& i_xRender, sal_Bool i_bApi, sal_Bool i_bDirect ); @@ -107,11 +109,13 @@ public: SfxPrinterListener::SfxPrinterListener( const Any& i_rComplete, const Any& i_rSelection, + const Any& i_rViewProp, const Reference< view::XRenderable >& i_xRender, sal_Bool i_bApi, sal_Bool i_bDirect ) : maCompleteSelection( i_rComplete ) , maSelection( i_rSelection ) + , maViewProperty( i_rViewProp ) , mxRenderable( i_xRender ) , mbApi( i_bApi ) , mbDirect( i_bDirect ) @@ -157,13 +161,15 @@ Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const mxDevice = Reference< awt::XDevice >( pXDevice ); } - Sequence< beans::PropertyValue > aRenderOptions( 3 ); + Sequence< beans::PropertyValue > aRenderOptions( 4 ); aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); aRenderOptions[ 0 ].Value <<= mxDevice; aRenderOptions[ 1 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsApi" ) ); aRenderOptions[ 1 ].Value <<= mbApi; aRenderOptions[ 2 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDirect" ) ); aRenderOptions[ 2 ].Value <<= mbDirect; + aRenderOptions[ 3 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "View" ) ); + aRenderOptions[ 3 ].Value = maViewProperty; aRenderOptions = getJobProperties( aRenderOptions ); return aRenderOptions; @@ -969,9 +975,11 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) else aSelection <<= GetObjectShell()->GetModel(); Any aComplete( makeAny( GetObjectShell()->GetModel() ) ); + Any aViewProp( makeAny( xController ) ); boost::shared_ptr pListener( new SfxPrinterListener( aComplete, aSelection, + aViewProp, GetRenderable(), bIsAPI, nId == SID_PRINTDOCDIRECT -- cgit v1.2.3 From 70f9e3f8624fae519a48f82b5e657c083d929d5d Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Wed, 13 May 2009 09:03:31 +0000 Subject: #i92516# property IsPrinter --- sfx2/source/view/viewprn.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 1db06ee55ea6..6fc6b98134f2 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -161,7 +161,7 @@ Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const mxDevice = Reference< awt::XDevice >( pXDevice ); } - Sequence< beans::PropertyValue > aRenderOptions( 4 ); + Sequence< beans::PropertyValue > aRenderOptions( 5 ); aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); aRenderOptions[ 0 ].Value <<= mxDevice; aRenderOptions[ 1 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsApi" ) ); @@ -170,6 +170,8 @@ Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const aRenderOptions[ 2 ].Value <<= mbDirect; aRenderOptions[ 3 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "View" ) ); aRenderOptions[ 3 ].Value = maViewProperty; + aRenderOptions[ 4 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsPrinter" ) ); + aRenderOptions[ 4 ].Value = makeAny( sal_True ); aRenderOptions = getJobProperties( aRenderOptions ); return aRenderOptions; -- cgit v1.2.3 From 1352a683fd5371d504680dd33c55afe77796d9e0 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Fri, 22 May 2009 07:09:13 +0000 Subject: #i101309# need the page range controls app specific --- sfx2/source/view/viewprn.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 6fc6b98134f2..d9fe4bdea36a 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -147,7 +147,9 @@ SfxPrinterListener::~SfxPrinterListener() const Any& SfxPrinterListener::getSelectionObject() const { - return getSelectionString().equalsAscii( "selection" ) ? maSelection : maCompleteSelection; + // FIXME + // return getSelectionString().equalsAscii( "selection" ) ? maSelection : maCompleteSelection; + return maCompleteSelection; } Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const @@ -967,6 +969,8 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) case SID_PRINTDOC: case SID_PRINTDOCDIRECT: { + // FIXME: set properties from SfxRequest + // get the current selection; our controller should know it Reference< frame::XController > xController( GetController() ); Reference< view::XSelectionSupplier > xSupplier( xController, UNO_QUERY ); -- cgit v1.2.3 From 98d192ca3619e32e7437124a1f26cff7bb778518 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Fri, 22 May 2009 11:27:50 +0000 Subject: #i92516# print range needs to be app specific --- sfx2/source/view/viewprn.cxx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index d9fe4bdea36a..9a4c4abd276e 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -147,9 +147,11 @@ SfxPrinterListener::~SfxPrinterListener() const Any& SfxPrinterListener::getSelectionObject() const { - // FIXME - // return getSelectionString().equalsAscii( "selection" ) ? maSelection : maCompleteSelection; - return maCompleteSelection; + sal_Int32 nChoice = 0; + const beans::PropertyValue* pVal = getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintContent" ) ) ); + if( pVal ) + pVal->Value >>= nChoice; + return nChoice > 1 ? maSelection : maCompleteSelection; } Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const -- cgit v1.2.3 From 9ffb846a6dbfa48c40d5eb02cdb9e4d8dcab5e66 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Thu, 4 Jun 2009 09:52:09 +0000 Subject: need GetViewShell_Impl in sw --- sfx2/inc/sfx2/sfxbasecontroller.hxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'sfx2') diff --git a/sfx2/inc/sfx2/sfxbasecontroller.hxx b/sfx2/inc/sfx2/sfxbasecontroller.hxx index c952e550996e..3debe10f001d 100644 --- a/sfx2/inc/sfx2/sfxbasecontroller.hxx +++ b/sfx2/inc/sfx2/sfxbasecontroller.hxx @@ -493,7 +493,9 @@ public: virtual void SAL_CALL removeTitleChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XTitleChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); //#if 0 // _SOLAR__PRIVATE - SAL_DLLPRIVATE SfxViewShell* GetViewShell_Impl() const; + // FIXME: TL needs this in sw/source/ui/uno/unotxdoc.cxx now; + // either the _Impl name should vanish or there should be an "official" API + SfxViewShell* GetViewShell_Impl() const; SAL_DLLPRIVATE BOOL HandleEvent_Impl( NotifyEvent& rEvent ); SAL_DLLPRIVATE BOOL HasKeyListeners_Impl(); SAL_DLLPRIVATE BOOL HasMouseClickListeners_Impl(); -- cgit v1.2.3 From 187d9b0f6476fca7244a673c74c4ddc568e8c1b3 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Thu, 11 Jun 2009 15:32:40 +0000 Subject: make compile again, needs adaption ? --- sfx2/source/doc/objcont.cxx | 15 +++++++++++++++ sfx2/source/view/viewprn.cxx | 17 +++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/doc/objcont.cxx b/sfx2/source/doc/objcont.cxx index 866c7b029cb5..85e776bfd0fb 100644 --- a/sfx2/source/doc/objcont.cxx +++ b/sfx2/source/doc/objcont.cxx @@ -1005,6 +1005,7 @@ BOOL SfxObjectShell::Remove //-------------------------------------------------------------------- +#if 0 BOOL SfxObjectShell::Print ( Printer& rPrt, @@ -1152,6 +1153,20 @@ BOOL SfxObjectShell::Print } return TRUE; } +#else +BOOL SfxObjectShell::Print +( + Printer&, + USHORT, + USHORT, + USHORT, + const String* +) +{ + DBG_ERROR( "SfxObjectShell::Print, dead code !" ); + return FALSE; +} +#endif //-------------------------------------------------------------------- diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 9a4c4abd276e..94aba105ac1f 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -1011,7 +1011,7 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) //-------------------------------------------------------------------- -PrintDialog* SfxViewShell::CreatePrintDialog( Window* pParent ) +PrintDialog* SfxViewShell::CreatePrintDialog( Window* /*pParent*/ ) /* [Beschreibung] @@ -1021,11 +1021,15 @@ PrintDialog* SfxViewShell::CreatePrintDialog( Window* pParent ) */ { + #if 0 PrintDialog *pDlg = new PrintDialog( pParent, false ); pDlg->SetFirstPage( 1 ); pDlg->SetLastPage( 9999 ); pDlg->EnableCollate(); return pDlg; + #else + return NULL; + #endif } //-------------------------------------------------------------------- @@ -1037,10 +1041,11 @@ void SfxViewShell::PreparePrint( PrintDialog * ) //-------------------------------------------------------------------- -ErrCode SfxViewShell::DoPrint( SfxPrinter *pPrinter, - PrintDialog *pPrintDlg, - BOOL bSilent, BOOL bIsAPI ) +ErrCode SfxViewShell::DoPrint( SfxPrinter* /*pPrinter*/, + PrintDialog* /*pPrintDlg*/, + BOOL /*bSilent*/, BOOL /*bIsAPI*/ ) { + #if 0 // Printer-Dialogbox waehrend des Ausdrucks mu\s schon vor // StartJob erzeugt werden, da SV bei einem Quit-Event h"angt SfxPrintProgress *pProgress = new SfxPrintProgress( this, !bSilent ); @@ -1072,6 +1077,10 @@ ErrCode SfxViewShell::DoPrint( SfxPrinter *pPrinter, } return pPrinter->GetError(); + #else + DBG_ERROR( "DoPrint called, dead code !" ); + return ERRCODE_IO_NOTSUPPORTED; + #endif } //-------------------------------------------------------------------- -- cgit v1.2.3 From 39624916389a6b18e8494927a00c9f4d5237f8f2 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Fri, 12 Jun 2009 15:22:27 +0000 Subject: #i92516# remove old StartPage/EndPage API --- basic/source/app/printer.cxx | 20 ++++++++++++++------ sfx2/inc/sfx2/objsh.hxx | 2 +- sfx2/source/view/prnmon.cxx | 6 ++++-- sfx2/source/view/viewprn.cxx | 6 +++--- 4 files changed, 22 insertions(+), 12 deletions(-) (limited to 'sfx2') diff --git a/basic/source/app/printer.cxx b/basic/source/app/printer.cxx index 6f173fd53ffa..94097f5b1f7a 100644 --- a/basic/source/app/printer.cxx +++ b/basic/source/app/printer.cxx @@ -76,16 +76,21 @@ BasicPrinter::BasicPrinter() : Printer() // Output: 6 Lines/Inch = 12 Point nLines = (short) s.Height() / 12; nYoff = 12; + // FIXME: new API + #if 0 SetStartPrintHdl( LINK( this, BasicPrinter, StartPrintHdl ) ); SetEndPrintHdl( LINK( this, BasicPrinter, EndPrintHdl ) ); SetPrintPageHdl( LINK( this, BasicPrinter, PrintPageHdl ) ); + #endif } void BasicPrinter::Header() { - if( nPage ) EndPage(); + // FIXME: new API + // if( nPage ) EndPage(); nPage++; - StartPage(); + // FIXME: new API + // StartPage(); String aHdr; String aPage( SttResId( IDS_PAGE ) ); aPage.Append( String::CreateFromInt32(nPage) ); @@ -116,8 +121,10 @@ void BasicPrinter::Print( const String& rFile, const String& rText, BasicFrame * pDlg->ChangeMessage( 1 ); pDlg->Show(); - StartJob( rFile ); - StartPage(); + + // FIXME: new API + // StartJob( rFile ); + // StartPage(); xub_StrLen nDone=0; while( nDone < rText.Len() ) { @@ -130,8 +137,9 @@ void BasicPrinter::Print( const String& rFile, const String& rText, BasicFrame * nLine++; Application::Reschedule(); } - EndPage(); - EndJob(); + // FIXME: new API + // EndPage(); + // EndJob(); nPage = 1; while( IsPrinting() ) Application::Reschedule(); delete pDlg; pDlg = NULL; diff --git a/sfx2/inc/sfx2/objsh.hxx b/sfx2/inc/sfx2/objsh.hxx index 3f2d710cfe51..bfb434cdbb54 100644 --- a/sfx2/inc/sfx2/objsh.hxx +++ b/sfx2/inc/sfx2/objsh.hxx @@ -585,7 +585,7 @@ public: sal_uInt16 nIdx2 = INDEX_IGNORE, sal_uInt16 nIdx3 = INDEX_IGNORE); - virtual sal_Bool Print( Printer &rPrt, + sal_Bool Print( Printer &rPrt, sal_uInt16 nIdx1, sal_uInt16 nIdx2 = INDEX_IGNORE, sal_uInt16 nIdx3 = INDEX_IGNORE, diff --git a/sfx2/source/view/prnmon.cxx b/sfx2/source/view/prnmon.cxx index 9fdd29db2805..c4ca47439ee1 100644 --- a/sfx2/source/view/prnmon.cxx +++ b/sfx2/source/view/prnmon.cxx @@ -274,10 +274,12 @@ SfxPrintProgress::SfxPrintProgress( SfxViewShell* pViewSh, FASTBOOL bShow ) String(SfxResId(STR_PRINTING)), 1, FALSE ), pImp( new SfxPrintProgress_Impl( pViewSh, pViewSh->GetPrinter() ) ) { + #if 0 pImp->pPrinter->SetEndPrintHdl( LINK( this, SfxPrintProgress, EndPrintNotify ) ); pImp->pPrinter->SetErrorHdl( LINK( this, SfxPrintProgress, PrintErrorNotify ) ); pImp->pPrinter->SetStartPrintHdl( LINK( this, SfxPrintProgress, StartPrintNotify ) ); pImp->bCallbacks = TRUE; + #endif SfxObjectShell* pDoc = pViewSh->GetObjectShell(); SFX_ITEMSET_ARG( pDoc->GetMedium()->GetItemSet(), pItem, SfxBoolItem, SID_HIDDEN, FALSE ); @@ -307,7 +309,7 @@ SfxPrintProgress::~SfxPrintProgress() // ggf. Callbacks entfermen if ( pImp->bCallbacks ) { - pImp->pPrinter->SetEndPrintHdl( Link() ); + // pImp->pPrinter->SetEndPrintHdl( Link() ); pImp->pPrinter->SetErrorHdl( Link() ); pImp->bCallbacks = FALSE; } @@ -410,7 +412,7 @@ IMPL_LINK( SfxPrintProgress, EndPrintNotify, void *, EMPTYARG ) //! if( pMDI->IsPrinterChanged() ) pMDI->Changed( 0L ); // Callbacks rausnehmen - pImp->pPrinter->SetEndPrintHdl( Link() ); + // pImp->pPrinter->SetEndPrintHdl( Link() ); pImp->pPrinter->SetErrorHdl( Link() ); pImp->bCallbacks = FALSE; diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 94aba105ac1f..80393c7498a3 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -891,7 +891,7 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) return; } - pPrinter->SetNextJobIsQuick(); + // pPrinter->SetNextJobIsQuick(); } // if "Collate" was checked, the SfxPrinter must handle the CopyCount itself, @@ -903,7 +903,7 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) pPrinter->SetCopyCount( nCopies ); // enable background printing - pPrinter->SetPageQueueSize( 1 ); + // pPrinter->SetPageQueueSize( 1 ); // refresh document info using namespace ::com::sun::star; @@ -961,7 +961,7 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) rReq.Ignore(); } - pPrinter->SetNextJobIsQuick( false ); + // pPrinter->SetNextJobIsQuick( false ); delete pPrintDlg; } -- cgit v1.2.3 From caa199c9f366a3461d63dea90e4972e287529ada Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Fri, 12 Jun 2009 16:35:25 +0000 Subject: #i92516# use helper class to fix old style printing routines --- sfx2/source/doc/objcont.cxx | 94 +++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 59 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/doc/objcont.cxx b/sfx2/source/doc/objcont.cxx index 85e776bfd0fb..0cac065f435f 100644 --- a/sfx2/source/doc/objcont.cxx +++ b/sfx2/source/doc/objcont.cxx @@ -62,6 +62,7 @@ #include #include #include +#include #include #include "sfxresid.hxx" @@ -1005,7 +1006,6 @@ BOOL SfxObjectShell::Remove //-------------------------------------------------------------------- -#if 0 BOOL SfxObjectShell::Print ( Printer& rPrt, @@ -1032,26 +1032,18 @@ BOOL SfxObjectShell::Print if ( !pStyle ) return TRUE; - if ( !rPrt.StartJob(String(SfxResId(STR_STYLES))) ) - { - delete pIter; - return FALSE; - } - if ( !rPrt.StartPage() ) - { - delete pIter; - return FALSE; - } - Reference< task::XStatusIndicator > xStatusIndicator; - xStatusIndicator = SFX_APP()->GetStatusIndicator(); - if ( xStatusIndicator.is() ) - xStatusIndicator->start( String(SfxResId(STR_PRINT_STYLES)), nStyles ); + // pepare adaptor for old style StartPage/EndPage printing + boost::shared_ptr< Printer > pPrinter( new Printer( rPrt.GetJobSetup() ) ); + vcl::OldStylePrintAdaptor* pAdaptor = new vcl::OldStylePrintAdaptor( pPrinter ); + boost::shared_ptr< vcl::PrinterListener > pListener( pAdaptor ); - rPrt.SetMapMode(MapMode(MAP_10TH_MM)); + pAdaptor->StartPage(); + + pPrinter->SetMapMode(MapMode(MAP_10TH_MM)); Font aFont( DEFINE_CONST_UNICODE( "Arial" ), Size(0, 64)); // 18pt aFont.SetWeight(WEIGHT_BOLD); - rPrt.SetFont(aFont); - const Size aPageSize(rPrt.GetOutputSize()); + pPrinter->SetFont(aFont); + const Size aPageSize(pPrinter->GetOutputSize()); const USHORT nXIndent = 200; USHORT nYIndent = 200; Point aOutPos(nXIndent, nYIndent); @@ -1060,68 +1052,66 @@ BOOL SfxObjectShell::Print aHeader += *pObjectName; else aHeader += GetTitle(); - long nTextHeight( rPrt.GetTextHeight() ); - rPrt.DrawText(aOutPos, aHeader); + long nTextHeight( pPrinter->GetTextHeight() ); + pPrinter->DrawText(aOutPos, aHeader); aOutPos.Y() += nTextHeight; aOutPos.Y() += nTextHeight/2; aFont.SetSize(Size(0, 35)); // 10pt nStyles = 1; while(pStyle) { - if ( xStatusIndicator.is() ) - xStatusIndicator->setValue( nStyles++ ); - // Ausgabe des Vorlagennamens + // print template name String aStr(pStyle->GetName()); aFont.SetWeight(WEIGHT_BOLD); - rPrt.SetFont(aFont); - nTextHeight = rPrt.GetTextHeight(); - // Seitenwechsel + pPrinter->SetFont(aFont); + nTextHeight = pPrinter->GetTextHeight(); + // check for new page if ( aOutPos.Y() + nTextHeight*2 > aPageSize.Height() - (long) nYIndent ) { - rPrt.EndPage(); - rPrt.StartPage(); + pAdaptor->EndPage(); + pAdaptor->StartPage(); aOutPos.Y() = nYIndent; } - rPrt.DrawText(aOutPos, aStr); + pPrinter->DrawText(aOutPos, aStr); aOutPos.Y() += nTextHeight; - // Ausgabe der Vorlagenbeschreibung + // print template description aFont.SetWeight(WEIGHT_NORMAL); - rPrt.SetFont(aFont); + pPrinter->SetFont(aFont); aStr = pStyle->GetDescription(); const char cDelim = ' '; USHORT nStart = 0, nIdx = 0; - nTextHeight = rPrt.GetTextHeight(); - // wie viele Worte passen auf eine Zeile + nTextHeight = pPrinter->GetTextHeight(); + // break text into lines while(nIdx < aStr.Len()) { USHORT nOld = nIdx; long nTextWidth; nIdx = aStr.Search(cDelim, nStart); - nTextWidth = rPrt.GetTextWidth(aStr, nStart, nIdx-nStart); + nTextWidth = pPrinter->GetTextWidth(aStr, nStart, nIdx-nStart); while(nIdx != STRING_NOTFOUND && aOutPos.X() + nTextWidth < aPageSize.Width() - (long) nXIndent) { nOld = nIdx; nIdx = aStr.Search(cDelim, nIdx+1); - nTextWidth = rPrt.GetTextWidth(aStr, nStart, nIdx-nStart); + nTextWidth = pPrinter->GetTextWidth(aStr, nStart, nIdx-nStart); } String aTmp(aStr, nStart, nIdx == STRING_NOTFOUND? STRING_LEN : nOld-nStart); if ( aTmp.Len() ) { - nStart = nOld+1; // wegen trailing space + nStart = nOld+1; // trailing space } else { USHORT nChar = 1; while( nStart + nChar < aStr.Len() && - aOutPos.X() + rPrt.GetTextWidth( + aOutPos.X() + pPrinter->GetTextWidth( aStr, nStart, nChar) < aPageSize.Width() - nXIndent) ++nChar; @@ -1132,19 +1122,19 @@ BOOL SfxObjectShell::Print if ( aOutPos.Y() + nTextHeight*2 > aPageSize.Height() - nYIndent ) { - rPrt.EndPage(); - rPrt.StartPage(); + pAdaptor->EndPage(); + pAdaptor->StartPage(); aOutPos.Y() = nYIndent; } - rPrt.DrawText(aOutPos, aTmp); - aOutPos.Y() += rPrt.GetTextHeight(); + pPrinter->DrawText(aOutPos, aTmp); + aOutPos.Y() += pPrinter->GetTextHeight(); } pStyle = pIter->Next(); } - rPrt.EndPage(); - rPrt.EndJob(); - if ( xStatusIndicator.is() ) - xStatusIndicator->end(); + pAdaptor->EndPage(); + + Printer::PrintJob( pListener, rPrt.GetJobSetup() ); + delete pIter; break; } @@ -1153,20 +1143,6 @@ BOOL SfxObjectShell::Print } return TRUE; } -#else -BOOL SfxObjectShell::Print -( - Printer&, - USHORT, - USHORT, - USHORT, - const String* -) -{ - DBG_ERROR( "SfxObjectShell::Print, dead code !" ); - return FALSE; -} -#endif //-------------------------------------------------------------------- -- cgit v1.2.3 From f1270bdd34159baa3e11bcf98b300e36decc3602 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Wed, 24 Jun 2009 15:22:35 +0000 Subject: add: PrinterListener::setValue --- sfx2/source/view/viewprn.cxx | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 80393c7498a3..597b1173d640 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -82,10 +82,7 @@ class SfxPrinterListener : public vcl::PrinterListener { Any maCompleteSelection; Any maSelection; - Any maViewProperty; Reference< view::XRenderable > mxRenderable; - sal_Bool mbApi; - sal_Bool mbDirect; mutable Printer* mpLastPrinter; mutable Reference mxDevice; @@ -115,10 +112,7 @@ SfxPrinterListener::SfxPrinterListener( const Any& i_rComplete, ) : maCompleteSelection( i_rComplete ) , maSelection( i_rSelection ) - , maViewProperty( i_rViewProp ) , mxRenderable( i_xRender ) - , mbApi( i_bApi ) - , mbDirect( i_bDirect ) , mpLastPrinter( NULL ) { // initialize extra ui options @@ -139,6 +133,12 @@ SfxPrinterListener::SfxPrinterListener( const Any& i_rComplete, } } } + + // set some job parameters + setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsApi" ) ), makeAny( i_bApi ) ); + setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDirect" ) ), makeAny( i_bDirect ) ); + setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsPrinter" ) ), makeAny( sal_True ) ); + setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "View" ) ), makeAny( i_rViewProp ) ); } SfxPrinterListener::~SfxPrinterListener() @@ -165,17 +165,9 @@ Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const mxDevice = Reference< awt::XDevice >( pXDevice ); } - Sequence< beans::PropertyValue > aRenderOptions( 5 ); + Sequence< beans::PropertyValue > aRenderOptions( 1 ); aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); aRenderOptions[ 0 ].Value <<= mxDevice; - aRenderOptions[ 1 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsApi" ) ); - aRenderOptions[ 1 ].Value <<= mbApi; - aRenderOptions[ 2 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDirect" ) ); - aRenderOptions[ 2 ].Value <<= mbDirect; - aRenderOptions[ 3 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "View" ) ); - aRenderOptions[ 3 ].Value = maViewProperty; - aRenderOptions[ 4 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsPrinter" ) ); - aRenderOptions[ 4 ].Value = makeAny( sal_True ); aRenderOptions = getJobProperties( aRenderOptions ); return aRenderOptions; -- cgit v1.2.3 From 4d23a2308041f28c92019b86bc292fbdf6575c47 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Fri, 26 Jun 2009 10:51:07 +0000 Subject: #i92516# add: jobStarted, PrintableState --- sfx2/source/view/viewprn.cxx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 597b1173d640..ae0cde46852a 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -101,7 +101,8 @@ public: virtual int getPageCount() const; virtual Sequence< beans::PropertyValue > getPageParameters( int i_nPage ) const; virtual void printPage( int i_nPage ) const; - virtual void jobFinished(); // optional + virtual void jobStarted(); + virtual void jobFinished( com::sun::star::view::PrintableState ); }; SfxPrinterListener::SfxPrinterListener( const Any& i_rComplete, @@ -208,7 +209,11 @@ void SfxPrinterListener::printPage( int i_nPage ) const } } -void SfxPrinterListener::jobFinished() +void SfxPrinterListener::jobStarted() +{ +} + +void SfxPrinterListener::jobFinished( com::sun::star::view::PrintableState ) { } -- cgit v1.2.3 From fb5de508c0df7446e147cdcfe77e182d302c3e18 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Fri, 26 Jun 2009 14:03:58 +0000 Subject: #i92516# add: JobName --- sfx2/source/view/viewprn.cxx | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index ae0cde46852a..3cc79b8133b5 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -989,6 +989,10 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) bIsAPI, nId == SID_PRINTDOCDIRECT ) ); + SfxObjectShell *pObjShell = GetObjectShell(); + pListener->setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "JobName" ) ), + makeAny( rtl::OUString( pObjShell->GetTitle(0) ) ) ); + // FIXME: job setup JobSetup aJobSetup; if( nId == SID_PRINTDOCDIRECT ) -- cgit v1.2.3 From 631b9d8b113c10d04809461670be76178c27fce9 Mon Sep 17 00:00:00 2001 From: Mathias Bauer Date: Wed, 1 Jul 2009 14:01:46 +0000 Subject: #i92516#: separate API and UI printing --- sfx2/inc/sfx2/event.hxx | 19 +- sfx2/inc/sfx2/prnmon.hxx | 12 +- sfx2/inc/sfx2/viewsh.hxx | 1 + sfx2/source/doc/printhelper.cxx | 72 +- sfx2/source/view/makefile.mk | 3 +- sfx2/source/view/viewprn.cxx | 2167 ++++++++++++++++++--------------------- sfx2/source/view/viewsh.cxx | 2 +- 7 files changed, 1063 insertions(+), 1213 deletions(-) (limited to 'sfx2') diff --git a/sfx2/inc/sfx2/event.hxx b/sfx2/inc/sfx2/event.hxx index cd83103c8196..8adcf757c71a 100644 --- a/sfx2/inc/sfx2/event.hxx +++ b/sfx2/inc/sfx2/event.hxx @@ -113,30 +113,21 @@ class PrintDialog; class Printer; class SfxPrintingHint : public SfxHint { - PrintDialog* pDialog; - Printer* pPrinter; sal_Int32 nWhich; com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue > aOpts; public: TYPEINFO(); - SfxPrintingHint( sal_Int32 nEvent, PrintDialog* pDlg, Printer* pPrt, const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& rOpts ) - : pDialog( pDlg ) - , pPrinter( pPrt ) - , nWhich( nEvent ) + SfxPrintingHint( sal_Int32 nEvent, const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& rOpts ) + : nWhich( nEvent ) , aOpts( rOpts ) {} - SfxPrintingHint( sal_Int32 nEvent, PrintDialog* pDlg, Printer* pPrt ) - : pDialog( pDlg ) - , pPrinter( pPrt ) - , nWhich( nEvent ) + SfxPrintingHint( sal_Int32 nEvent ) + : nWhich( nEvent ) {} - - Printer* GetPrinter() const { return pPrinter; } - PrintDialog* GetPrintDialog() const { return pDialog; } sal_Int32 GetWhich() const { return nWhich; } - const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& GetAdditionalOptions() { return aOpts; } + const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& GetOptions() { return aOpts; } }; #endif diff --git a/sfx2/inc/sfx2/prnmon.hxx b/sfx2/inc/sfx2/prnmon.hxx index ad47f6ce2633..376a599edef4 100644 --- a/sfx2/inc/sfx2/prnmon.hxx +++ b/sfx2/inc/sfx2/prnmon.hxx @@ -33,17 +33,13 @@ #include "sal/config.h" #include "sfx2/dllapi.h" -#ifndef _BUTTON_HXX //autogen #include -#endif -#ifndef _DIALOG_HXX //autogen #include -#endif #include -#include +//#include class SfxViewShell; -class SfxProgress; +//class SfxProgress; struct SfxPrintProgress_Impl; // ------------------------------------------------------------------------ @@ -51,7 +47,7 @@ struct SfxPrintProgress_Impl; #define PAGE_MAX 9999 //max. Anzahl der Seiten die gedruckt werden //-------------------------------------------------------------------- - +/* class SFX2_DLLPUBLIC SfxPrintProgress: public SfxProgress { SfxPrintProgress_Impl* pImp; @@ -78,7 +74,7 @@ public: void SetCancelHdl( const Link& aCancelHdl ); BOOL IsAborted() const; }; - +*/ // ------------------------------------------------------------------------ struct SfxPrintOptDlg_Impl; diff --git a/sfx2/inc/sfx2/viewsh.hxx b/sfx2/inc/sfx2/viewsh.hxx index 04e0405d6d41..135d5f83dae7 100644 --- a/sfx2/inc/sfx2/viewsh.hxx +++ b/sfx2/inc/sfx2/viewsh.hxx @@ -307,6 +307,7 @@ public: BOOL TryContextMenuInterception( Menu& rIn, const ::rtl::OUString& rMenuIdentifier, Menu*& rpOut, ::com::sun::star::ui::ContextMenuExecuteEvent aEvent ); void SetAdditionalPrintOptions( const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& ); + void ExecPrint( const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >&, sal_Bool, sal_Bool ); #if _SOLAR__PRIVATE SAL_DLLPRIVATE SfxInPlaceClient* GetUIActiveIPClient_Impl() const; diff --git a/sfx2/source/doc/printhelper.cxx b/sfx2/source/doc/printhelper.cxx index 07d218fcd690..fce576b041da 100755 --- a/sfx2/source/doc/printhelper.cxx +++ b/sfx2/source/doc/printhelper.cxx @@ -148,8 +148,9 @@ Reference< ::com::sun::star::view::XPrintable > SAL_CALL SfxPrintJob_Impl::getPr void SAL_CALL SfxPrintJob_Impl::cancelJob() throw (RuntimeException) { + // FIXME: how to cancel PrintJob via API?! if( m_pData->m_pObjectShell.Is() ) - m_pData->m_pObjectShell->Broadcast( SfxPrintingHint( -2, NULL, NULL ) ); + m_pData->m_pObjectShell->Broadcast( SfxPrintingHint( -2 ) ); } SfxPrintHelper::SfxPrintHelper() @@ -511,7 +512,7 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >& if ( !pView ) return; - SfxAllItemSet aArgs( pView->GetPool() ); +// SfxAllItemSet aArgs( pView->GetPool() ); sal_Bool bMonitor = sal_False; // We need this information at the end of this method, if we start the vcl printer // by executing the slot. Because if it is a ucb relevant URL we must wait for @@ -522,6 +523,8 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >& String sUcbUrl; ::utl::TempFile* pUCBPrintTempFile = NULL; + uno::Sequence < beans::PropertyValue > aCheckedArgs( rOptions.getLength() ); + sal_Int32 nProps = 0; sal_Bool bWaitUntilEnd = sal_False; for ( int n = 0; n < rOptions.getLength(); ++n ) { @@ -555,10 +558,11 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >& // converted its not an URL nor a system path. Then we can't accept // this parameter and have to throw an exception. ::rtl::OUString sSystemPath(sTemp); - ::rtl::OUString sFileURL ; + ::rtl::OUString sFileURL; if (::osl::FileBase::getFileURLFromSystemPath(sSystemPath,sFileURL)!=::osl::FileBase::E_None) throw ::com::sun::star::lang::IllegalArgumentException(); - aArgs.Put( SfxStringItem(SID_FILE_NAME,sTemp) ); + aCheckedArgs[nProps].Name = rProp.Name; + aCheckedArgs[nProps++].Value <<= sFileURL; } else // It's a valid URL. but now we must know, if it is a local one or not. @@ -569,7 +573,8 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >& // And we have to use the system notation of the incoming URL. // But it into the descriptor and let the slot be executed at // the end of this method. - aArgs.Put( SfxStringItem(SID_FILE_NAME,sPath) ); + aCheckedArgs[nProps].Name = rProp.Name; + aCheckedArgs[nProps++].Value <<= sTemp; } else { @@ -584,7 +589,10 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >& // a slot ... pUCBPrintTempFile = new ::utl::TempFile(); pUCBPrintTempFile->EnableKillingFile(); - aArgs.Put( SfxStringItem(SID_FILE_NAME,pUCBPrintTempFile->GetFileName()) ); + + //FIXME: does it work? + aCheckedArgs[nProps].Name = rtl::OUString::createFromAscii("LocalFileName"); + aCheckedArgs[nProps++].Value <<= ::rtl::OUString( pUCBPrintTempFile->GetFileName() ); sUcbUrl = sURL; } } @@ -595,25 +603,22 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >& sal_Int32 nCopies = 0; if ( ( rProp.Value >>= nCopies ) == sal_False ) throw ::com::sun::star::lang::IllegalArgumentException(); - aArgs.Put( SfxInt16Item( SID_PRINT_COPIES, (USHORT) nCopies ) ); + + aCheckedArgs[nProps].Name = rProp.Name; + aCheckedArgs[nProps++].Value <<= nCopies; } // Collate-Property - else if ( rProp.Name.compareToAscii( "Collate" ) == 0 ) + // Sort-Property (deprecated) + else if ( rProp.Name.compareToAscii( "Collate" ) == 0 || + ( rProp.Name.compareToAscii( "Sort" ) == 0 ) ) { sal_Bool bTemp = sal_Bool(); if ( rProp.Value >>= bTemp ) - aArgs.Put( SfxBoolItem( SID_PRINT_COLLATE, bTemp ) ); - else - throw ::com::sun::star::lang::IllegalArgumentException(); - } - - // Sort-Property - else if ( rProp.Name.compareToAscii( "Sort" ) == 0 ) - { - sal_Bool bTemp = sal_Bool(); - if( rProp.Value >>= bTemp ) - aArgs.Put( SfxBoolItem( SID_PRINT_SORT, bTemp ) ); + { + aCheckedArgs[nProps].Name = rtl::OUString::createFromAscii("Collate"); + aCheckedArgs[nProps++].Value <<= bTemp; + } else throw ::com::sun::star::lang::IllegalArgumentException(); } @@ -623,7 +628,10 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >& { OUSTRING sTemp; if( rProp.Value >>= sTemp ) - aArgs.Put( SfxStringItem( SID_PRINT_PAGES, String( sTemp ) ) ); + { + aCheckedArgs[nProps].Name = rProp.Name; + aCheckedArgs[nProps++].Value <<= sTemp; + } else throw ::com::sun::star::lang::IllegalArgumentException(); } @@ -633,26 +641,28 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >& { if( !(rProp.Value >>= bMonitor) ) throw ::com::sun::star::lang::IllegalArgumentException(); + aCheckedArgs[nProps].Name = rProp.Name; + aCheckedArgs[nProps++].Value <<= bMonitor; } - // MonitorVisible + // Wait else if ( rProp.Name.compareToAscii( "Wait" ) == 0 ) { if ( !(rProp.Value >>= bWaitUntilEnd) ) throw ::com::sun::star::lang::IllegalArgumentException(); + aCheckedArgs[nProps].Name = rProp.Name; + aCheckedArgs[nProps++].Value <<= bWaitUntilEnd; } } + if ( nProps != aCheckedArgs.getLength() ) + aCheckedArgs.realloc(nProps); + // Execute the print request every time. // It doesn'tmatter if it is a real printer used or we print to a local file // nor if we print to a temp file and move it afterwards by using the ucb. // That will be handled later. see pUCBPrintFile below! - aArgs.Put( SfxBoolItem( SID_SILENT, !bMonitor ) ); - if ( bWaitUntilEnd ) - aArgs.Put( SfxBoolItem( SID_ASYNCHRON, sal_False ) ); - SfxRequest aReq( SID_PRINTDOC, SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_API, pView->GetPool() ); - aReq.SetArgs( aArgs ); - pView->ExecuteSlot( aReq ); + pView->ExecPrint( aCheckedArgs, sal_True, sal_False ); // Ok - may be execution before has finished (or started!) printing. // And may it was a printing to a file. @@ -685,11 +695,11 @@ void IMPL_PrintListener_DataContainer::Notify( SfxBroadcaster& rBC, const SfxHin SfxPrintingHint* pPrintHint = PTR_CAST( SfxPrintingHint, &rHint ); if ( pPrintHint ) { - if ( pPrintHint->GetWhich() == -1 ) // -1 : Initialisation of PrintOptions + if ( pPrintHint->GetWhich() == com::sun::star::view::PrintableState_JOB_STARTED ) { if ( !m_xPrintJob.is() ) m_xPrintJob = new SfxPrintJob_Impl( this ); - +/* PrintDialog* pDlg = pPrintHint->GetPrintDialog(); Printer* pPrinter = pPrintHint->GetPrinter(); ::rtl::OUString aPrintFile ( ( pPrinter && pPrinter->IsPrintFileEnabled() ) ? pPrinter->GetPrintFile() : String() ); @@ -726,7 +736,10 @@ void IMPL_PrintListener_DataContainer::Notify( SfxBroadcaster& rBC, const SfxHin m_aPrintOptions[nArgs-1].Name = DEFINE_CONST_UNICODE("FileName"); m_aPrintOptions[nArgs-1].Value <<= aPrintFile; } +*/ + m_aPrintOptions = pPrintHint->GetOptions(); } +/* else if ( pPrintHint->GetWhich() == -3 ) // -3 : AdditionalPrintOptions { uno::Sequence < beans::PropertyValue >& lOldOpts = m_aPrintOptions; @@ -760,6 +773,7 @@ void IMPL_PrintListener_DataContainer::Notify( SfxBroadcaster& rBC, const SfxHin // at least one new options has overwritten an old one, so we allocated too much lOldOpts.realloc( nTotal ); } +*/ else if ( pPrintHint->GetWhich() != -2 ) // -2 : CancelPrintJob { view::PrintJobEvent aEvent; diff --git a/sfx2/source/view/makefile.mk b/sfx2/source/view/makefile.mk index 98d34215e097..cad12052720c 100644 --- a/sfx2/source/view/makefile.mk +++ b/sfx2/source/view/makefile.mk @@ -1,7 +1,7 @@ #************************************************************************* # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# +# # Copyright 2008 by Sun Microsystems, Inc. # # OpenOffice.org - a multi-platform office productivity suite @@ -54,7 +54,6 @@ SLOFILES = \ $(SLO)$/frmload.obj \ $(SLO)$/frame.obj \ $(SLO)$/printer.obj \ - $(SLO)$/prnmon.obj \ $(SLO)$/viewprn.obj \ $(SLO)$/viewfac.obj \ $(SLO)$/orgmgr.obj \ diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 3cc79b8133b5..3b0ea5fc4c06 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -1,1159 +1,1008 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: viewprn.cxx,v $ - * $Revision: 1.36.84.1 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_sfx2.hxx" - -#include -#include -#include "com/sun/star/view/XRenderable.hpp" - -#include -#ifndef _MSGBOX_HXX //autogen -#include -#endif -#ifndef _SV_PRINTDLG_HXX //autogen -#include -#endif -#ifndef _SV_PRNSETUP_HXX //autogen -#include -#endif -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include "viewimp.hxx" -#include -#include -#include "sfxresid.hxx" -#include -#include -#include "sfxtypes.hxx" -#include -#include -#include - -#include "toolkit/awt/vclxdevice.hxx" - -#include "view.hrc" -#include "helpid.hrc" - -using namespace com::sun::star; -using namespace com::sun::star::uno; - -TYPEINIT1(SfxPrintingHint, SfxHint); - -// ----------------------------------------------------------------------- - -class SfxPrinterListener : public vcl::PrinterListener -{ - Any maCompleteSelection; - Any maSelection; - Reference< view::XRenderable > mxRenderable; - mutable Printer* mpLastPrinter; - mutable Reference mxDevice; - - Sequence< beans::PropertyValue > getMergedOptions() const; - const Any& getSelectionObject() const; -public: - SfxPrinterListener( const Any& i_rComplete, - const Any& i_rSelection, - const Any& i_rViewProp, - const Reference< view::XRenderable >& i_xRender, - sal_Bool i_bApi, sal_Bool i_bDirect - ); - - virtual ~SfxPrinterListener(); - - virtual int getPageCount() const; - virtual Sequence< beans::PropertyValue > getPageParameters( int i_nPage ) const; - virtual void printPage( int i_nPage ) const; - virtual void jobStarted(); - virtual void jobFinished( com::sun::star::view::PrintableState ); -}; - -SfxPrinterListener::SfxPrinterListener( const Any& i_rComplete, - const Any& i_rSelection, - const Any& i_rViewProp, - const Reference< view::XRenderable >& i_xRender, - sal_Bool i_bApi, sal_Bool i_bDirect - ) - : maCompleteSelection( i_rComplete ) - , maSelection( i_rSelection ) - , mxRenderable( i_xRender ) - , mpLastPrinter( NULL ) -{ - // initialize extra ui options - if( mxRenderable.is() ) - { - Sequence< beans::PropertyValue > aRenderOptions( 1 ); - aRenderOptions[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ExtraPrintUIOptions" ) ); - Sequence< beans::PropertyValue > aRenderParms( mxRenderable->getRenderer( 0 , getSelectionObject(), aRenderOptions ) ); - int nProps = aRenderParms.getLength(); - for( int i = 0; i < nProps; i++ ) - { - if( aRenderParms[i].Name.equalsAscii( "ExtraPrintUIOptions" ) ) - { - Sequence< beans::PropertyValue > aUIProps; - aRenderParms[i].Value >>= aUIProps; - setUIOptions( aUIProps ); - break; - } - } - } - - // set some job parameters - setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsApi" ) ), makeAny( i_bApi ) ); - setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDirect" ) ), makeAny( i_bDirect ) ); - setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsPrinter" ) ), makeAny( sal_True ) ); - setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "View" ) ), makeAny( i_rViewProp ) ); -} - -SfxPrinterListener::~SfxPrinterListener() -{ -} - -const Any& SfxPrinterListener::getSelectionObject() const -{ - sal_Int32 nChoice = 0; - const beans::PropertyValue* pVal = getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintContent" ) ) ); - if( pVal ) - pVal->Value >>= nChoice; - return nChoice > 1 ? maSelection : maCompleteSelection; -} - -Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const -{ - boost::shared_ptr pPrinter( getPrinter() ); - if( pPrinter.get() != mpLastPrinter ) - { - mpLastPrinter = pPrinter.get(); - VCLXDevice* pXDevice = new VCLXDevice(); - pXDevice->SetOutputDevice( mpLastPrinter ); - mxDevice = Reference< awt::XDevice >( pXDevice ); - } - - Sequence< beans::PropertyValue > aRenderOptions( 1 ); - aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); - aRenderOptions[ 0 ].Value <<= mxDevice; - - aRenderOptions = getJobProperties( aRenderOptions ); - return aRenderOptions; -} - -int SfxPrinterListener::getPageCount() const -{ - int nPages = 0; - boost::shared_ptr pPrinter( getPrinter() ); - if( mxRenderable.is() && pPrinter ) - { - Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); - nPages = mxRenderable->getRendererCount( getSelectionObject(), aJobOptions ); - } - return nPages; -} - -Sequence< beans::PropertyValue > SfxPrinterListener::getPageParameters( int i_nPage ) const -{ - boost::shared_ptr pPrinter( getPrinter() ); - Sequence< beans::PropertyValue > aResult; - - if( mxRenderable.is() && pPrinter ) - { - Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); - aResult = mxRenderable->getRenderer( i_nPage, getSelectionObject(), aJobOptions ); - } - return aResult; -} - -void SfxPrinterListener::printPage( int i_nPage ) const -{ - boost::shared_ptr pPrinter( getPrinter() ); - if( mxRenderable.is() && pPrinter ) - { - Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); - mxRenderable->render( i_nPage, getSelectionObject(), aJobOptions ); - } -} - -void SfxPrinterListener::jobStarted() -{ -} - -void SfxPrinterListener::jobFinished( com::sun::star::view::PrintableState ) -{ -} - -// ----------------------------------------------------------------------- - -void DisableRanges( PrintDialog& rDlg, SfxPrinter* pPrinter ) - -/* [Beschreibung] - - Mit dieser Funktion werden die nicht verf"ugbaren Ranges - vom Printer zum PrintDialog geforwarded. -*/ - -{ - if ( !pPrinter ) - return; - - if ( !pPrinter->IsRangeEnabled( PRINTDIALOG_ALL ) ) - rDlg.DisableRange( PRINTDIALOG_ALL ); - if ( !pPrinter->IsRangeEnabled( PRINTDIALOG_SELECTION ) ) - rDlg.DisableRange( PRINTDIALOG_SELECTION ); - if ( !pPrinter->IsRangeEnabled( PRINTDIALOG_FROMTO ) ) - rDlg.DisableRange( PRINTDIALOG_FROMTO ); - if ( !pPrinter->IsRangeEnabled( PRINTDIALOG_RANGE ) ) - rDlg.DisableRange( PRINTDIALOG_RANGE ); -} - -//==================================================================== - -class SfxDialogExecutor_Impl - -/* [Beschreibung] - - Eine Instanz dieser Klasse wird f"ur die Laufzeit des Printer-Dialogs - erzeugt, um im dessen Click-Handler f"ur die Zus"atze den per - virtueller Methode von der abgeleiteten SfxViewShell erzeugten - Print-Options-Dialog zu erzeugen und die dort eingestellten Optionen - als SfxItemSet zu zwischenzuspeichern. -*/ - -{ -private: - SfxViewShell* _pViewSh; - PrintDialog* _pPrintParent; - PrinterSetupDialog* _pSetupParent; - SfxItemSet* _pOptions; - sal_Bool _bModified; - sal_Bool _bHelpDisabled; - - DECL_LINK( Execute, void * ); - -public: - SfxDialogExecutor_Impl( SfxViewShell* pViewSh, PrintDialog* pParent ); - SfxDialogExecutor_Impl( SfxViewShell* pViewSh, PrinterSetupDialog* pParent ); - ~SfxDialogExecutor_Impl() { delete _pOptions; } - - Link GetLink() const { return LINK( this, SfxDialogExecutor_Impl, Execute); } - const SfxItemSet* GetOptions() const { return _pOptions; } - void DisableHelp() { _bHelpDisabled = sal_True; } -}; - -//-------------------------------------------------------------------- - -SfxDialogExecutor_Impl::SfxDialogExecutor_Impl( SfxViewShell* pViewSh, PrintDialog* pParent ) : - - _pViewSh ( pViewSh ), - _pPrintParent ( pParent ), - _pSetupParent ( NULL ), - _pOptions ( NULL ), - _bModified ( sal_False ), - _bHelpDisabled ( sal_False ) - -{ -} - -SfxDialogExecutor_Impl::SfxDialogExecutor_Impl( SfxViewShell* pViewSh, PrinterSetupDialog* pParent ) : - - _pViewSh ( pViewSh ), - _pPrintParent ( NULL ), - _pSetupParent ( pParent ), - _pOptions ( NULL ), - _bModified ( sal_False ), - _bHelpDisabled ( sal_False ) - -{ -} - -//-------------------------------------------------------------------- - -IMPL_LINK( SfxDialogExecutor_Impl, Execute, void *, EMPTYARG ) -{ - // Options lokal merken - if ( !_pOptions ) - { - DBG_ASSERT( _pPrintParent || _pSetupParent, "no dialog parent" ); - if( _pPrintParent ) - _pOptions = ( (SfxPrinter*)_pPrintParent->GetPrinter() )->GetOptions().Clone(); - else if( _pSetupParent ) - _pOptions = ( (SfxPrinter*)_pSetupParent->GetPrinter() )->GetOptions().Clone(); - } - - if ( _pOptions && _pPrintParent && _pPrintParent->IsSheetRangeAvailable() ) - { - SfxItemState eState = _pOptions->GetItemState( SID_PRINT_SELECTEDSHEET ); - if ( eState != SFX_ITEM_UNKNOWN ) - { - PrintSheetRange eRange = _pPrintParent->GetCheckedSheetRange(); - BOOL bValue = ( PRINTSHEETS_ALL != eRange ); - _pOptions->Put( SfxBoolItem( SID_PRINT_SELECTEDSHEET, bValue ) ); - } - } - - // Dialog ausf"uhren - SfxPrintOptionsDialog* pDlg = new SfxPrintOptionsDialog( _pPrintParent ? static_cast(_pPrintParent) - : static_cast(_pSetupParent), - _pViewSh, _pOptions ); - if ( _bHelpDisabled ) - pDlg->DisableHelp(); - if ( pDlg->Execute() == RET_OK ) - { - delete _pOptions; - _pOptions = pDlg->GetOptions().Clone(); - - if ( _pOptions && _pPrintParent && _pPrintParent->IsSheetRangeAvailable() ) - { - const SfxPoolItem* pItem; - if ( SFX_ITEM_SET == _pOptions->GetItemState( SID_PRINT_SELECTEDSHEET, FALSE , &pItem ) ) - { - _pPrintParent->CheckSheetRange( ( (const SfxBoolItem*)pItem )->GetValue() - ? PRINTSHEETS_SELECTED_SHEETS : PRINTSHEETS_ALL ); - } - } - } - delete pDlg; - - return 0; -} - -//------------------------------------------------------------------------- - -BOOL UseStandardPrinter_Impl( Window* /*pParent*/, SfxPrinter* pDocPrinter ) -{ - // Optionen abfragen, ob gewarnt werden soll (Doc uebersteuert App) - BOOL bWarn = FALSE; - const SfxItemSet *pDocOptions = &pDocPrinter->GetOptions(); - if ( pDocOptions ) - { - USHORT nWhich = pDocOptions->GetPool()->GetWhich(SID_PRINTER_NOTFOUND_WARN); - const SfxBoolItem* pBoolItem = NULL; - pDocPrinter->GetOptions().GetItemState( nWhich, FALSE, (const SfxPoolItem**) &pBoolItem ); - if ( pBoolItem ) - bWarn = pBoolItem->GetValue(); - } -/* - // ggf. den User fragen - if ( bWarn ) - { - // Geht nicht mehr ohne OrigJobSetup! - String aTmp( SfxResId( STR_PRINTER_NOTAVAIL ) ); - QueryBox aBox( pParent, WB_OK_CANCEL | WB_DEF_OK, aTmp ); - return RET_OK == aBox.Execute(); - } -*/ - // nicht gewarnt => einfach so den StandardDrucker nehmen - return TRUE; -} -//------------------------------------------------------------------------- - -SfxPrinter* SfxViewShell::SetPrinter_Impl( SfxPrinter *pNewPrinter ) - -/* Interne Methode zum Setzen der Unterschiede von 'pNewPrinter' zum - aktuellen Printer. pNewPrinter wird entweder "ubernommen oder gel"oscht. -*/ - -{ - // aktuellen Printer holen - SfxPrinter *pDocPrinter = GetPrinter(); - - // Printer-Options auswerten - FASTBOOL bOriToDoc = FALSE; - FASTBOOL bSizeToDoc = FALSE; - if ( &pDocPrinter->GetOptions() ) - { - USHORT nWhich = GetPool().GetWhich(SID_PRINTER_CHANGESTODOC); - const SfxFlagItem *pFlagItem = 0; - pDocPrinter->GetOptions().GetItemState( nWhich, FALSE, (const SfxPoolItem**) &pFlagItem ); - bOriToDoc = pFlagItem ? (pFlagItem->GetValue() & SFX_PRINTER_CHG_ORIENTATION) : FALSE; - bSizeToDoc = pFlagItem ? (pFlagItem->GetValue() & SFX_PRINTER_CHG_SIZE) : FALSE; - } - - // vorheriges Format und Size feststellen - Orientation eOldOri = pDocPrinter->GetOrientation(); - Size aOldPgSz = pDocPrinter->GetPaperSizePixel(); - - // neues Format und Size feststellen - Orientation eNewOri = pNewPrinter->GetOrientation(); - Size aNewPgSz = pNewPrinter->GetPaperSizePixel(); - - // "Anderungen am Seitenformat feststellen - BOOL bOriChg = (eOldOri != eNewOri) && bOriToDoc; - BOOL bPgSzChg = ( aOldPgSz.Height() != - ( bOriChg ? aNewPgSz.Width() : aNewPgSz.Height() ) || - aOldPgSz.Width() != - ( bOriChg ? aNewPgSz.Height() : aNewPgSz.Width() ) ) && - bSizeToDoc; - - // Message und Flags f"ur Seitenformat-"Anderung zusammenstellen - String aMsg; - USHORT nNewOpt=0; - if( bOriChg && bPgSzChg ) - { - aMsg = String(SfxResId(STR_PRINT_NEWORISIZE)); - nNewOpt = SFX_PRINTER_CHG_ORIENTATION | SFX_PRINTER_CHG_SIZE; - } - else if (bOriChg ) - { - aMsg = String(SfxResId(STR_PRINT_NEWORI)); - nNewOpt = SFX_PRINTER_CHG_ORIENTATION; - } - else if (bPgSzChg) - { - aMsg = String(SfxResId(STR_PRINT_NEWSIZE)); - nNewOpt = SFX_PRINTER_CHG_SIZE; - } - - // in dieser Variable sammeln, was sich so ge"aendert hat - USHORT nChangedFlags = 0; - - // ggf. Nachfrage, ob Seitenformat vom Drucker "ubernommen werden soll - if ( ( bOriChg || bPgSzChg ) && - RET_YES == QueryBox(0, WB_YES_NO | WB_DEF_OK, aMsg).Execute() ) - // Flags mit "Anderungen f"ur mitpflegen - nChangedFlags |= nNewOpt; - - // fuer den MAC sein "temporary of class String" im naechsten if() - String aTempPrtName = pNewPrinter->GetName(); - String aDocPrtName = pDocPrinter->GetName(); - - // Wurde der Drucker gewechselt oder von Default auf Specific - // oder umgekehrt geaendert? - if ( (aTempPrtName != aDocPrtName) || (pDocPrinter->IsDefPrinter() != pNewPrinter->IsDefPrinter()) ) - { - // neuen Printer "ubernehmen - // pNewPrinter->SetOrigJobSetup( pNewPrinter->GetJobSetup() ); - nChangedFlags |= SFX_PRINTER_PRINTER|SFX_PRINTER_JOBSETUP; - pDocPrinter = pNewPrinter; - } - else - { - // Extra-Optionen vergleichen - if ( ! (pNewPrinter->GetOptions() == pDocPrinter->GetOptions()) ) - { - // Options haben sich geaendert - pDocPrinter->SetOptions( pNewPrinter->GetOptions() ); - nChangedFlags |= SFX_PRINTER_OPTIONS; - } - - // JobSetups vergleichen - JobSetup aNewJobSetup = pNewPrinter->GetJobSetup(); - JobSetup aOldJobSetup = pDocPrinter->GetJobSetup(); - if ( aNewJobSetup != aOldJobSetup ) - { - // JobSetup hat sich geaendert (=> App mu\s neu formatieren) - // pDocPrinter->SetOrigJobSetup( aNewJobSetup ); - nChangedFlags |= SFX_PRINTER_JOBSETUP; - } - - // alten, ver"anderten Printer behalten - pDocPrinter->SetPrinterProps( pNewPrinter ); - delete pNewPrinter; - } - - if ( 0 != nChangedFlags ) - // SetPrinter will delete the old printer if it changes - SetPrinter( pDocPrinter, nChangedFlags ); - return pDocPrinter; -} - -//------------------------------------------------------------------------- -// Unter WIN32 tritt leider das Problem auf, dass nichts gedruckt -// wird, wenn SID_PRINTDOCDIRECT auflaueft; bisher bekannte, -// einzige Abhilfe ist in diesem Fall das Abschalten der Optimierungen -// (KA 17.12.95) -#ifdef _MSC_VER -#pragma optimize ( "", off ) -#endif - -class SfxPrintGuard_Impl -{ - SfxObjectShell* m_pObjectShell; - sal_Bool m_bOrigStatus; - sal_Bool m_bNeedsChange; - -public: - SfxPrintGuard_Impl( SfxObjectShell* pObjectShell ) - : m_pObjectShell( pObjectShell ) - , m_bOrigStatus( sal_False ) - , m_bNeedsChange( sal_False ) - { - if ( m_pObjectShell ) - { - m_bOrigStatus = m_pObjectShell->IsEnableSetModified(); - - // check configuration: shall update of printing information in DocInfo set the document to "modified"? - if ( m_bOrigStatus && !SvtPrintWarningOptions().IsModifyDocumentOnPrintingAllowed() ) - { - m_pObjectShell->EnableSetModified( sal_False ); - m_bNeedsChange = sal_True; - } - } - } - - ~SfxPrintGuard_Impl() - { - if ( m_pObjectShell && m_bNeedsChange ) - m_pObjectShell->EnableSetModified( m_bOrigStatus ); - } -}; - -void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) -{ - USHORT nCopies=1; - USHORT nDialogRet = RET_CANCEL; - BOOL bCollate=FALSE; - SfxPrinter* pPrinter = 0; - PrintDialog* pPrintDlg = 0; - SfxDialogExecutor_Impl* pExecutor = 0; - bool bSilent = false; - BOOL bIsAPI = rReq.GetArgs() && rReq.GetArgs()->Count(); - - const USHORT nId = rReq.GetSlot(); - switch( nId ) - { - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - case SID_SETUPPRINTER: - case SID_PRINTER_NAME : - { - // quiet mode (AppEvent, API call) - SFX_REQUEST_ARG(rReq, pSilentItem, SfxBoolItem, SID_SILENT, FALSE); - bSilent = pSilentItem && pSilentItem->GetValue(); - - // get printer and printer settings from the document - SfxPrinter *pDocPrinter = GetPrinter(TRUE); - - // look for printer in parameters - SFX_REQUEST_ARG( rReq, pPrinterItem, SfxStringItem, SID_PRINTER_NAME, FALSE ); - if ( pPrinterItem ) - { - // use PrinterName parameter to create a printer - pPrinter = new SfxPrinter( pDocPrinter->GetOptions().Clone(), ((const SfxStringItem*) pPrinterItem)->GetValue() ); - - // if printer is unknown, it can't be used - now printer from document will be used - if ( !pPrinter->IsOriginal() ) - DELETEZ(pPrinter); - } - - if ( SID_PRINTER_NAME == nId ) - { - // just set a recorded printer name - if ( pPrinter ) - SetPrinter( pPrinter, SFX_PRINTER_PRINTER ); - return; - } - - // no PrinterName parameter in ItemSet or the PrinterName points to an unknown printer - if ( !pPrinter ) - // use default printer from document - pPrinter = pDocPrinter; - - if( !pPrinter || !pPrinter->IsValid() ) - { - // no valid printer either in ItemSet or at the document - if ( bSilent ) - { - rReq.SetReturnValue(SfxBoolItem(0,FALSE)); - return; - } - else - ErrorBox( NULL, WB_OK | WB_DEF_OK, String( SfxResId( STR_NODEFPRINTER ) ) ).Execute(); - } - - if ( !pPrinter->IsOriginal() && rReq.GetArgs() && !UseStandardPrinter_Impl( NULL, pPrinter ) ) - { - // printer is not available, but standard printer should not be used - rReq.SetReturnValue(SfxBoolItem(0,FALSE)); - return; - } - - if( pPrinter->IsPrinting() ) - { - // if printer is busy, abort printing - if ( !bSilent ) - InfoBox( NULL, String( SfxResId( STR_ERROR_PRINTER_BUSY ) ) ).Execute(); - rReq.SetReturnValue(SfxBoolItem(0,FALSE)); - return; - } - - // the print dialog shouldn't use a help button if it is called from the help window - // (pressing help button would exchange the current page inside the help document that is going to be printed!) - String aHelpFilterName( DEFINE_CONST_UNICODE("writer_web_HTML_help") ); - SfxMedium* pMedium = GetViewFrame()->GetObjectShell()->GetMedium(); - const SfxFilter* pFilter = pMedium ? pMedium->GetFilter() : NULL; - sal_Bool bPrintOnHelp = ( pFilter && pFilter->GetFilterName() == aHelpFilterName ); - - SfxObjectShell* pDoc = NULL; - if ( SID_PRINTDOC == nId ) - pDoc = GetObjectShell(); - - // Let the document stay nonmodified during the printing if the configuration says to do so - SfxPrintGuard_Impl aGuard( pDoc ); - - // if no arguments are given, retrieve them from a dialog - if ( !bIsAPI ) - { - // PrinterDialog needs a temporary printer - SfxPrinter* pDlgPrinter = pPrinter->Clone(); - nDialogRet = 0; - if ( SID_PRINTDOC == nId ) - { - bool bDetectHidden = ( !bSilent && !bPrintOnHelp && pDoc ); - if ( !bDetectHidden - || pDoc->QueryHiddenInformation( WhenPrinting, NULL ) == RET_YES ) - { - // execute PrintDialog - pPrintDlg = CreatePrintDialog( NULL ); - if ( bPrintOnHelp ) - pPrintDlg->DisableHelp(); - - if ( pImp->bHasPrintOptions ) - { - // additional controls for dialog - pExecutor = new SfxDialogExecutor_Impl( this, pPrintDlg ); - if ( bPrintOnHelp ) - pExecutor->DisableHelp(); - pPrintDlg->SetOptionsHdl( pExecutor->GetLink() ); - pPrintDlg->ShowOptionsButton(); - } - - // set printer on dialog and execute - pPrintDlg->SetPrinter( pDlgPrinter ); - ::DisableRanges( *pPrintDlg, pDlgPrinter ); - nDialogRet = pPrintDlg->Execute(); - if ( pExecutor && pExecutor->GetOptions() ) - { - if ( nDialogRet == RET_OK ) - // remark: have to be recorded if possible! - pDlgPrinter->SetOptions( *pExecutor->GetOptions() ); - else - { - pPrinter->SetOptions( *pExecutor->GetOptions() ); - SetPrinter( pPrinter, SFX_PRINTER_OPTIONS ); - } - } - - DELETEZ( pExecutor ); - } - } - else - { - // execute PrinterSetupDialog - PrinterSetupDialog* pPrintSetupDlg = new PrinterSetupDialog( GetWindow() ); - - if ( pImp->bHasPrintOptions ) - { - // additional controls for dialog - pExecutor = new SfxDialogExecutor_Impl( this, pPrintSetupDlg ); - if ( bPrintOnHelp ) - pExecutor->DisableHelp(); - pPrintSetupDlg->SetOptionsHdl( pExecutor->GetLink() ); - } - - pPrintSetupDlg->SetPrinter( pDlgPrinter ); - nDialogRet = pPrintSetupDlg->Execute(); - - if ( pExecutor && pExecutor->GetOptions() ) - { - if ( nDialogRet == RET_OK ) - // remark: have to be recorded if possible! - pDlgPrinter->SetOptions( *pExecutor->GetOptions() ); - else - { - pPrinter->SetOptions( *pExecutor->GetOptions() ); - SetPrinter( pPrinter, SFX_PRINTER_OPTIONS ); - } - } - - DELETEZ( pPrintSetupDlg ); - - // no recording of PrinterSetup except printer name (is printer dependent) - rReq.Ignore(); - } - - if ( nDialogRet == RET_OK ) - { - if ( pPrinter->GetName() != pDlgPrinter->GetName() ) - { - // user has changed the printer -> macro recording - SfxRequest aReq( GetViewFrame(), SID_PRINTER_NAME ); - aReq.AppendItem( SfxStringItem( SID_PRINTER_NAME, pDlgPrinter->GetName() ) ); - aReq.Done(); - } - - // take the changes made in the dialog - pPrinter = SetPrinter_Impl( pDlgPrinter ); - - // forget new printer, it was taken over (as pPrinter) or deleted - pDlgPrinter = NULL; - - /* Now lets reset the Dialog printer, since its freed */ - if (pPrintDlg) - pPrintDlg->SetPrinter (pPrinter); - - if ( SID_PRINTDOC == nId ) - { - nCopies = pPrintDlg->GetCopyCount(); - bCollate = pPrintDlg->IsCollateChecked(); - } - else - break; - } - else - { - // PrinterDialog is used to transfer information on printing, - // so it will only be deleted here if dialog was cancelled - DELETEZ( pDlgPrinter ); - DELETEZ( pPrintDlg ); - rReq.Ignore(); - if ( SID_PRINTDOC == nId ) - rReq.SetReturnValue(SfxBoolItem(0,FALSE)); - break; - } - - // recording - rReq.AppendItem( SfxBoolItem( SID_PRINT_COLLATE, bCollate ) ); - rReq.AppendItem( SfxInt16Item( SID_PRINT_COPIES, (INT16) pPrintDlg->GetCopyCount() ) ); - if ( pPrinter->IsPrintFileEnabled() ) - rReq.AppendItem( SfxStringItem( SID_FILE_NAME, pPrinter->GetPrintFile() ) ); - if ( pPrintDlg->IsRangeChecked(PRINTDIALOG_SELECTION) ) - rReq.AppendItem( SfxBoolItem( SID_SELECTION, TRUE ) ); - else if ( pPrintDlg->IsRangeChecked(PRINTDIALOG_RANGE) ) - rReq.AppendItem( SfxStringItem( SID_PRINT_PAGES, pPrintDlg->GetRangeText() ) ); - else if ( pPrintDlg->IsRangeChecked(PRINTDIALOG_FROMTO) ) - { - // currently this doesn't seem to work -> return values of dialog are always 0 - // seems to be encoded as range string like "1-3" - rReq.AppendItem( SfxInt16Item( SID_PRINT_FIRST_PAGE, (INT16) pPrintDlg->GetFirstPage() ) ); - rReq.AppendItem( SfxInt16Item( SID_PRINT_LAST_PAGE, (INT16) pPrintDlg->GetLastPage() ) ); - } - } - else if ( rReq.GetArgs() ) - { - if ( SID_PRINTDOC != nId ) - { - DBG_ERROR("Wrong slotid!"); - break; - } - - // PrinterDialog is used to transfer information on printing - pPrintDlg = CreatePrintDialog( GetWindow() ); - if ( bPrintOnHelp ) - pPrintDlg->DisableHelp(); - pPrintDlg->SetPrinter( pPrinter ); - ::DisableRanges( *pPrintDlg, pPrinter ); - - // PrintToFile requested? - SFX_REQUEST_ARG(rReq, pFileItem, SfxStringItem, SID_FILE_NAME, FALSE); - if ( pFileItem ) - { - pPrinter->EnablePrintFile(TRUE); - pPrinter->SetPrintFile( pFileItem->GetValue() ); - } - - // Collate - SFX_REQUEST_ARG(rReq, pCollateItem, SfxBoolItem, SID_PRINT_COLLATE, FALSE); - if ( pCollateItem ) - { - bCollate = pCollateItem->GetValue(); - pPrintDlg->CheckCollate( bCollate ); - } - - // Selection - SFX_REQUEST_ARG(rReq, pSelectItem, SfxBoolItem, SID_SELECTION, FALSE); - - // Pages (as String) - SFX_REQUEST_ARG(rReq, pPagesItem, SfxStringItem, SID_PRINT_PAGES, FALSE); - - // FirstPage - SFX_REQUEST_ARG(rReq, pFirstPgItem, SfxInt16Item, SID_PRINT_FIRST_PAGE, FALSE); - USHORT nFrom = 1; - if ( pFirstPgItem ) - nFrom = pFirstPgItem->GetValue(); - - // LastPage - SFX_REQUEST_ARG(rReq, pLastPgItem, SfxInt16Item, SID_PRINT_LAST_PAGE, FALSE); - USHORT nTo = 9999; - if ( pLastPgItem ) - nTo = pLastPgItem->GetValue(); - - // CopyCount - SFX_REQUEST_ARG(rReq, pCopyItem, SfxInt16Item, SID_PRINT_COPIES, FALSE); - if ( pCopyItem ) - { - nCopies = pCopyItem->GetValue(); - pPrintDlg->SetCopyCount( nCopies ); - } - - // does the view support ranges? - if ( pSelectItem && pSelectItem->GetValue() ) - { - // print selection only - pPrintDlg->CheckRange(PRINTDIALOG_SELECTION); - } - else if ( pPagesItem ) - { - // get range text from parameter - // enable ranges - pPrintDlg->CheckRange(PRINTDIALOG_RANGE); - pPrintDlg->SetRangeText( pPagesItem->GetValue() ); - } - else if ( pPrintDlg->IsRangeEnabled(PRINTDIALOG_RANGE) ) - { - // enable ranges - // construct range text from page range - pPrintDlg->CheckRange(PRINTDIALOG_RANGE); - String aRange = String::CreateFromInt32( nFrom ); - aRange += '-'; - aRange += String::CreateFromInt32( nTo ); - pPrintDlg->SetRangeText( aRange ); - } - else - { - // print page rage - pPrintDlg->CheckRange(PRINTDIALOG_FROMTO); - pPrintDlg->SetFirstPage( nFrom ); - pPrintDlg->SetLastPage( nTo ); - } - } - - // intentionally no break for SID_PRINTDOC - // printing now proceeds like SID_PRINTDOCDIRECT - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //case SID_PRINTDOCDIRECT: - { - if ( SID_PRINTDOCDIRECT == nId ) - { - SfxObjectShell* pDoc = GetObjectShell(); - bool bDetectHidden = ( !bSilent && pDoc ); - if ( bDetectHidden && pDoc->QueryHiddenInformation( WhenPrinting, NULL ) != RET_YES ) - return; - - // if no printer was selected before - if ( !pPrinter ) - pPrinter = GetPrinter(TRUE); - - if( !pPrinter->IsValid() ) - { - // redirect slot to call the print dialog if the document's printer is not valid! - rReq.SetSlot( SID_PRINTDOC ); - ExecPrint_Impl( rReq ); - return; - } - - if( pPrinter->IsOriginal() && pPrinter->GetName() != Printer::GetDefaultPrinterName() ) - { - // redirect slot to call the print dialog - // if the document's printer is available but not system default - rReq.SetSlot( SID_PRINTDOC ); - ExecPrint_Impl( rReq ); - return; - } - - // pPrinter->SetNextJobIsQuick(); - } - - // if "Collate" was checked, the SfxPrinter must handle the CopyCount itself, - // usually this is handled by the printer driver - if( bCollate ) - // set printer to default, handle multiple copies explicitly - pPrinter->SetCopyCount( 1 ); - else - pPrinter->SetCopyCount( nCopies ); - - // enable background printing - // pPrinter->SetPageQueueSize( 1 ); - - // refresh document info - using namespace ::com::sun::star; - SfxObjectShell *pObjSh = GetObjectShell(); - uno::Reference xDocProps( - pObjSh->getDocProperties()); - ::rtl::OUString aLastPrintedBy = xDocProps->getPrintedBy(); - util::DateTime aLastPrinted = xDocProps->getPrintDate(); - - // Let the document stay nonmodified during the printing if the configuration says to do so - SfxPrintGuard_Impl aGuard( pObjSh ); - - xDocProps->setPrintedBy( GetObjectShell()->IsUseUserData() - ? ::rtl::OUString( SvtUserOptions().GetFullName() ) - : ::rtl::OUString() ); - ::DateTime now; - xDocProps->setPrintDate( util::DateTime( - now.Get100Sec(), now.GetSec(), now.GetMin(), now.GetHour(), - now.GetDay(), now.GetMonth(), now.GetYear() ) ); - - GetObjectShell()->Broadcast( SfxPrintingHint( -1, pPrintDlg, pPrinter ) ); - ErrCode nError = DoPrint( pPrinter, pPrintDlg, bSilent, bIsAPI ); - if ( nError == PRINTER_OK ) - { - Invalidate( SID_PRINTDOC ); - Invalidate( SID_PRINTDOCDIRECT ); - Invalidate( SID_SETUPPRINTER ); - rReq.SetReturnValue(SfxBoolItem(0,TRUE)); - - SFX_REQUEST_ARG(rReq, pAsyncItem, SfxBoolItem, SID_ASYNCHRON, FALSE); - if ( pAsyncItem && !pAsyncItem->GetValue() ) - { - // synchronous execution wanted - wait for end of printing - while ( pPrinter->IsPrinting()) - Application::Yield(); - } - - rReq.Done(); - } - else - { - // printing not succesful, reset DocInfo - xDocProps->setPrintedBy(aLastPrintedBy); - xDocProps->setPrintDate(aLastPrinted); - - if ( nError != PRINTER_ABORT ) - { - // "real" problem (not simply printing cancelled by user) - String aMsg( SfxResId( STR_NOSTARTPRINTER ) ); - if ( !bIsAPI ) - ErrorBox( NULL, WB_OK | WB_DEF_OK, aMsg ).Execute(); - rReq.SetReturnValue(SfxBoolItem(0,FALSE)); - } - - rReq.Ignore(); - } - - // pPrinter->SetNextJobIsQuick( false ); - - delete pPrintDlg; - } - - break; - - case SID_PRINTDOC: - case SID_PRINTDOCDIRECT: - { - // FIXME: set properties from SfxRequest - - // get the current selection; our controller should know it - Reference< frame::XController > xController( GetController() ); - Reference< view::XSelectionSupplier > xSupplier( xController, UNO_QUERY ); - - Any aSelection; - if( xSupplier.is() ) - aSelection = xSupplier->getSelection(); - else - aSelection <<= GetObjectShell()->GetModel(); - Any aComplete( makeAny( GetObjectShell()->GetModel() ) ); - Any aViewProp( makeAny( xController ) ); - - boost::shared_ptr pListener( new SfxPrinterListener( aComplete, - aSelection, - aViewProp, - GetRenderable(), - bIsAPI, - nId == SID_PRINTDOCDIRECT - ) ); - SfxObjectShell *pObjShell = GetObjectShell(); - pListener->setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "JobName" ) ), - makeAny( rtl::OUString( pObjShell->GetTitle(0) ) ) ); - - // FIXME: job setup - JobSetup aJobSetup; - if( nId == SID_PRINTDOCDIRECT ) - aJobSetup.SetValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsQuickJob" ) ), - String( RTL_CONSTASCII_USTRINGPARAM( "true" ) ) ); - - Printer::PrintJob( pListener, aJobSetup ); - } - break; - } -} - -// Optimierungen wieder einschalten -#ifdef _MSC_VER -#pragma optimize ( "", on ) -#endif - -//-------------------------------------------------------------------- - -PrintDialog* SfxViewShell::CreatePrintDialog( Window* /*pParent*/ ) - -/* [Beschreibung] - - Diese Methode kann "uberladen werden, um einen speziellen PrintDialog - zu erzeugen. Dies ist z.B. notwendig wenn spezielle Features - wie drucken von Seitenbereichen. -*/ - -{ - #if 0 - PrintDialog *pDlg = new PrintDialog( pParent, false ); - pDlg->SetFirstPage( 1 ); - pDlg->SetLastPage( 9999 ); - pDlg->EnableCollate(); - return pDlg; - #else - return NULL; - #endif -} - -//-------------------------------------------------------------------- - -void SfxViewShell::PreparePrint( PrintDialog * ) -{ -} - -//-------------------------------------------------------------------- - - -ErrCode SfxViewShell::DoPrint( SfxPrinter* /*pPrinter*/, - PrintDialog* /*pPrintDlg*/, - BOOL /*bSilent*/, BOOL /*bIsAPI*/ ) -{ - #if 0 - // Printer-Dialogbox waehrend des Ausdrucks mu\s schon vor - // StartJob erzeugt werden, da SV bei einem Quit-Event h"angt - SfxPrintProgress *pProgress = new SfxPrintProgress( this, !bSilent ); - SfxPrinter *pDocPrinter = GetPrinter(TRUE); - if ( !pPrinter ) - pPrinter = pDocPrinter; - else if ( pDocPrinter != pPrinter ) - { - pProgress->RestoreOnEndPrint( pDocPrinter->Clone() ); - SetPrinter( pPrinter, SFX_PRINTER_PRINTER ); - } - pProgress->SetWaitMode(FALSE); - - // Drucker starten - PreparePrint( pPrintDlg ); - SfxObjectShell *pObjShell = GetViewFrame()->GetObjectShell(); - if ( pPrinter->StartJob(pObjShell->GetTitle(0)) ) - { - // Drucken - Print( *pProgress, bIsAPI, pPrintDlg ); - pProgress->Stop(); - pProgress->DeleteOnEndPrint(); - pPrinter->EndJob(); - } - else - { - // Printer konnte nicht gestartet werden - delete pProgress; - } - - return pPrinter->GetError(); - #else - DBG_ERROR( "DoPrint called, dead code !" ); - return ERRCODE_IO_NOTSUPPORTED; - #endif -} - -//-------------------------------------------------------------------- - -BOOL SfxViewShell::IsPrinterLocked() const -{ - return pImp->nPrinterLocks > 0; -} - -//-------------------------------------------------------------------- - -void SfxViewShell::LockPrinter( BOOL bLock) -{ - BOOL bChanged = FALSE; - if ( bLock ) - bChanged = 1 == ++pImp->nPrinterLocks; - else - bChanged = 0 == --pImp->nPrinterLocks; - - if ( bChanged ) - { - Invalidate( SID_PRINTDOC ); - Invalidate( SID_PRINTDOCDIRECT ); - Invalidate( SID_SETUPPRINTER ); - } -} - -//-------------------------------------------------------------------- - -USHORT SfxViewShell::Print( SfxProgress& /*rProgress*/, BOOL /*bIsAPI*/, PrintDialog* /*pDlg*/ ) -{ - return 0; -} - -//-------------------------------------------------------------------- - -SfxPrinter* SfxViewShell::GetPrinter( BOOL /*bCreate*/ ) -{ - return 0; -} - -//-------------------------------------------------------------------- - -USHORT SfxViewShell::SetPrinter( SfxPrinter* /*pNewPrinter*/, USHORT /*nDiffFlags*/, bool ) -{ - return 0; -} - -//-------------------------------------------------------------------- - -SfxTabPage* SfxViewShell::CreatePrintOptionsPage -( - Window* /*pParent*/, - const SfxItemSet& /*rOptions*/ -) - -/* [Beschreibung] - - Diese Factory-Methode wird vom SFx verwendet, um die TabPage mit den - Print-Optionen, welche "uber das am - transportiert werden, zu erzeugen. - - Abgeleitete Klassen k"onnen diese Methode also "uberladen um die zu - ihren SfxPrinter passenden Einstellungen vorzunehmen. Dieses sollte - genau die sein, die auch unter Extras/Einstellungen - verwendet wird. - - Die Basisimplementierung liefert einen 0-Pointer. -*/ - -{ - return 0; -} - - +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: viewprn.cxx,v $ + * $Revision: 1.36.84.1 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_sfx2.hxx" + +#include +#include +#include "com/sun/star/view/XRenderable.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "viewimp.hxx" +#include +#include +#include "sfxresid.hxx" +#include +#include +#include "sfxtypes.hxx" +#include +#include +#include + +#include "toolkit/awt/vclxdevice.hxx" + +#include "view.hrc" +#include "helpid.hrc" + +using namespace com::sun::star; +using namespace com::sun::star::uno; + +TYPEINIT1(SfxPrintingHint, SfxHint); + +// ----------------------------------------------------------------------- +class SfxPrinterListener : public vcl::PrinterListener, public SfxListener +{ + Any maCompleteSelection; + Any maSelection; + Reference< view::XRenderable > mxRenderable; + mutable Printer* mpLastPrinter; + mutable Reference mxDevice; + SfxViewShell* mpViewShell; + SfxObjectShell* mpObjectShell; + sal_Bool m_bOrigStatus; + sal_Bool m_bNeedsChange; + sal_Bool m_bApi; + util::DateTime m_aLastPrinted; + ::rtl::OUString m_aLastPrintedBy; + + Sequence< beans::PropertyValue > getMergedOptions() const; + const Any& getSelectionObject() const; +public: + SfxPrinterListener( const Any& i_rComplete, + const Any& i_rSelection, + const Any& i_rViewProp, + const Reference< view::XRenderable >& i_xRender, + sal_Bool i_bApi, sal_Bool i_bDirect, + SfxViewShell* pView + ); + + virtual ~SfxPrinterListener(); + virtual void Notify( SfxBroadcaster&, const SfxHint& ); + + virtual int getPageCount() const; + virtual Sequence< beans::PropertyValue > getPageParameters( int i_nPage ) const; + virtual void printPage( int i_nPage ) const; + virtual void jobStarted(); + virtual void jobFinished( com::sun::star::view::PrintableState ); +}; + +SfxPrinterListener::SfxPrinterListener( const Any& i_rComplete, + const Any& i_rSelection, + const Any& i_rViewProp, + const Reference< view::XRenderable >& i_xRender, + sal_Bool i_bApi, sal_Bool i_bDirect, + SfxViewShell* pView + ) + : maCompleteSelection( i_rComplete ) + , maSelection( i_rSelection ) + , mxRenderable( i_xRender ) + , mpLastPrinter( NULL ) + , mpViewShell( pView ) + , mpObjectShell(0) + , m_bOrigStatus( sal_False ) + , m_bNeedsChange( sal_False ) + , m_bApi(i_bApi) +{ + if ( mpViewShell ) + { + StartListening( *mpViewShell ); + mpObjectShell = mpViewShell->GetObjectShell(); + StartListening( *mpObjectShell ); + m_bOrigStatus = mpObjectShell->IsEnableSetModified(); + + // check configuration: shall update of printing information in DocInfo set the document to "modified"? + if ( m_bOrigStatus && !SvtPrintWarningOptions().IsModifyDocumentOnPrintingAllowed() ) + { + mpObjectShell->EnableSetModified( sal_False ); + m_bNeedsChange = sal_True; + } + + // refresh document info + uno::Reference xDocProps(mpObjectShell->getDocProperties()); + m_aLastPrintedBy = xDocProps->getPrintedBy(); + m_aLastPrinted = xDocProps->getPrintDate(); + + xDocProps->setPrintedBy( mpObjectShell->IsUseUserData() + ? ::rtl::OUString( SvtUserOptions().GetFullName() ) + : ::rtl::OUString() ); + ::DateTime now; + + xDocProps->setPrintDate( util::DateTime( + now.Get100Sec(), now.GetSec(), now.GetMin(), now.GetHour(), + now.GetDay(), now.GetMonth(), now.GetYear() ) ); + } + + // initialize extra ui options + if( mxRenderable.is() ) + { + Sequence< beans::PropertyValue > aRenderOptions( 1 ); + aRenderOptions[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ExtraPrintUIOptions" ) ); + Sequence< beans::PropertyValue > aRenderParms( mxRenderable->getRenderer( 0 , getSelectionObject(), aRenderOptions ) ); + int nProps = aRenderParms.getLength(); + for( int i = 0; i < nProps; i++ ) + { + if( aRenderParms[i].Name.equalsAscii( "ExtraPrintUIOptions" ) ) + { + Sequence< beans::PropertyValue > aUIProps; + aRenderParms[i].Value >>= aUIProps; + setUIOptions( aUIProps ); + break; + } + } + } + + // set some job parameters + setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsApi" ) ), makeAny( i_bApi ) ); + setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDirect" ) ), makeAny( i_bDirect ) ); + setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsPrinter" ) ), makeAny( sal_True ) ); + setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "View" ) ), makeAny( i_rViewProp ) ); +} + +void SfxPrinterListener::Notify( SfxBroadcaster& , const SfxHint& rHint ) +{ + if ( rHint.IsA(TYPE(SfxSimpleHint)) ) + { + if ( ((SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING ) + { + EndListening(*mpViewShell); + EndListening(*mpObjectShell); + mpViewShell = 0; + mpObjectShell = 0; + } + } +} + +SfxPrinterListener::~SfxPrinterListener() +{ +} + +const Any& SfxPrinterListener::getSelectionObject() const +{ + sal_Int32 nChoice = 0; + const beans::PropertyValue* pVal = getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintContent" ) ) ); + if( pVal ) + pVal->Value >>= nChoice; + return nChoice > 1 ? maSelection : maCompleteSelection; +} + +Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const +{ + boost::shared_ptr pPrinter( getPrinter() ); + if( pPrinter.get() != mpLastPrinter ) + { + mpLastPrinter = pPrinter.get(); + VCLXDevice* pXDevice = new VCLXDevice(); + pXDevice->SetOutputDevice( mpLastPrinter ); + mxDevice = Reference< awt::XDevice >( pXDevice ); + } + + Sequence< beans::PropertyValue > aRenderOptions( 1 ); + aRenderOptions[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ); + aRenderOptions[ 0 ].Value <<= mxDevice; + + aRenderOptions = getJobProperties( aRenderOptions ); + return aRenderOptions; +} + +int SfxPrinterListener::getPageCount() const +{ + int nPages = 0; + boost::shared_ptr pPrinter( getPrinter() ); + if( mxRenderable.is() && pPrinter ) + { + Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); + nPages = mxRenderable->getRendererCount( getSelectionObject(), aJobOptions ); + } + return nPages; +} + +Sequence< beans::PropertyValue > SfxPrinterListener::getPageParameters( int i_nPage ) const +{ + boost::shared_ptr pPrinter( getPrinter() ); + Sequence< beans::PropertyValue > aResult; + + if( mxRenderable.is() && pPrinter ) + { + Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); + aResult = mxRenderable->getRenderer( i_nPage, getSelectionObject(), aJobOptions ); + } + return aResult; +} + +void SfxPrinterListener::printPage( int i_nPage ) const +{ + boost::shared_ptr pPrinter( getPrinter() ); + if( mxRenderable.is() && pPrinter ) + { + Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); + mxRenderable->render( i_nPage, getSelectionObject(), aJobOptions ); + } +} + +void SfxPrinterListener::jobStarted() +{ + if ( mpObjectShell ) + { + // FIXME: how to get all print options incl. AdditionalOptions easily? + uno::Sequence < beans::PropertyValue > aOpts; + mpObjectShell->Broadcast( SfxPrintingHint( view::PrintableState_JOB_STARTED, aOpts ) ); + } +} + +void SfxPrinterListener::jobFinished( com::sun::star::view::PrintableState nState ) +{ + if ( mpObjectShell ) + { + mpObjectShell->Broadcast( SfxPrintingHint( nState ) ); + switch ( nState ) + { + case view::PrintableState_JOB_FAILED : + { + // "real" problem (not simply printing cancelled by user) + String aMsg( SfxResId( STR_NOSTARTPRINTER ) ); + if ( !m_bApi ) + ErrorBox( mpViewShell->GetWindow(), WB_OK | WB_DEF_OK, aMsg ).Execute(); + // intentionally no break + } + case view::PrintableState_JOB_ABORTED : + { + // printing not succesful, reset DocInfo + uno::Reference xDocProps(mpObjectShell->getDocProperties()); + xDocProps->setPrintedBy(m_aLastPrintedBy); + xDocProps->setPrintDate(m_aLastPrinted); + break; + } + + case view::PrintableState_JOB_SPOOLED : + case view::PrintableState_JOB_COMPLETED : + { + SfxBindings& rBind = mpViewShell->GetViewFrame()->GetBindings(); + rBind.Invalidate( SID_PRINTDOC ); + rBind.Invalidate( SID_PRINTDOCDIRECT ); + rBind.Invalidate( SID_SETUPPRINTER ); + break; + } + + default: + break; + } + + if ( m_bNeedsChange ) + mpObjectShell->EnableSetModified( m_bOrigStatus ); + } +} + +// ----------------------------------------------------------------------- + +void DisableRanges( PrintDialog& rDlg, SfxPrinter* pPrinter ) + +/* [Beschreibung] + + Mit dieser Funktion werden die nicht verf"ugbaren Ranges + vom Printer zum PrintDialog geforwarded. +*/ + +{ + if ( !pPrinter ) + return; + + if ( !pPrinter->IsRangeEnabled( PRINTDIALOG_ALL ) ) + rDlg.DisableRange( PRINTDIALOG_ALL ); + if ( !pPrinter->IsRangeEnabled( PRINTDIALOG_SELECTION ) ) + rDlg.DisableRange( PRINTDIALOG_SELECTION ); + if ( !pPrinter->IsRangeEnabled( PRINTDIALOG_FROMTO ) ) + rDlg.DisableRange( PRINTDIALOG_FROMTO ); + if ( !pPrinter->IsRangeEnabled( PRINTDIALOG_RANGE ) ) + rDlg.DisableRange( PRINTDIALOG_RANGE ); +} + +//==================================================================== + +class SfxDialogExecutor_Impl + +/* [Beschreibung] + + Eine Instanz dieser Klasse wird f"ur die Laufzeit des Printer-Dialogs + erzeugt, um im dessen Click-Handler f"ur die Zus"atze den per + virtueller Methode von der abgeleiteten SfxViewShell erzeugten + Print-Options-Dialog zu erzeugen und die dort eingestellten Optionen + als SfxItemSet zu zwischenzuspeichern. +*/ + +{ +private: + SfxViewShell* _pViewSh; + PrintDialog* _pPrintParent; + PrinterSetupDialog* _pSetupParent; + SfxItemSet* _pOptions; + sal_Bool _bModified; + sal_Bool _bHelpDisabled; + + DECL_LINK( Execute, void * ); + +public: + SfxDialogExecutor_Impl( SfxViewShell* pViewSh, PrintDialog* pParent ); + SfxDialogExecutor_Impl( SfxViewShell* pViewSh, PrinterSetupDialog* pParent ); + ~SfxDialogExecutor_Impl() { delete _pOptions; } + + Link GetLink() const { return LINK( this, SfxDialogExecutor_Impl, Execute); } + const SfxItemSet* GetOptions() const { return _pOptions; } + void DisableHelp() { _bHelpDisabled = sal_True; } +}; + +//-------------------------------------------------------------------- + +SfxDialogExecutor_Impl::SfxDialogExecutor_Impl( SfxViewShell* pViewSh, PrintDialog* pParent ) : + + _pViewSh ( pViewSh ), + _pPrintParent ( pParent ), + _pSetupParent ( NULL ), + _pOptions ( NULL ), + _bModified ( sal_False ), + _bHelpDisabled ( sal_False ) + +{ +} + +SfxDialogExecutor_Impl::SfxDialogExecutor_Impl( SfxViewShell* pViewSh, PrinterSetupDialog* pParent ) : + + _pViewSh ( pViewSh ), + _pPrintParent ( NULL ), + _pSetupParent ( pParent ), + _pOptions ( NULL ), + _bModified ( sal_False ), + _bHelpDisabled ( sal_False ) + +{ +} + +//-------------------------------------------------------------------- + +IMPL_LINK( SfxDialogExecutor_Impl, Execute, void *, EMPTYARG ) +{ + // Options lokal merken + if ( !_pOptions ) + { + DBG_ASSERT( _pPrintParent || _pSetupParent, "no dialog parent" ); + if( _pPrintParent ) + _pOptions = ( (SfxPrinter*)_pPrintParent->GetPrinter() )->GetOptions().Clone(); + else if( _pSetupParent ) + _pOptions = ( (SfxPrinter*)_pSetupParent->GetPrinter() )->GetOptions().Clone(); + } + + if ( _pOptions && _pPrintParent && _pPrintParent->IsSheetRangeAvailable() ) + { + SfxItemState eState = _pOptions->GetItemState( SID_PRINT_SELECTEDSHEET ); + if ( eState != SFX_ITEM_UNKNOWN ) + { + PrintSheetRange eRange = _pPrintParent->GetCheckedSheetRange(); + BOOL bValue = ( PRINTSHEETS_ALL != eRange ); + _pOptions->Put( SfxBoolItem( SID_PRINT_SELECTEDSHEET, bValue ) ); + } + } + + // Dialog ausf"uhren + SfxPrintOptionsDialog* pDlg = new SfxPrintOptionsDialog( _pPrintParent ? static_cast(_pPrintParent) + : static_cast(_pSetupParent), + _pViewSh, _pOptions ); + if ( _bHelpDisabled ) + pDlg->DisableHelp(); + if ( pDlg->Execute() == RET_OK ) + { + delete _pOptions; + _pOptions = pDlg->GetOptions().Clone(); + + if ( _pOptions && _pPrintParent && _pPrintParent->IsSheetRangeAvailable() ) + { + const SfxPoolItem* pItem; + if ( SFX_ITEM_SET == _pOptions->GetItemState( SID_PRINT_SELECTEDSHEET, FALSE , &pItem ) ) + { + _pPrintParent->CheckSheetRange( ( (const SfxBoolItem*)pItem )->GetValue() + ? PRINTSHEETS_SELECTED_SHEETS : PRINTSHEETS_ALL ); + } + } + } + delete pDlg; + + return 0; +} + +//------------------------------------------------------------------------- + +BOOL UseStandardPrinter_Impl( Window* /*pParent*/, SfxPrinter* pDocPrinter ) +{ + // Optionen abfragen, ob gewarnt werden soll (Doc uebersteuert App) + BOOL bWarn = FALSE; + const SfxItemSet *pDocOptions = &pDocPrinter->GetOptions(); + if ( pDocOptions ) + { + USHORT nWhich = pDocOptions->GetPool()->GetWhich(SID_PRINTER_NOTFOUND_WARN); + const SfxBoolItem* pBoolItem = NULL; + pDocPrinter->GetOptions().GetItemState( nWhich, FALSE, (const SfxPoolItem**) &pBoolItem ); + if ( pBoolItem ) + bWarn = pBoolItem->GetValue(); + } +/* + // ggf. den User fragen + if ( bWarn ) + { + // Geht nicht mehr ohne OrigJobSetup! + String aTmp( SfxResId( STR_PRINTER_NOTAVAIL ) ); + QueryBox aBox( pParent, WB_OK_CANCEL | WB_DEF_OK, aTmp ); + return RET_OK == aBox.Execute(); + } +*/ + // nicht gewarnt => einfach so den StandardDrucker nehmen + return TRUE; +} +//------------------------------------------------------------------------- + +SfxPrinter* SfxViewShell::SetPrinter_Impl( SfxPrinter *pNewPrinter ) + +/* Interne Methode zum Setzen der Unterschiede von 'pNewPrinter' zum + aktuellen Printer. pNewPrinter wird entweder "ubernommen oder gel"oscht. +*/ + +{ + // aktuellen Printer holen + SfxPrinter *pDocPrinter = GetPrinter(); + + // Printer-Options auswerten + FASTBOOL bOriToDoc = FALSE; + FASTBOOL bSizeToDoc = FALSE; + if ( &pDocPrinter->GetOptions() ) + { + USHORT nWhich = GetPool().GetWhich(SID_PRINTER_CHANGESTODOC); + const SfxFlagItem *pFlagItem = 0; + pDocPrinter->GetOptions().GetItemState( nWhich, FALSE, (const SfxPoolItem**) &pFlagItem ); + bOriToDoc = pFlagItem ? (pFlagItem->GetValue() & SFX_PRINTER_CHG_ORIENTATION) : FALSE; + bSizeToDoc = pFlagItem ? (pFlagItem->GetValue() & SFX_PRINTER_CHG_SIZE) : FALSE; + } + + // vorheriges Format und Size feststellen + Orientation eOldOri = pDocPrinter->GetOrientation(); + Size aOldPgSz = pDocPrinter->GetPaperSizePixel(); + + // neues Format und Size feststellen + Orientation eNewOri = pNewPrinter->GetOrientation(); + Size aNewPgSz = pNewPrinter->GetPaperSizePixel(); + + // "Anderungen am Seitenformat feststellen + BOOL bOriChg = (eOldOri != eNewOri) && bOriToDoc; + BOOL bPgSzChg = ( aOldPgSz.Height() != + ( bOriChg ? aNewPgSz.Width() : aNewPgSz.Height() ) || + aOldPgSz.Width() != + ( bOriChg ? aNewPgSz.Height() : aNewPgSz.Width() ) ) && + bSizeToDoc; + + // Message und Flags f"ur Seitenformat-"Anderung zusammenstellen + String aMsg; + USHORT nNewOpt=0; + if( bOriChg && bPgSzChg ) + { + aMsg = String(SfxResId(STR_PRINT_NEWORISIZE)); + nNewOpt = SFX_PRINTER_CHG_ORIENTATION | SFX_PRINTER_CHG_SIZE; + } + else if (bOriChg ) + { + aMsg = String(SfxResId(STR_PRINT_NEWORI)); + nNewOpt = SFX_PRINTER_CHG_ORIENTATION; + } + else if (bPgSzChg) + { + aMsg = String(SfxResId(STR_PRINT_NEWSIZE)); + nNewOpt = SFX_PRINTER_CHG_SIZE; + } + + // in dieser Variable sammeln, was sich so ge"aendert hat + USHORT nChangedFlags = 0; + + // ggf. Nachfrage, ob Seitenformat vom Drucker "ubernommen werden soll + if ( ( bOriChg || bPgSzChg ) && + RET_YES == QueryBox(0, WB_YES_NO | WB_DEF_OK, aMsg).Execute() ) + // Flags mit "Anderungen f"ur mitpflegen + nChangedFlags |= nNewOpt; + + // fuer den MAC sein "temporary of class String" im naechsten if() + String aTempPrtName = pNewPrinter->GetName(); + String aDocPrtName = pDocPrinter->GetName(); + + // Wurde der Drucker gewechselt oder von Default auf Specific + // oder umgekehrt geaendert? + if ( (aTempPrtName != aDocPrtName) || (pDocPrinter->IsDefPrinter() != pNewPrinter->IsDefPrinter()) ) + { + // neuen Printer "ubernehmen + // pNewPrinter->SetOrigJobSetup( pNewPrinter->GetJobSetup() ); + nChangedFlags |= SFX_PRINTER_PRINTER|SFX_PRINTER_JOBSETUP; + pDocPrinter = pNewPrinter; + } + else + { + // Extra-Optionen vergleichen + if ( ! (pNewPrinter->GetOptions() == pDocPrinter->GetOptions()) ) + { + // Options haben sich geaendert + pDocPrinter->SetOptions( pNewPrinter->GetOptions() ); + nChangedFlags |= SFX_PRINTER_OPTIONS; + } + + // JobSetups vergleichen + JobSetup aNewJobSetup = pNewPrinter->GetJobSetup(); + JobSetup aOldJobSetup = pDocPrinter->GetJobSetup(); + if ( aNewJobSetup != aOldJobSetup ) + { + // JobSetup hat sich geaendert (=> App mu\s neu formatieren) + // pDocPrinter->SetOrigJobSetup( aNewJobSetup ); + nChangedFlags |= SFX_PRINTER_JOBSETUP; + } + + // alten, ver"anderten Printer behalten + pDocPrinter->SetPrinterProps( pNewPrinter ); + delete pNewPrinter; + } + + if ( 0 != nChangedFlags ) + // SetPrinter will delete the old printer if it changes + SetPrinter( pDocPrinter, nChangedFlags ); + return pDocPrinter; +} + +//------------------------------------------------------------------------- +// Unter WIN32 tritt leider das Problem auf, dass nichts gedruckt +// wird, wenn SID_PRINTDOCDIRECT auflaueft; bisher bekannte, +// einzige Abhilfe ist in diesem Fall das Abschalten der Optimierungen +// (KA 17.12.95) +#ifdef _MSC_VER +#pragma optimize ( "", off ) +#endif + +void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rProps, sal_Bool bIsAPI, sal_Bool bIsDirect ) +{ + // get the current selection; our controller should know it + Reference< frame::XController > xController( GetController() ); + Reference< view::XSelectionSupplier > xSupplier( xController, UNO_QUERY ); + + Any aSelection; + if( xSupplier.is() ) + aSelection = xSupplier->getSelection(); + else + aSelection <<= GetObjectShell()->GetModel(); + Any aComplete( makeAny( GetObjectShell()->GetModel() ) ); + Any aViewProp( makeAny( xController ) ); + + boost::shared_ptr pListener( new SfxPrinterListener( aComplete, + aSelection, + aViewProp, + GetRenderable(), + bIsAPI, + bIsDirect, + this + ) ); + for (sal_Int32 nProp=0; nPropsetValue( rProps[nProp].Name, rProps[nProp].Value ); + + SfxObjectShell *pObjShell = GetObjectShell(); + pListener->setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "JobName" ) ), + makeAny( rtl::OUString( pObjShell->GetTitle(0) ) ) ); + + // FIXME: job setup + JobSetup aJobSetup; + if( bIsDirect ) + aJobSetup.SetValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsQuickJob" ) ), + String( RTL_CONSTASCII_USTRINGPARAM( "true" ) ) ); + + Printer::PrintJob( pListener, aJobSetup ); +} + +void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) +{ + USHORT nCopies=1; + USHORT nDialogRet = RET_CANCEL; + BOOL bCollate=FALSE; + SfxPrinter* pPrinter = 0; + PrintDialog* pPrintDlg = 0; + SfxDialogExecutor_Impl* pExecutor = 0; + bool bSilent = false; + BOOL bIsAPI = rReq.GetArgs() && rReq.GetArgs()->Count(); + if ( bIsAPI ) + { + SFX_REQUEST_ARG(rReq, pSilentItem, SfxBoolItem, SID_SILENT, FALSE); + bSilent = pSilentItem && pSilentItem->GetValue(); + } + + //FIXME: how to transport "bPrintOnHelp"? + + // no help button in dialogs if called from the help window + // (pressing help button would exchange the current page inside the help document that is going to be printed!) + String aHelpFilterName( DEFINE_CONST_UNICODE("writer_web_HTML_help") ); + SfxMedium* pMedium = GetViewFrame()->GetObjectShell()->GetMedium(); + const SfxFilter* pFilter = pMedium ? pMedium->GetFilter() : NULL; + sal_Bool bPrintOnHelp = ( pFilter && pFilter->GetFilterName() == aHelpFilterName ); + + const USHORT nId = rReq.GetSlot(); + switch( nId ) + { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + case SID_PRINTDOC: + case SID_PRINTDOCDIRECT: + { + SfxObjectShell* pDoc = GetObjectShell(); + bool bDetectHidden = ( !bSilent && pDoc ); + if ( bDetectHidden && pDoc->QueryHiddenInformation( WhenPrinting, NULL ) != RET_YES ) + break; + + uno::Sequence < beans::PropertyValue > aProps; + if ( bIsAPI ) + { + // supported properties: + // String PrinterName + // String FileName + // Int16 From + // Int16 To + // In16 Copies + // String RangeText + // bool Selection + // bool Asynchron + // bool Collate + // bool Silent + TransformItems( nId, *rReq.GetArgs(), aProps, GetInterface()->GetSlot(nId) ); + for ( sal_Int32 nProp=0; nProp>= bAsynchron; + aProps[nProp].Value <<= (sal_Bool) (!bAsynchron); + } + if ( aProps[nProp].Name.equalsAscii("Silent") ) + { + aProps[nProp]. Name = rtl::OUString::createFromAscii("MonitorVisible"); + sal_Bool bSilent; + aProps[nProp].Value >>= bSilent; + aProps[nProp].Value <<= (sal_Bool) (!bSilent); + } + } + } + + ExecPrint( aProps, bIsAPI, (nId == SID_PRINTDOCDIRECT) ); + + // FIXME: Recording + rReq.Done(); + break; + } + + case SID_SETUPPRINTER : + case SID_PRINTER_NAME : // only for recorded macros + { + // get printer and printer settings from the document + SfxPrinter *pDocPrinter = GetPrinter(TRUE); + + // look for printer in parameters + SFX_REQUEST_ARG( rReq, pPrinterItem, SfxStringItem, SID_PRINTER_NAME, FALSE ); + if ( pPrinterItem ) + { + // use PrinterName parameter to create a printer + pPrinter = new SfxPrinter( pDocPrinter->GetOptions().Clone(), ((const SfxStringItem*) pPrinterItem)->GetValue() ); + + // if printer is unknown, it can't be used - now printer from document will be used + if ( !pPrinter->IsOriginal() ) + DELETEZ(pPrinter); + } + + if ( SID_PRINTER_NAME == nId ) + { + // just set a recorded printer name + if ( pPrinter ) + SetPrinter( pPrinter, SFX_PRINTER_PRINTER ); + break; + } + + // no PrinterName parameter in ItemSet or the PrinterName points to an unknown printer + if ( !pPrinter ) + // use default printer from document + pPrinter = pDocPrinter; + + if( !pPrinter || !pPrinter->IsValid() ) + { + // no valid printer either in ItemSet or at the document + if ( bSilent ) + { + rReq.SetReturnValue(SfxBoolItem(0,FALSE)); + break; + } + else + ErrorBox( NULL, WB_OK | WB_DEF_OK, String( SfxResId( STR_NODEFPRINTER ) ) ).Execute(); + } + + if ( !pPrinter->IsOriginal() && rReq.GetArgs() && !UseStandardPrinter_Impl( NULL, pPrinter ) ) + { + // printer is not available, but standard printer should not be used + rReq.SetReturnValue(SfxBoolItem(0,FALSE)); + break; + } + + // FIXME: printer isn't used for printing anymore! + if( pPrinter->IsPrinting() ) + { + // if printer is busy, abort printing + if ( !bSilent ) + InfoBox( NULL, String( SfxResId( STR_ERROR_PRINTER_BUSY ) ) ).Execute(); + rReq.SetReturnValue(SfxBoolItem(0,FALSE)); + break; + } + + // if no arguments are given, retrieve them from a dialog + if ( !bIsAPI ) + { + // PrinterDialog needs a temporary printer + SfxPrinter* pDlgPrinter = pPrinter->Clone(); + nDialogRet = 0; + + // execute PrinterSetupDialog + PrinterSetupDialog* pPrintSetupDlg = new PrinterSetupDialog( GetWindow() ); + + if ( pImp->bHasPrintOptions ) + { + // additional controls for dialog + pExecutor = new SfxDialogExecutor_Impl( this, pPrintSetupDlg ); + if ( bPrintOnHelp ) + pExecutor->DisableHelp(); + pPrintSetupDlg->SetOptionsHdl( pExecutor->GetLink() ); + } + + pPrintSetupDlg->SetPrinter( pDlgPrinter ); + nDialogRet = pPrintSetupDlg->Execute(); + + if ( pExecutor && pExecutor->GetOptions() ) + { + if ( nDialogRet == RET_OK ) + // remark: have to be recorded if possible! + pDlgPrinter->SetOptions( *pExecutor->GetOptions() ); + else + { + pPrinter->SetOptions( *pExecutor->GetOptions() ); + SetPrinter( pPrinter, SFX_PRINTER_OPTIONS ); + } + } + + DELETEZ( pPrintSetupDlg ); + + // no recording of PrinterSetup except printer name (is printer dependent) + rReq.Ignore(); + + if ( nDialogRet == RET_OK ) + { + if ( pPrinter->GetName() != pDlgPrinter->GetName() ) + { + // user has changed the printer -> macro recording + SfxRequest aReq( GetViewFrame(), SID_PRINTER_NAME ); + aReq.AppendItem( SfxStringItem( SID_PRINTER_NAME, pDlgPrinter->GetName() ) ); + aReq.Done(); + } + + // take the changes made in the dialog + pPrinter = SetPrinter_Impl( pDlgPrinter ); + + // forget new printer, it was taken over (as pPrinter) or deleted + pDlgPrinter = NULL; + + /* Now lets reset the Dialog printer, since its freed */ + if (pPrintDlg) + pPrintDlg->SetPrinter (pPrinter); + } + else + { + // PrinterDialog is used to transfer information on printing, + // so it will only be deleted here if dialog was cancelled + DELETEZ( pDlgPrinter ); + DELETEZ( pPrintDlg ); + rReq.Ignore(); + if ( SID_PRINTDOC == nId ) + rReq.SetReturnValue(SfxBoolItem(0,FALSE)); + } + } + } + + break; + } +} + +// Optimierungen wieder einschalten +#ifdef _MSC_VER +#pragma optimize ( "", on ) +#endif + +//-------------------------------------------------------------------- + +PrintDialog* SfxViewShell::CreatePrintDialog( Window* /*pParent*/ ) + +/* [Beschreibung] + + Diese Methode kann "uberladen werden, um einen speziellen PrintDialog + zu erzeugen. Dies ist z.B. notwendig wenn spezielle Features + wie drucken von Seitenbereichen. +*/ + +{ + #if 0 + PrintDialog *pDlg = new PrintDialog( pParent, false ); + pDlg->SetFirstPage( 1 ); + pDlg->SetLastPage( 9999 ); + pDlg->EnableCollate(); + return pDlg; + #else + return NULL; + #endif +} + +//-------------------------------------------------------------------- + +void SfxViewShell::PreparePrint( PrintDialog * ) +{ +} + +//-------------------------------------------------------------------- + + +ErrCode SfxViewShell::DoPrint( SfxPrinter* /*pPrinter*/, + PrintDialog* /*pPrintDlg*/, + BOOL /*bSilent*/, BOOL /*bIsAPI*/ ) +{ + #if 0 + // Printer-Dialogbox waehrend des Ausdrucks mu\s schon vor + // StartJob erzeugt werden, da SV bei einem Quit-Event h"angt + SfxPrintProgress *pProgress = new SfxPrintProgress( this, !bSilent ); + SfxPrinter *pDocPrinter = GetPrinter(TRUE); + if ( !pPrinter ) + pPrinter = pDocPrinter; + else if ( pDocPrinter != pPrinter ) + { + pProgress->RestoreOnEndPrint( pDocPrinter->Clone() ); + SetPrinter( pPrinter, SFX_PRINTER_PRINTER ); + } + pProgress->SetWaitMode(FALSE); + + // Drucker starten + PreparePrint( pPrintDlg ); + SfxObjectShell *pObjShell = GetViewFrame()->GetObjectShell(); + if ( pPrinter->StartJob(pObjShell->GetTitle(0)) ) + { + // Drucken + Print( *pProgress, bIsAPI, pPrintDlg ); + pProgress->Stop(); + pProgress->DeleteOnEndPrint(); + pPrinter->EndJob(); + } + else + { + // Printer konnte nicht gestartet werden + delete pProgress; + } + + return pPrinter->GetError(); + #else + DBG_ERROR( "DoPrint called, dead code !" ); + return ERRCODE_IO_NOTSUPPORTED; + #endif +} + +//-------------------------------------------------------------------- + +BOOL SfxViewShell::IsPrinterLocked() const +{ + return pImp->nPrinterLocks > 0; +} + +//-------------------------------------------------------------------- + +void SfxViewShell::LockPrinter( BOOL bLock) +{ + BOOL bChanged = FALSE; + if ( bLock ) + bChanged = 1 == ++pImp->nPrinterLocks; + else + bChanged = 0 == --pImp->nPrinterLocks; + + if ( bChanged ) + { + Invalidate( SID_PRINTDOC ); + Invalidate( SID_PRINTDOCDIRECT ); + Invalidate( SID_SETUPPRINTER ); + } +} + +//-------------------------------------------------------------------- + +USHORT SfxViewShell::Print( SfxProgress& /*rProgress*/, BOOL /*bIsAPI*/, PrintDialog* /*pDlg*/ ) +{ + return 0; +} + +//-------------------------------------------------------------------- + +SfxPrinter* SfxViewShell::GetPrinter( BOOL /*bCreate*/ ) +{ + return 0; +} + +//-------------------------------------------------------------------- + +USHORT SfxViewShell::SetPrinter( SfxPrinter* /*pNewPrinter*/, USHORT /*nDiffFlags*/, bool ) +{ + return 0; +} + +//-------------------------------------------------------------------- + +SfxTabPage* SfxViewShell::CreatePrintOptionsPage +( + Window* /*pParent*/, + const SfxItemSet& /*rOptions*/ +) + +/* [Beschreibung] + + Diese Factory-Methode wird vom SFx verwendet, um die TabPage mit den + Print-Optionen, welche "uber das am + transportiert werden, zu erzeugen. + + Abgeleitete Klassen k"onnen diese Methode also "uberladen um die zu + ihren SfxPrinter passenden Einstellungen vorzunehmen. Dieses sollte + genau die sein, die auch unter Extras/Einstellungen + verwendet wird. + + Die Basisimplementierung liefert einen 0-Pointer. +*/ + +{ + return 0; +} + + diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index a61d3fc0fc8f..a335087dc1bc 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -2121,7 +2121,7 @@ BOOL SfxViewShell::HasMouseClickListeners_Impl() void SfxViewShell::SetAdditionalPrintOptions( const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& rOpts ) { pImp->aPrintOpts = rOpts; - GetObjectShell()->Broadcast( SfxPrintingHint( -3, NULL, NULL, rOpts ) ); +// GetObjectShell()->Broadcast( SfxPrintingHint( -3, NULL, NULL, rOpts ) ); } BOOL SfxViewShell::Escape() -- cgit v1.2.3 From 28856974b8f334e3a6a219f10ab9fe6451fb7b81 Mon Sep 17 00:00:00 2001 From: Mathias Bauer Date: Fri, 3 Jul 2009 11:35:10 +0000 Subject: #i92516#: virtual method to get JobSetup for document --- sfx2/inc/sfx2/viewsh.hxx | 2 ++ sfx2/source/view/viewprn.cxx | 22 +++++----------------- 2 files changed, 7 insertions(+), 17 deletions(-) (limited to 'sfx2') diff --git a/sfx2/inc/sfx2/viewsh.hxx b/sfx2/inc/sfx2/viewsh.hxx index 135d5f83dae7..84612c0bc8e2 100644 --- a/sfx2/inc/sfx2/viewsh.hxx +++ b/sfx2/inc/sfx2/viewsh.hxx @@ -43,6 +43,7 @@ #include "shell.hxx" #include #include +#include class SfxBaseController; class Size; class Fraction; @@ -266,6 +267,7 @@ public: virtual PrintDialog* CreatePrintDialog( Window *pParent ); void LockPrinter( BOOL bLock = TRUE ); BOOL IsPrinterLocked() const; + virtual JobSetup GetJobSetup() const; // Workingset virtual void WriteUserData( String&, BOOL bBrowse = FALSE ); diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 3b0ea5fc4c06..d66c934506c7 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -628,7 +628,7 @@ void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rPro makeAny( rtl::OUString( pObjShell->GetTitle(0) ) ) ); // FIXME: job setup - JobSetup aJobSetup; + JobSetup aJobSetup = GetJobSetup(); if( bIsDirect ) aJobSetup.SetValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsQuickJob" ) ), String( RTL_CONSTASCII_USTRINGPARAM( "true" ) ) ); @@ -986,23 +986,11 @@ SfxTabPage* SfxViewShell::CreatePrintOptionsPage Window* /*pParent*/, const SfxItemSet& /*rOptions*/ ) - -/* [Beschreibung] - - Diese Factory-Methode wird vom SFx verwendet, um die TabPage mit den - Print-Optionen, welche "uber das am - transportiert werden, zu erzeugen. - - Abgeleitete Klassen k"onnen diese Methode also "uberladen um die zu - ihren SfxPrinter passenden Einstellungen vorzunehmen. Dieses sollte - genau die sein, die auch unter Extras/Einstellungen - verwendet wird. - - Die Basisimplementierung liefert einen 0-Pointer. -*/ - { return 0; } - +JobSetup SfxViewShell::GetJobSetup() const +{ + return JobSetup(); +} \ No newline at end of file -- cgit v1.2.3 From b75ff0e929cb23ba7b74d254759369e488a2070a Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Mon, 6 Jul 2009 10:55:02 +0000 Subject: rename PrinterListener, add: getValues, abortJob --- sfx2/source/doc/objcont.cxx | 4 +-- sfx2/source/view/viewprn.cxx | 62 ++++++++++++++++++++++---------------------- 2 files changed, 33 insertions(+), 33 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/doc/objcont.cxx b/sfx2/source/doc/objcont.cxx index 0cac065f435f..e5a526b5a31f 100644 --- a/sfx2/source/doc/objcont.cxx +++ b/sfx2/source/doc/objcont.cxx @@ -1035,7 +1035,7 @@ BOOL SfxObjectShell::Print // pepare adaptor for old style StartPage/EndPage printing boost::shared_ptr< Printer > pPrinter( new Printer( rPrt.GetJobSetup() ) ); vcl::OldStylePrintAdaptor* pAdaptor = new vcl::OldStylePrintAdaptor( pPrinter ); - boost::shared_ptr< vcl::PrinterListener > pListener( pAdaptor ); + boost::shared_ptr< vcl::PrinterController > pController( pAdaptor ); pAdaptor->StartPage(); @@ -1133,7 +1133,7 @@ BOOL SfxObjectShell::Print } pAdaptor->EndPage(); - Printer::PrintJob( pListener, rPrt.GetJobSetup() ); + Printer::PrintJob( pController, rPrt.GetJobSetup() ); delete pIter; break; diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index d66c934506c7..c9c50a3aa631 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -72,7 +72,7 @@ using namespace com::sun::star::uno; TYPEINIT1(SfxPrintingHint, SfxHint); // ----------------------------------------------------------------------- -class SfxPrinterListener : public vcl::PrinterListener, public SfxListener +class SfxPrinterController : public vcl::PrinterController, public SfxListener { Any maCompleteSelection; Any maSelection; @@ -90,15 +90,15 @@ class SfxPrinterListener : public vcl::PrinterListener, public SfxListener Sequence< beans::PropertyValue > getMergedOptions() const; const Any& getSelectionObject() const; public: - SfxPrinterListener( const Any& i_rComplete, - const Any& i_rSelection, - const Any& i_rViewProp, - const Reference< view::XRenderable >& i_xRender, - sal_Bool i_bApi, sal_Bool i_bDirect, - SfxViewShell* pView - ); + SfxPrinterController( const Any& i_rComplete, + const Any& i_rSelection, + const Any& i_rViewProp, + const Reference< view::XRenderable >& i_xRender, + sal_Bool i_bApi, sal_Bool i_bDirect, + SfxViewShell* pView + ); - virtual ~SfxPrinterListener(); + virtual ~SfxPrinterController(); virtual void Notify( SfxBroadcaster&, const SfxHint& ); virtual int getPageCount() const; @@ -108,13 +108,13 @@ public: virtual void jobFinished( com::sun::star::view::PrintableState ); }; -SfxPrinterListener::SfxPrinterListener( const Any& i_rComplete, - const Any& i_rSelection, - const Any& i_rViewProp, - const Reference< view::XRenderable >& i_xRender, - sal_Bool i_bApi, sal_Bool i_bDirect, - SfxViewShell* pView - ) +SfxPrinterController::SfxPrinterController( const Any& i_rComplete, + const Any& i_rSelection, + const Any& i_rViewProp, + const Reference< view::XRenderable >& i_xRender, + sal_Bool i_bApi, sal_Bool i_bDirect, + SfxViewShell* pView + ) : maCompleteSelection( i_rComplete ) , maSelection( i_rSelection ) , mxRenderable( i_xRender ) @@ -180,7 +180,7 @@ SfxPrinterListener::SfxPrinterListener( const Any& i_rComplete, setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "View" ) ), makeAny( i_rViewProp ) ); } -void SfxPrinterListener::Notify( SfxBroadcaster& , const SfxHint& rHint ) +void SfxPrinterController::Notify( SfxBroadcaster& , const SfxHint& rHint ) { if ( rHint.IsA(TYPE(SfxSimpleHint)) ) { @@ -194,11 +194,11 @@ void SfxPrinterListener::Notify( SfxBroadcaster& , const SfxHint& rHint ) } } -SfxPrinterListener::~SfxPrinterListener() +SfxPrinterController::~SfxPrinterController() { } -const Any& SfxPrinterListener::getSelectionObject() const +const Any& SfxPrinterController::getSelectionObject() const { sal_Int32 nChoice = 0; const beans::PropertyValue* pVal = getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintContent" ) ) ); @@ -207,7 +207,7 @@ const Any& SfxPrinterListener::getSelectionObject() const return nChoice > 1 ? maSelection : maCompleteSelection; } -Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const +Sequence< beans::PropertyValue > SfxPrinterController::getMergedOptions() const { boost::shared_ptr pPrinter( getPrinter() ); if( pPrinter.get() != mpLastPrinter ) @@ -226,7 +226,7 @@ Sequence< beans::PropertyValue > SfxPrinterListener::getMergedOptions() const return aRenderOptions; } -int SfxPrinterListener::getPageCount() const +int SfxPrinterController::getPageCount() const { int nPages = 0; boost::shared_ptr pPrinter( getPrinter() ); @@ -238,7 +238,7 @@ int SfxPrinterListener::getPageCount() const return nPages; } -Sequence< beans::PropertyValue > SfxPrinterListener::getPageParameters( int i_nPage ) const +Sequence< beans::PropertyValue > SfxPrinterController::getPageParameters( int i_nPage ) const { boost::shared_ptr pPrinter( getPrinter() ); Sequence< beans::PropertyValue > aResult; @@ -251,7 +251,7 @@ Sequence< beans::PropertyValue > SfxPrinterListener::getPageParameters( int i_nP return aResult; } -void SfxPrinterListener::printPage( int i_nPage ) const +void SfxPrinterController::printPage( int i_nPage ) const { boost::shared_ptr pPrinter( getPrinter() ); if( mxRenderable.is() && pPrinter ) @@ -261,7 +261,7 @@ void SfxPrinterListener::printPage( int i_nPage ) const } } -void SfxPrinterListener::jobStarted() +void SfxPrinterController::jobStarted() { if ( mpObjectShell ) { @@ -271,7 +271,7 @@ void SfxPrinterListener::jobStarted() } } -void SfxPrinterListener::jobFinished( com::sun::star::view::PrintableState nState ) +void SfxPrinterController::jobFinished( com::sun::star::view::PrintableState nState ) { if ( mpObjectShell ) { @@ -612,7 +612,7 @@ void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rPro Any aComplete( makeAny( GetObjectShell()->GetModel() ) ); Any aViewProp( makeAny( xController ) ); - boost::shared_ptr pListener( new SfxPrinterListener( aComplete, + boost::shared_ptr pController( new SfxPrinterController( aComplete, aSelection, aViewProp, GetRenderable(), @@ -621,10 +621,10 @@ void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rPro this ) ); for (sal_Int32 nProp=0; nPropsetValue( rProps[nProp].Name, rProps[nProp].Value ); + pController->setValue( rProps[nProp].Name, rProps[nProp].Value ); SfxObjectShell *pObjShell = GetObjectShell(); - pListener->setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "JobName" ) ), + pController->setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "JobName" ) ), makeAny( rtl::OUString( pObjShell->GetTitle(0) ) ) ); // FIXME: job setup @@ -633,14 +633,14 @@ void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rPro aJobSetup.SetValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsQuickJob" ) ), String( RTL_CONSTASCII_USTRINGPARAM( "true" ) ) ); - Printer::PrintJob( pListener, aJobSetup ); + Printer::PrintJob( pController, aJobSetup ); } void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) { - USHORT nCopies=1; + // USHORT nCopies=1; USHORT nDialogRet = RET_CANCEL; - BOOL bCollate=FALSE; + // BOOL bCollate=FALSE; SfxPrinter* pPrinter = 0; PrintDialog* pPrintDlg = 0; SfxDialogExecutor_Impl* pExecutor = 0; -- cgit v1.2.3 From 6ba513a99f89c88a4d2f4ac1a2bdaf017276f163 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Mon, 6 Jul 2009 12:05:10 +0000 Subject: fix warnings --- sfx2/source/view/viewprn.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index c9c50a3aa631..153ab8e2b9c1 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -704,9 +704,9 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) if ( aProps[nProp].Name.equalsAscii("Silent") ) { aProps[nProp]. Name = rtl::OUString::createFromAscii("MonitorVisible"); - sal_Bool bSilent; - aProps[nProp].Value >>= bSilent; - aProps[nProp].Value <<= (sal_Bool) (!bSilent); + sal_Bool bPrintSilent; + aProps[nProp].Value >>= bPrintSilent; + aProps[nProp].Value <<= (sal_Bool) (!bPrintSilent); } } } @@ -993,4 +993,4 @@ SfxTabPage* SfxViewShell::CreatePrintOptionsPage JobSetup SfxViewShell::GetJobSetup() const { return JobSetup(); -} \ No newline at end of file +} -- cgit v1.2.3 From 67efc985e70d7a411fe0862127dfe002f966cece Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Mon, 6 Jul 2009 12:33:48 +0000 Subject: squash some more warnings --- sfx2/source/view/viewprn.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 153ab8e2b9c1..dcefc9f0268d 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -697,14 +697,14 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) if ( aProps[nProp].Name.equalsAscii("Asynchron") ) { aProps[nProp]. Name = rtl::OUString::createFromAscii("Wait"); - sal_Bool bAsynchron; + sal_Bool bAsynchron = sal_False; aProps[nProp].Value >>= bAsynchron; aProps[nProp].Value <<= (sal_Bool) (!bAsynchron); } if ( aProps[nProp].Name.equalsAscii("Silent") ) { aProps[nProp]. Name = rtl::OUString::createFromAscii("MonitorVisible"); - sal_Bool bPrintSilent; + sal_Bool bPrintSilent = sal_False; aProps[nProp].Value >>= bPrintSilent; aProps[nProp].Value <<= (sal_Bool) (!bPrintSilent); } -- cgit v1.2.3 From 824f891295e2703b677f0228be39f7d43d65e747 Mon Sep 17 00:00:00 2001 From: Carsten Driesner Date: Thu, 6 Aug 2009 12:48:44 +0000 Subject: #92516# Arguments must always be provided to the printing function --- sfx2/source/view/viewprn.cxx | 62 +++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 32 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index dcefc9f0268d..bd7969e5b05f 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -674,40 +674,38 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) break; uno::Sequence < beans::PropertyValue > aProps; - if ( bIsAPI ) + + // supported properties: + // String PrinterName + // String FileName + // Int16 From + // Int16 To + // In16 Copies + // String RangeText + // bool Selection + // bool Asynchron + // bool Collate + // bool Silent + TransformItems( nId, *rReq.GetArgs(), aProps, GetInterface()->GetSlot(nId) ); + for ( sal_Int32 nProp=0; nPropGetSlot(nId) ); - for ( sal_Int32 nProp=0; nProp>= bAsynchron; - aProps[nProp].Value <<= (sal_Bool) (!bAsynchron); - } - if ( aProps[nProp].Name.equalsAscii("Silent") ) - { - aProps[nProp]. Name = rtl::OUString::createFromAscii("MonitorVisible"); - sal_Bool bPrintSilent = sal_False; - aProps[nProp].Value >>= bPrintSilent; - aProps[nProp].Value <<= (sal_Bool) (!bPrintSilent); - } + aProps[nProp]. Name = rtl::OUString::createFromAscii("Wait"); + sal_Bool bAsynchron = sal_False; + aProps[nProp].Value >>= bAsynchron; + aProps[nProp].Value <<= (sal_Bool) (!bAsynchron); + } + if ( aProps[nProp].Name.equalsAscii("Silent") ) + { + aProps[nProp]. Name = rtl::OUString::createFromAscii("MonitorVisible"); + sal_Bool bPrintSilent = sal_False; + aProps[nProp].Value >>= bPrintSilent; + aProps[nProp].Value <<= (sal_Bool) (!bPrintSilent); } } -- cgit v1.2.3 From 7a0a8c5debdecd828a1f82cc71584b3db1609160 Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Fri, 7 Aug 2009 12:57:18 +0000 Subject: #i103991# fixed crash in sfx2 --- sfx2/source/view/viewprn.cxx | 62 +++++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 30 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index bd7969e5b05f..dcefc9f0268d 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -674,38 +674,40 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) break; uno::Sequence < beans::PropertyValue > aProps; - - // supported properties: - // String PrinterName - // String FileName - // Int16 From - // Int16 To - // In16 Copies - // String RangeText - // bool Selection - // bool Asynchron - // bool Collate - // bool Silent - TransformItems( nId, *rReq.GetArgs(), aProps, GetInterface()->GetSlot(nId) ); - for ( sal_Int32 nProp=0; nPropGetSlot(nId) ); + for ( sal_Int32 nProp=0; nProp>= bAsynchron; - aProps[nProp].Value <<= (sal_Bool) (!bAsynchron); - } - if ( aProps[nProp].Name.equalsAscii("Silent") ) - { - aProps[nProp]. Name = rtl::OUString::createFromAscii("MonitorVisible"); - sal_Bool bPrintSilent = sal_False; - aProps[nProp].Value >>= bPrintSilent; - aProps[nProp].Value <<= (sal_Bool) (!bPrintSilent); + if ( aProps[nProp].Name.equalsAscii("Copies") ) + aProps[nProp]. Name = rtl::OUString::createFromAscii("CopyCount"); + else if ( aProps[nProp].Name.equalsAscii("RangeText") ) + aProps[nProp]. Name = rtl::OUString::createFromAscii("Pages"); + if ( aProps[nProp].Name.equalsAscii("Asynchron") ) + { + aProps[nProp]. Name = rtl::OUString::createFromAscii("Wait"); + sal_Bool bAsynchron = sal_False; + aProps[nProp].Value >>= bAsynchron; + aProps[nProp].Value <<= (sal_Bool) (!bAsynchron); + } + if ( aProps[nProp].Name.equalsAscii("Silent") ) + { + aProps[nProp]. Name = rtl::OUString::createFromAscii("MonitorVisible"); + sal_Bool bPrintSilent = sal_False; + aProps[nProp].Value >>= bPrintSilent; + aProps[nProp].Value <<= (sal_Bool) (!bPrintSilent); + } } } -- cgit v1.2.3 From 04f036a2e0a5eb2aadece1724fa33acd16c2704f Mon Sep 17 00:00:00 2001 From: Carsten Driesner Date: Mon, 10 Aug 2009 15:15:16 +0000 Subject: #i96402# Added DuplexMode option --- sfx2/source/doc/printhelper.cxx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'sfx2') diff --git a/sfx2/source/doc/printhelper.cxx b/sfx2/source/doc/printhelper.cxx index 7197fc23cdae..3f37485af234 100755 --- a/sfx2/source/doc/printhelper.cxx +++ b/sfx2/source/doc/printhelper.cxx @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -604,7 +605,8 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >& uno::Sequence < beans::PropertyValue > aCheckedArgs( rOptions.getLength() ); sal_Int32 nProps = 0; - sal_Bool bWaitUntilEnd = sal_False; + sal_Bool bWaitUntilEnd = sal_False; + sal_Int16 nDuplexMode = ::com::sun::star::view::DuplexMode::UNKNOWN; for ( int n = 0; n < rOptions.getLength(); ++n ) { // get Property-Value from options @@ -732,6 +734,14 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >& aCheckedArgs[nProps].Name = rProp.Name; aCheckedArgs[nProps++].Value <<= bWaitUntilEnd; } + + else if ( rProp.Name.compareToAscii( "DuplexMode" ) == 0 ) + { + if ( !(rProp.Value >>= nDuplexMode ) ) + throw ::com::sun::star::lang::IllegalArgumentException(); + aCheckedArgs[nProps].Name = rProp.Name; + aCheckedArgs[nProps++].Value <<= nDuplexMode; + } } if ( nProps != aCheckedArgs.getLength() ) -- cgit v1.2.3 From c2309b3461c3ff144531e542b61b6960574f9ef2 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Tue, 11 Aug 2009 18:01:09 +0000 Subject: #i92516# avoid crash if options pages is missing --- sfx2/source/view/printer.cxx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/printer.cxx b/sfx2/source/view/printer.cxx index c99d45db6397..cffeb65ccca5 100644 --- a/sfx2/source/view/printer.cxx +++ b/sfx2/source/view/printer.cxx @@ -546,14 +546,17 @@ SfxPrintOptionsDialog::SfxPrintOptionsDialog( Window *pParent, // TabPage einh"angen pPage = pViewSh->CreatePrintOptionsPage( this, *pOptions ); DBG_ASSERT( pPage, "CreatePrintOptions != SFX_VIEW_HAS_PRINTOPTIONS" ); - pPage->Reset( *pOptions ); - SetHelpId( pPage->GetHelpId() ); - pPage->Show(); + if( pPage ) + { + pPage->Reset( *pOptions ); + SetHelpId( pPage->GetHelpId() ); + pPage->Show(); + } // Dialoggr"o\se bestimmen Size a6Sz = LogicToPixel( Size( 6, 6 ), MAP_APPFONT ); Size aBtnSz = LogicToPixel( Size( 50, 14 ), MAP_APPFONT ); - Size aOutSz( pPage->GetSizePixel() ); + Size aOutSz( pPage ? pPage->GetSizePixel() : Size() ); aOutSz.Height() += 6; long nWidth = aBtnSz.Width(); nWidth += a6Sz.Width(); @@ -589,6 +592,9 @@ SfxPrintOptionsDialog::~SfxPrintOptionsDialog() short SfxPrintOptionsDialog::Execute() { + if( ! pPage ) + return RET_CANCEL; + short nRet = ModalDialog::Execute(); if ( nRet == RET_OK ) pPage->FillItemSet( *pOptions ); -- cgit v1.2.3 From 6321fa4160a5c16c4a489a27cecf51c451e44c47 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Wed, 12 Aug 2009 14:10:37 +0000 Subject: #i92516# handle LocalFileName correctly --- sfx2/source/doc/printhelper.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'sfx2') diff --git a/sfx2/source/doc/printhelper.cxx b/sfx2/source/doc/printhelper.cxx index 3f37485af234..ed150f390586 100755 --- a/sfx2/source/doc/printhelper.cxx +++ b/sfx2/source/doc/printhelper.cxx @@ -644,6 +644,10 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >& throw ::com::sun::star::lang::IllegalArgumentException(); aCheckedArgs[nProps].Name = rProp.Name; aCheckedArgs[nProps++].Value <<= sFileURL; + // and append the local filename + aCheckedArgs.realloc( aCheckedArgs.getLength()+1 ); + aCheckedArgs[nProps].Name = rtl::OUString::createFromAscii("LocalFileName"); + aCheckedArgs[nProps++].Value <<= ::rtl::OUString( sTemp ); } else // It's a valid URL. but now we must know, if it is a local one or not. @@ -656,6 +660,10 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >& // the end of this method. aCheckedArgs[nProps].Name = rProp.Name; aCheckedArgs[nProps++].Value <<= sTemp; + // and append the local filename + aCheckedArgs.realloc( aCheckedArgs.getLength()+1 ); + aCheckedArgs[nProps].Name = rtl::OUString::createFromAscii("LocalFileName"); + aCheckedArgs[nProps++].Value <<= ::rtl::OUString( sPath ); } else { -- cgit v1.2.3 From 9cdd2987e07c0f75c21c0227b9e1a552e2a85b48 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Sat, 15 Aug 2009 16:52:25 +0000 Subject: #i92516# move solar.hrc to vcl --- sfx2/inc/pch/precompiled_sfx2.hxx | 2 +- sfx2/inc/sfx2/cntids.hrc | 2 +- sfx2/inc/sfx2/sfx.hrc | 2 +- sfx2/inc/sfx2/sfxsids.hrc | 2 +- sfx2/source/inc/helpid.hrc | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to 'sfx2') diff --git a/sfx2/inc/pch/precompiled_sfx2.hxx b/sfx2/inc/pch/precompiled_sfx2.hxx index ad70b76f27ff..08524fc64d1b 100644 --- a/sfx2/inc/pch/precompiled_sfx2.hxx +++ b/sfx2/inc/pch/precompiled_sfx2.hxx @@ -565,7 +565,7 @@ #include "svtools/slstitm.hxx" #include "svtools/smplhint.hxx" #include "svtools/soerr.hxx" -#include "svtools/solar.hrc" +#include "vcl/solar.hrc" #include "svtools/startoptions.hxx" #include "svtools/statusbarcontroller.hxx" #include "svtools/stritem.hxx" diff --git a/sfx2/inc/sfx2/cntids.hrc b/sfx2/inc/sfx2/cntids.hrc index a67c306e61a2..faaf9ec53732 100644 --- a/sfx2/inc/sfx2/cntids.hrc +++ b/sfx2/inc/sfx2/cntids.hrc @@ -36,7 +36,7 @@ #endif #ifndef _SOLAR_HRC -#include +#include #endif // Slot-ID's ----------------------------------------------------------------- diff --git a/sfx2/inc/sfx2/sfx.hrc b/sfx2/inc/sfx2/sfx.hrc index fbc5e6f58d1c..1b92186b3769 100644 --- a/sfx2/inc/sfx2/sfx.hrc +++ b/sfx2/inc/sfx2/sfx.hrc @@ -33,7 +33,7 @@ // include --------------------------------------------------------------- #ifndef _SOLAR_HRC -#include +#include #endif #ifndef _MEMBERID_HRC diff --git a/sfx2/inc/sfx2/sfxsids.hrc b/sfx2/inc/sfx2/sfxsids.hrc index e600c812a373..2ce5db197b38 100644 --- a/sfx2/inc/sfx2/sfxsids.hrc +++ b/sfx2/inc/sfx2/sfxsids.hrc @@ -33,7 +33,7 @@ // include --------------------------------------------------------------- #ifndef _SOLAR_HRC -#include +#include #endif #define SID_SFX_START 5000 diff --git a/sfx2/source/inc/helpid.hrc b/sfx2/source/inc/helpid.hrc index 1b2cc2220a28..25ec26172109 100644 --- a/sfx2/source/inc/helpid.hrc +++ b/sfx2/source/inc/helpid.hrc @@ -32,7 +32,7 @@ // include ------------------------------------------------------------------ -#include +#include // Help-Ids ----------------------------------------------------------------- -- cgit v1.2.3 From 46639acb799932b5a375520b6a58587d27a3420a Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Wed, 2 Sep 2009 14:20:23 +0000 Subject: #i101242# provide missing 'View' and 'IsPrinter' parameter befor getRenderer is called in SfxPrinterController --- sfx2/source/view/viewprn.cxx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index dcefc9f0268d..87b6956ba672 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -153,12 +153,16 @@ SfxPrinterController::SfxPrinterController( const Any& i_rComplete, now.Get100Sec(), now.GetSec(), now.GetMin(), now.GetHour(), now.GetDay(), now.GetMonth(), now.GetYear() ) ); } - + // initialize extra ui options if( mxRenderable.is() ) { - Sequence< beans::PropertyValue > aRenderOptions( 1 ); + Sequence< beans::PropertyValue > aRenderOptions( 3 ); aRenderOptions[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ExtraPrintUIOptions" ) ); + aRenderOptions[1].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "View" ) ); + aRenderOptions[1].Value = i_rViewProp; + aRenderOptions[2].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsPrinter" ) ); + aRenderOptions[2].Value <<= sal_True; Sequence< beans::PropertyValue > aRenderParms( mxRenderable->getRenderer( 0 , getSelectionObject(), aRenderOptions ) ); int nProps = aRenderParms.getLength(); for( int i = 0; i < nProps; i++ ) @@ -172,12 +176,12 @@ SfxPrinterController::SfxPrinterController( const Any& i_rComplete, } } } - + // set some job parameters setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsApi" ) ), makeAny( i_bApi ) ); setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDirect" ) ), makeAny( i_bDirect ) ); setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsPrinter" ) ), makeAny( sal_True ) ); - setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "View" ) ), makeAny( i_rViewProp ) ); + setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "View" ) ), i_rViewProp ); } void SfxPrinterController::Notify( SfxBroadcaster& , const SfxHint& rHint ) -- cgit v1.2.3 From bf0a105df9da382dde7b9bc663f81a354ce5b853 Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Fri, 4 Sep 2009 13:06:23 +0000 Subject: #i101242#SfxViewFrame::IsVisible_Impl renamed to IsVisible --- sfx2/source/appl/appopen.cxx | 2 +- sfx2/source/control/shell.cxx | 2 +- sfx2/source/view/topfrm.cxx | 2 +- sfx2/source/view/viewfrm.cxx | 14 +++++++------- sfx2/source/view/viewsh.cxx | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/appl/appopen.cxx b/sfx2/source/appl/appopen.cxx index c73a40dd75a7..eb0b376be9c2 100644 --- a/sfx2/source/appl/appopen.cxx +++ b/sfx2/source/appl/appopen.cxx @@ -217,7 +217,7 @@ SfxObjectShellRef SfxApplication::DocAlreadyLoaded SfxTopViewFrame *pFrame; for( pFrame = (SfxTopViewFrame*) SfxViewFrame::GetFirst( xDoc, TYPE(SfxTopViewFrame) ); - pFrame && !pFrame->IsVisible_Impl(); + pFrame && !pFrame->IsVisible(); pFrame = (SfxTopViewFrame*) SfxViewFrame::GetNext( *pFrame, xDoc, TYPE(SfxTopViewFrame) ) ) ; if ( pFrame ) diff --git a/sfx2/source/control/shell.cxx b/sfx2/source/control/shell.cxx index fcfd93cbc9ef..4cbc26f02341 100644 --- a/sfx2/source/control/shell.cxx +++ b/sfx2/source/control/shell.cxx @@ -1260,7 +1260,7 @@ long DispatcherUpdate_Impl( void*, void* pArg ) void SfxShell::UIFeatureChanged() { SfxViewFrame *pFrame = GetFrame(); - if ( pFrame && pFrame->IsVisible_Impl() ) + if ( pFrame && pFrame->IsVisible() ) { // Auch dann Update erzwingen, wenn Dispatcher schon geupdated ist, // sonst bleibt evtl. irgendwas in den gebunkerten Tools stecken. diff --git a/sfx2/source/view/topfrm.cxx b/sfx2/source/view/topfrm.cxx index 205fdf788ba1..9e2b2d7cfc8a 100644 --- a/sfx2/source/view/topfrm.cxx +++ b/sfx2/source/view/topfrm.cxx @@ -367,7 +367,7 @@ void SfxTopViewWin_Impl::StateChanged( StateChangedType nStateChange ) if ( nStateChange == STATE_CHANGE_INITSHOW ) { SfxObjectShell* pDoc = pFrame->GetObjectShell(); - if ( pDoc && !pFrame->IsVisible_Impl() ) + if ( pDoc && !pFrame->IsVisible() ) pFrame->Show(); pFrame->Resize(); diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx index 0769a782de86..39fbf05a975e 100644 --- a/sfx2/source/view/viewfrm.cxx +++ b/sfx2/source/view/viewfrm.cxx @@ -1327,7 +1327,7 @@ String SfxViewFrame::UpdateTitle() // Name des SbxObjects String aSbxName = pObjSh->SfxShell::GetName(); - if ( IsVisible_Impl() ) + if ( IsVisible() ) { aSbxName += ':'; aSbxName += String::CreateFromInt32(pImp->nDocViewNo); @@ -1787,7 +1787,7 @@ sal_uInt16 SfxViewFrame::Count(TypeId aType) { SfxViewFrame *pFrame = rFrames[i]; if ( ( !aType || pFrame->IsA(aType) ) && - pFrame->IsVisible_Impl() ) + pFrame->IsVisible() ) ++nFound; } return nFound; @@ -1811,7 +1811,7 @@ SfxViewFrame* SfxViewFrame::GetFirst SfxViewFrame *pFrame = rFrames.GetObject(nPos); if ( ( !pDoc || pDoc == pFrame->GetObjectShell() ) && ( !aType || pFrame->IsA(aType) ) && - ( !bOnlyIfVisible || pFrame->IsVisible_Impl()) ) + ( !bOnlyIfVisible || pFrame->IsVisible()) ) return pFrame; } @@ -1843,7 +1843,7 @@ SfxViewFrame* SfxViewFrame::GetNext SfxViewFrame *pFrame = rFrames.GetObject(nPos); if ( ( !pDoc || pDoc == pFrame->GetObjectShell() ) && ( !aType || pFrame->IsA(aType) ) && - ( !bOnlyIfVisible || pFrame->IsVisible_Impl()) ) + ( !bOnlyIfVisible || pFrame->IsVisible()) ) return pFrame; } return 0; @@ -1856,7 +1856,7 @@ void SfxViewFrame::CloseHiddenFrames_Impl() for ( sal_uInt16 nPos=0; nPosIsVisible_Impl() ) + if ( !pFrame->IsVisible() ) pFrame->DoClose(); else nPos++; @@ -2128,7 +2128,7 @@ void SfxViewFrame::Show() } //-------------------------------------------------------------------- -sal_Bool SfxViewFrame::IsVisible_Impl() const +sal_Bool SfxViewFrame::IsVisible() const { //Window *pWin = pImp->bInCtor ? 0 : &GetWindow(); //return GetFrame()->HasComponent() || pImp->bObjLocked || ( pWin && pWin->IsVisible() ); @@ -2158,7 +2158,7 @@ void SfxViewFrame::MakeActive_Impl( BOOL bGrabFocus ) { if ( GetViewShell() && !GetFrame()->IsClosing_Impl() ) { - if ( IsVisible_Impl() ) + if ( IsVisible() ) { if ( GetViewShell() ) { diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index a335087dc1bc..e92a5e7638be 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -1495,7 +1495,7 @@ SfxViewShell* SfxViewShell::GetFirst if ( pFrame == pShell->GetViewFrame() ) { // only ViewShells with a valid ViewFrame will be returned - if ( ( !bOnlyVisible || pFrame->IsVisible_Impl() ) && ( !pType || pShell->IsA(*pType) ) ) + if ( ( !bOnlyVisible || pFrame->IsVisible() ) && ( !pType || pShell->IsA(*pType) ) ) return pShell; break; } @@ -1537,7 +1537,7 @@ SfxViewShell* SfxViewShell::GetNext if ( pFrame == pShell->GetViewFrame() ) { // only ViewShells with a valid ViewFrame will be returned - if ( ( !bOnlyVisible || pFrame->IsVisible_Impl() ) && ( !pType || pShell->IsA(*pType) ) ) + if ( ( !bOnlyVisible || pFrame->IsVisible() ) && ( !pType || pShell->IsA(*pType) ) ) return pShell; break; } -- cgit v1.2.3 From 222744aceb42238d31eda4181e898343cbc504d3 Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Mon, 7 Sep 2009 09:47:14 +0000 Subject: #i101242# start grammar checking only for docs with visible views --- sfx2/inc/sfx2/viewfrm.hxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sfx2') diff --git a/sfx2/inc/sfx2/viewfrm.hxx b/sfx2/inc/sfx2/viewfrm.hxx index 08ea57d12e3a..00c5c69240e8 100644 --- a/sfx2/inc/sfx2/viewfrm.hxx +++ b/sfx2/inc/sfx2/viewfrm.hxx @@ -212,7 +212,7 @@ public: const Point &rPos, const Size &rSize ); void Hide(); void Show(); - BOOL IsVisible_Impl() const; + BOOL IsVisible() const; void ToTop(); void Enable( BOOL bEnable ); virtual BOOL Close(); -- cgit v1.2.3 From e1afb76c254266da853d88c1bd3b2ccf5cd8cb18 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Tue, 8 Sep 2009 16:54:21 +0000 Subject: catch wrong page number in sfx --- sfx2/source/view/viewprn.cxx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 87b6956ba672..788d2e6a8441 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -261,7 +261,15 @@ void SfxPrinterController::printPage( int i_nPage ) const if( mxRenderable.is() && pPrinter ) { Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); - mxRenderable->render( i_nPage, getSelectionObject(), aJobOptions ); + try + { + mxRenderable->render( i_nPage, getSelectionObject(), aJobOptions ); + } + catch( lang::IllegalArgumentException& ) + { + // don't care enough about nonexistant page here + // to provoke a crash + } } } -- cgit v1.2.3 From eca1b69c7f9f5d4a4966a19afdaa2c353e289ba0 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Sat, 10 Oct 2009 10:56:15 +0200 Subject: SfxPrintAsync_Impl moved out in printerpullpages --- sfx2/source/view/viewimp.hxx | 4 +++- sfx2/source/view/viewsh.cxx | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewimp.hxx b/sfx2/source/view/viewimp.hxx index f75d68fe1413..e36e199a32bb 100644 --- a/sfx2/source/view/viewimp.hxx +++ b/sfx2/source/view/viewimp.hxx @@ -56,6 +56,7 @@ typedef SfxShell* SfxShellPtr_Impl; SV_DECL_PTRARR( SfxShellArr_Impl, SfxShellPtr_Impl, 4, 4 ) // struct SfxViewShell_Impl ---------------------------------------------- +#if 0 class SfxAsyncPrintExec_Impl : public SfxListener { SfxViewShell* pView; @@ -70,6 +71,7 @@ public: void AddRequest( SfxRequest& rReq ); }; +#endif struct SfxViewShell_Impl { @@ -94,7 +96,7 @@ struct SfxViewShell_Impl USHORT nFamily; SfxBaseController* pController; ::svt::AcceleratorExecute* pAccExec; - SfxAsyncPrintExec_Impl* pPrinterCommandQueue; +// SfxAsyncPrintExec_Impl* pPrinterCommandQueue; com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue > aPrintOpts; SfxViewShell_Impl() diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index bfc6425111f5..4a9b9552d5c2 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -1254,7 +1254,7 @@ SfxViewShell::SfxViewShell { DBG_CTOR(SfxViewShell, 0); - pImp->pPrinterCommandQueue = new SfxAsyncPrintExec_Impl( this ); + //pImp->pPrinterCommandQueue = new SfxAsyncPrintExec_Impl( this ); pImp->pController = 0; pImp->bIsShowView = !(SFX_VIEW_NO_SHOW == (nFlags & SFX_VIEW_NO_SHOW)); @@ -1309,7 +1309,7 @@ SfxViewShell::~SfxViewShell() pImp->pAccExec = 0; } - delete pImp->pPrinterCommandQueue; + //delete pImp->pPrinterCommandQueue; delete pImp; delete pIPClientList; } -- cgit v1.2.3 From d3b32698ee3ef11e11fe4d6fa0b56cf97c953347 Mon Sep 17 00:00:00 2001 From: Philipp Lohmann Date: Fri, 16 Oct 2009 15:26:42 +0200 Subject: #i105860# allow choice between selection and whole document when printing directly --- sfx2/source/view/viewprn.cxx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 122d4be78074..53622527e3bc 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -685,6 +685,11 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) if ( bDetectHidden && pDoc->QueryHiddenInformation( WhenPrinting, NULL ) != RET_YES ) break; + SFX_REQUEST_ARG(rReq, pSelectItem, SfxBoolItem, SID_SELECTION, FALSE); + sal_Bool bSelection = pSelectItem && pSelectItem->GetValue(); + if( pSelectItem && rReq.GetArgs()->Count() == 1 ) + bIsAPI = FALSE; + uno::Sequence < beans::PropertyValue > aProps; if ( bIsAPI ) { @@ -722,7 +727,11 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) } } } - + sal_Int32 nLen = aProps.getLength(); + aProps.realloc( nLen + 1 ); + aProps[nLen].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintSelectionOnly" ) ); + aProps[nLen].Value = makeAny( bSelection ); + ExecPrint( aProps, bIsAPI, (nId == SID_PRINTDOCDIRECT) ); // FIXME: Recording -- cgit v1.2.3 From 1c08891280e713a5ed4f229de0bbe67b36c900f0 Mon Sep 17 00:00:00 2001 From: tl93732 Date: Tue, 20 Oct 2009 13:05:12 +0200 Subject: #i105730# selection printing --- sfx2/source/view/viewprn.cxx | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 53622527e3bc..e0f2df77dc39 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -95,7 +95,8 @@ public: const Any& i_rViewProp, const Reference< view::XRenderable >& i_xRender, sal_Bool i_bApi, sal_Bool i_bDirect, - SfxViewShell* pView + SfxViewShell* pView, + const uno::Sequence< beans::PropertyValue >& rProps ); virtual ~SfxPrinterController(); @@ -113,7 +114,8 @@ SfxPrinterController::SfxPrinterController( const Any& i_rComplete, const Any& i_rViewProp, const Reference< view::XRenderable >& i_xRender, sal_Bool i_bApi, sal_Bool i_bDirect, - SfxViewShell* pView + SfxViewShell* pView, + const uno::Sequence< beans::PropertyValue >& rProps ) : maCompleteSelection( i_rComplete ) , maSelection( i_rSelection ) @@ -157,6 +159,9 @@ SfxPrinterController::SfxPrinterController( const Any& i_rComplete, // initialize extra ui options if( mxRenderable.is() ) { + for (sal_Int32 nProp=0; nProp aRenderOptions( 3 ); aRenderOptions[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ExtraPrintUIOptions" ) ); aRenderOptions[1].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "View" ) ); @@ -205,10 +210,14 @@ SfxPrinterController::~SfxPrinterController() const Any& SfxPrinterController::getSelectionObject() const { sal_Int32 nChoice = 0; + sal_Bool bSel = sal_False; const beans::PropertyValue* pVal = getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintContent" ) ) ); if( pVal ) pVal->Value >>= nChoice; - return nChoice > 1 ? maSelection : maCompleteSelection; + pVal = getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintSelectionOnly" ) ) ); + if( pVal ) + pVal->Value >>= bSel; + return (nChoice > 1 || bSel) ? maSelection : maCompleteSelection; } Sequence< beans::PropertyValue > SfxPrinterController::getMergedOptions() const @@ -630,11 +639,9 @@ void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rPro GetRenderable(), bIsAPI, bIsDirect, - this + this, + rProps ) ); - for (sal_Int32 nProp=0; nPropsetValue( rProps[nProp].Name, rProps[nProp].Value ); - SfxObjectShell *pObjShell = GetObjectShell(); pController->setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "JobName" ) ), makeAny( rtl::OUString( pObjShell->GetTitle(0) ) ) ); -- cgit v1.2.3 From 8da0b34d6ee5201d3601e16673f78e9ad3638d31 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Mon, 2 Nov 2009 19:08:00 +0100 Subject: #i105745#: tools/stream.hxx: API change: make SvMemoryStream::GetSize() private introduce new public SvMemoryStream::GetEndOfData() --- sfx2/source/dialog/filedlghelper.cxx | 4 +++- svx/source/unodraw/unoshap2.cxx | 4 +++- svx/source/unodraw/unoshap4.cxx | 4 +++- svx/source/unodraw/unoshape.cxx | 8 ++++++-- 4 files changed, 15 insertions(+), 5 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx index 5a0d2f4a69a0..3c5348f53a9c 100644 --- a/sfx2/source/dialog/filedlghelper.cxx +++ b/sfx2/source/dialog/filedlghelper.cxx @@ -801,7 +801,9 @@ IMPL_LINK( FileDialogHelper_Impl, TimeOutHdl_Impl, Timer*, EMPTYARG ) aData << aBmp; - Sequence < sal_Int8 > aBuffer( (sal_Int8*) aData.GetData(), aData.GetSize() ); + const Sequence < sal_Int8 > aBuffer( + static_cast< const sal_Int8* >(aData.GetData()), + aData.GetEndOfData() ); aAny <<= aBuffer; } diff --git a/svx/source/unodraw/unoshap2.cxx b/svx/source/unodraw/unoshap2.cxx index d6d0913c4070..b15d49ecff57 100644 --- a/svx/source/unodraw/unoshap2.cxx +++ b/svx/source/unodraw/unoshap2.cxx @@ -1820,7 +1820,9 @@ bool SvxGraphicObject::getPropertyValueImpl( const ::rtl::OUString& rName, const SvMemoryStream aDestStrm( 65535, 65535 ); ConvertGDIMetaFileToWMF( rGraphic.GetGDIMetaFile(), aDestStrm, NULL, sal_False ); - uno::Sequence aSeq((sal_Int8*)aDestStrm.GetData(), aDestStrm.GetSize()); + const uno::Sequence aSeq( + static_cast< const sal_Int8* >(aDestStrm.GetData()), + aDestStrm.GetEndOfData()); rValue <<= aSeq; } break; diff --git a/svx/source/unodraw/unoshap4.cxx b/svx/source/unodraw/unoshap4.cxx index 674cb8fdb24d..7130a2d2f960 100644 --- a/svx/source/unodraw/unoshap4.cxx +++ b/svx/source/unodraw/unoshap4.cxx @@ -315,7 +315,9 @@ bool SvxOle2Shape::getPropertyValueImpl( const ::rtl::OUString& rName, const Sfx } SvMemoryStream aDestStrm( 65535, 65535 ); ConvertGDIMetaFileToWMF( aMtf, aDestStrm, NULL, sal_False ); - uno::Sequence aSeq((sal_Int8*)aDestStrm.GetData(), aDestStrm.GetSize()); + const uno::Sequence aSeq( + static_cast< const sal_Int8* >(aDestStrm.GetData()), + aDestStrm.GetEndOfData()); rValue <<= aSeq; } } diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx index 3f7f58a1e9ad..c2ebf4642fe8 100644 --- a/svx/source/unodraw/unoshape.cxx +++ b/svx/source/unodraw/unoshape.cxx @@ -680,7 +680,9 @@ uno::Any SvxShape::GetBitmap( sal_Bool bMetaFile /* = sal_False */ ) const throw { SvMemoryStream aDestStrm( 65535, 65535 ); ConvertGDIMetaFileToWMF( aMtf, aDestStrm, NULL, sal_False ); - uno::Sequence aSeq((sal_Int8*)aDestStrm.GetData(), aDestStrm.GetSize()); + const uno::Sequence aSeq( + static_cast< const sal_Int8* >(aDestStrm.GetData()), + aDestStrm.GetEndOfData()); aAny.setValue( &aSeq, ::getCppuType((const uno::Sequence< sal_Int8 >*)0) ); } else @@ -3127,7 +3129,9 @@ bool SvxShape::getPropertyValueImpl( const ::rtl::OUString&, const SfxItemProper } SvMemoryStream aDestStrm( 65535, 65535 ); ConvertGDIMetaFileToWMF( aMtf, aDestStrm, NULL, sal_False ); - uno::Sequence aSeq((sal_Int8*)aDestStrm.GetData(), aDestStrm.GetSize()); + const uno::Sequence aSeq( + static_cast< const sal_Int8* >(aDestStrm.GetData()), + aDestStrm.GetEndOfData()); rValue <<= aSeq; } } -- cgit v1.2.3 From d876968f50e998a2631e4fc46f7d007e89a33dab Mon Sep 17 00:00:00 2001 From: "Philipp Lohmann [pl]" Date: Mon, 16 Nov 2009 10:30:21 +0100 Subject: fix typo --- sfx2/source/view/viewsh.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index 83fd8d2bbefe..d1509c9a8d7f 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -1324,7 +1324,7 @@ SfxViewShell::~SfxViewShell() //DELETEZ( pImp->pPrinterCommandQueue ); DELETEZ( pImp ); - DELETZ( pIPClientList ); + DELETEZ( pIPClientList ); } //-------------------------------------------------------------------- -- cgit v1.2.3 From 6ee2de4b7877c3b1bb4cb4ecb6e2ef2dd353c68b Mon Sep 17 00:00:00 2001 From: "Philipp Lohmann [pl]" Date: Thu, 19 Nov 2009 19:31:39 +0100 Subject: printerpullpages: #i106879# use document printer as default --- sfx2/source/view/viewprn.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index e0f2df77dc39..c5ca117a3854 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -647,7 +647,8 @@ void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rPro makeAny( rtl::OUString( pObjShell->GetTitle(0) ) ) ); // FIXME: job setup - JobSetup aJobSetup = GetJobSetup(); + SfxPrinter* pDocPrt = GetPrinter(FALSE); + JobSetup aJobSetup = pDocPrt ? pDocPrt->GetJobSetup() : GetJobSetup(); if( bIsDirect ) aJobSetup.SetValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsQuickJob" ) ), String( RTL_CONSTASCII_USTRINGPARAM( "true" ) ) ); -- cgit v1.2.3 From 5d02e362626ba0b181a9e08bac1241ef5c2ec8a9 Mon Sep 17 00:00:00 2001 From: Kai Sommerfeld Date: Mon, 7 Dec 2009 10:31:48 +0100 Subject: i107484 - Fixed interaction continuations for FutureDocumentVersionProductUpdateRequest --- sfx2/source/doc/objstor.cxx | 50 +- uui/source/iahndl.cxx | 2183 +++++++++++++++++++++---------------------- uui/source/iahndl.hxx | 327 +++---- 3 files changed, 1246 insertions(+), 1314 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx index 21515b2c6f3d..19873a5d7c7f 100644 --- a/sfx2/source/doc/objstor.cxx +++ b/sfx2/source/doc/objstor.cxx @@ -870,7 +870,7 @@ sal_Bool SfxObjectShell::DoLoad( SfxMedium *pMed ) ::rtl::Reference< ::comphelper::OInteractionRequest > pRequest = new ::comphelper::OInteractionRequest( makeAny( aUpdateRequest ) ); pRequest->addContinuation( new ::comphelper::OInteractionApprove ); - pRequest->addContinuation( new ::comphelper::OInteractionDisapprove ); + pRequest->addContinuation( new ::comphelper::OInteractionAbort ); typedef ::comphelper::OInteraction< XInteractionAskLater > OInteractionAskLater; OInteractionAskLater* pLater = new OInteractionAskLater; @@ -953,27 +953,27 @@ sal_uInt32 SfxObjectShell::HandleFilter( SfxMedium* pMedium, SfxObjectShell* pDo if ( !pFORequest->isAbort() ) { - SfxAllItemSet aNewParams( pDoc->GetPool() ); - TransformParameters( SID_OPENDOC, - pFORequest->getFilterOptions(), - aNewParams, - NULL ); - - SFX_ITEMSET_ARG( &aNewParams, - pFilterOptions, - SfxStringItem, - SID_FILE_FILTEROPTIONS, - sal_False ); - if ( pFilterOptions ) - pSet->Put( *pFilterOptions ); - - SFX_ITEMSET_ARG( &aNewParams, - pFilterData, - SfxUnoAnyItem, - SID_FILTER_DATA, - sal_False ); - if ( pFilterData ) - pSet->Put( *pFilterData ); + SfxAllItemSet aNewParams( pDoc->GetPool() ); + TransformParameters( SID_OPENDOC, + pFORequest->getFilterOptions(), + aNewParams, + NULL ); + + SFX_ITEMSET_ARG( &aNewParams, + pFilterOptions, + SfxStringItem, + SID_FILE_FILTEROPTIONS, + sal_False ); + if ( pFilterOptions ) + pSet->Put( *pFilterOptions ); + + SFX_ITEMSET_ARG( &aNewParams, + pFilterData, + SfxUnoAnyItem, + SID_FILTER_DATA, + sal_False ); + if ( pFilterData ) + pSet->Put( *pFilterData ); } else bAbort = TRUE; @@ -1797,8 +1797,8 @@ sal_Bool SfxObjectShell::SaveTo_Impl #define CHAR_POINTER(THE_OUSTRING) ::rtl::OUStringToOString (THE_OUSTRING, RTL_TEXTENCODING_UTF8).pData->buffer // Header for a single-valued ASCII EA data item typedef struct _EA_ASCII_header { - USHORT usAttr; /* value: EAT_ASCII */ - USHORT usLen; /* length of data */ + USHORT usAttr; /* value: EAT_ASCII */ + USHORT usLen; /* length of data */ CHAR szType[_MAX_PATH]; /* ASCII data fits in here ... */ } EA_ASCII_HEADER; char filePath[_MAX_PATH]; @@ -3424,7 +3424,7 @@ sal_Bool SfxObjectShell::SaveCompleted( const uno::Reference< embed::XStorage >& sal_Bool StoragesOfUnknownMediaTypeAreCopied_Impl( const uno::Reference< embed::XStorage >& xSource, - const uno::Reference< embed::XStorage >& xTarget ) + const uno::Reference< embed::XStorage >& xTarget ) { OSL_ENSURE( xSource.is() && xTarget.is(), "Source and/or target storages are not available!\n" ); if ( !xSource.is() || !xTarget.is() || xSource == xTarget ) diff --git a/uui/source/iahndl.cxx b/uui/source/iahndl.cxx index e64ac960d08e..d6f414569a20 100644 --- a/uui/source/iahndl.cxx +++ b/uui/source/iahndl.cxx @@ -40,7 +40,7 @@ #include "com/sun/star/beans/XPropertyAccess.hpp" #include "com/sun/star/configuration/backend/MergeRecoveryRequest.hpp" #include "com/sun/star/configuration/backend/StratumCreationException.hpp" -#include +#include "com/sun/star/container/XHierarchicalNameAccess.hpp" #include "com/sun/star/container/XContainerQuery.hpp" #include "com/sun/star/container/XNameAccess.hpp" #include "com/sun/star/container/XNameContainer.hpp" @@ -103,12 +103,11 @@ #include "com/sun/star/ucb/XInteractionSupplyAuthentication.hpp" #include "com/sun/star/ucb/XInteractionSupplyAuthentication2.hpp" #include "com/sun/star/ucb/XInteractionSupplyName.hpp" -#include +#include "com/sun/star/ui/dialogs/XExecutableDialog.hpp" #include "com/sun/star/uno/RuntimeException.hpp" #include "com/sun/star/xforms/InvalidDataOnSubmitException.hpp" -#include -#include - +#include "com/sun/star/security/CertificateValidity.hpp" +#include "com/sun/star/lang/XInitialization.hpp" #include "vos/mutex.hxx" #include "tools/rcid.h" @@ -116,6 +115,7 @@ #include "svtools/svtools.hrc" #include "svtools/httpcook.hxx" #include "svtools/sfxecode.hxx" +#include "svtools/zforlist.hxx" #include "toolkit/helper/vclunohelper.hxx" #include "comphelper/sequenceashashmap.hxx" #include "comphelper/documentconstants.hxx" @@ -140,23 +140,7 @@ #include "loginerr.hxx" #include "passwordcontainer.hxx" -#include -#include -using namespace com::sun; - -namespace csss = ::com::sun::star::security; - -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::uno::UNO_QUERY; -using ::com::sun::star::uno::Reference; -using ::com::sun::star::task::XInteractionContinuation; -using ::com::sun::star::task::XInteractionAbort; -using ::com::sun::star::task::XInteractionApprove; -using ::com::sun::star::task::XInteractionAskLater; -using ::com::sun::star::task::FutureDocumentVersionProductUpdateRequest; - - -#define CONFIG_INTERACTIONHANDLERS_KEY "/org.openoffice.ucb.InteractionHandler/InteractionHandlers" +using namespace com::sun::star; namespace { @@ -187,7 +171,8 @@ bool ErrorResource::getString(ErrCode nErrorCode, rtl::OUString * pString) const SAL_THROW(()) { OSL_ENSURE(pString, "specification violation"); - ResId aResId(static_cast< USHORT >(nErrorCode & ERRCODE_RES_MASK), *m_pResMgr); + ResId aResId(static_cast< USHORT >(nErrorCode & ERRCODE_RES_MASK), + *m_pResMgr); aResId.SetRT(RSC_STRING); if (!IsAvailableRes(aResId)) return false; @@ -197,104 +182,79 @@ bool ErrorResource::getString(ErrCode nErrorCode, rtl::OUString * pString) return true; } -void -getContinuations( - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & rContinuations, - star::uno::Reference< star::task::XInteractionApprove > * pApprove, - star::uno::Reference< star::task::XInteractionDisapprove > * pDisapprove, - star::uno::Reference< star::task::XInteractionRetry > * pRetry, - star::uno::Reference< star::task::XInteractionAbort > * pAbort, - star::uno::Reference< star::ucb::XInteractionSupplyAuthentication > * - pSupplyAuthentication, - star::uno::Reference< star::ucb::XInteractionSupplyAuthentication2 > * - pSupplyAuthentication2, - star::uno::Reference< star::task::XInteractionPassword > * pPassword, - star::uno::Reference< star::ucb::XInteractionSupplyName > * - pSupplyName, - star::uno::Reference< star::ucb::XInteractionReplaceExistingData > * - pReplaceExistingData) - SAL_THROW((star::uno::RuntimeException)) +template< class t1 > +bool setContinuation( + uno::Reference< task::XInteractionContinuation > const & rContinuation, + uno::Reference< t1 > * pContinuation) +{ + if (pContinuation && !pContinuation->is()) + { + pContinuation->set(rContinuation, uno::UNO_QUERY); + if (pContinuation->is()) + return true; + } + return false; +} + +template< class t1, class t2 > +void getContinuations( + uno::Sequence< uno::Reference< + task::XInteractionContinuation > > const & rContinuations, + uno::Reference< t1 > * pContinuation1, + uno::Reference< t2 > * pContinuation2) { for (sal_Int32 i = 0; i < rContinuations.getLength(); ++i) { - if (pApprove && !pApprove->is()) - { - *pApprove - = star::uno::Reference< star::task::XInteractionApprove >( - rContinuations[i], star::uno::UNO_QUERY); - if (pApprove->is()) - continue; - } - if (pDisapprove && !pDisapprove->is()) - { - *pDisapprove - = star::uno::Reference< star::task::XInteractionDisapprove >( - rContinuations[i], star::uno::UNO_QUERY); - if (pDisapprove->is()) - continue; - } - if (pRetry && !pRetry->is()) - { - *pRetry = star::uno::Reference< star::task::XInteractionRetry >( - rContinuations[i], star::uno::UNO_QUERY); - if (pRetry->is()) - continue; - } - if (pAbort && !pAbort->is()) - { - *pAbort = star::uno::Reference< star::task::XInteractionAbort >( - rContinuations[i], star::uno::UNO_QUERY); - if (pAbort->is()) - continue; - } - if (pSupplyAuthentication && !pSupplyAuthentication->is()) - { - *pSupplyAuthentication - = star::uno::Reference< - star::ucb::XInteractionSupplyAuthentication >( - rContinuations[i], star::uno::UNO_QUERY); - if (pSupplyAuthentication->is()) - { - // is it even a supplyauthentication2, which is derived from - // supplyauthentication? - if (pSupplyAuthentication2 && !pSupplyAuthentication2->is()) - *pSupplyAuthentication2 - = star::uno::Reference< - star::ucb::XInteractionSupplyAuthentication2 >( - rContinuations[i], star::uno::UNO_QUERY); - continue; - } - } - if (pPassword && !pPassword->is()) - { - *pPassword - = star::uno::Reference< star::task::XInteractionPassword >( - rContinuations[i], star::uno::UNO_QUERY); - if (pPassword->is()) - continue; - } - if (pSupplyName && !pSupplyName->is()) - { - *pSupplyName - = star::uno::Reference< star::ucb::XInteractionSupplyName >( - rContinuations[i], star::uno::UNO_QUERY); - if (pSupplyName->is()) - continue; - } - if (pReplaceExistingData && !pReplaceExistingData->is()) - { - *pReplaceExistingData - = star::uno::Reference< - star::ucb::XInteractionReplaceExistingData >( - rContinuations[i], star::uno::UNO_QUERY); - if (pReplaceExistingData->is()) - continue; - } + if (setContinuation(rContinuations[i], pContinuation1)) + continue; + if (setContinuation(rContinuations[i], pContinuation2)) + continue; + } +} + +template< class t1, class t2, class t3 > +void getContinuations( + uno::Sequence< uno::Reference< + task::XInteractionContinuation > > const & rContinuations, + uno::Reference< t1 > * pContinuation1, + uno::Reference< t2 > * pContinuation2, + uno::Reference< t3 > * pContinuation3) +{ + for (sal_Int32 i = 0; i < rContinuations.getLength(); ++i) + { + if (setContinuation(rContinuations[i], pContinuation1)) + continue; + if (setContinuation(rContinuations[i], pContinuation2)) + continue; + if (setContinuation(rContinuations[i], pContinuation3)) + continue; + } +} + +template< class t1, class t2, class t3, class t4 > +void getContinuations( + uno::Sequence< uno::Reference< + task::XInteractionContinuation > > const & rContinuations, + uno::Reference< t1 > * pContinuation1, + uno::Reference< t2 > * pContinuation2, + uno::Reference< t3 > * pContinuation3, + uno::Reference< t4 > * pContinuation4) +{ + for (sal_Int32 i = 0; i < rContinuations.getLength(); ++i) + { + if (setContinuation(rContinuations[i], pContinuation1)) + continue; + if (setContinuation(rContinuations[i], pContinuation2)) + continue; + if (setContinuation(rContinuations[i], pContinuation3)) + continue; + if (setContinuation(rContinuations[i], pContinuation4)) + continue; } } -::rtl::OUString replaceMessageWithArguments( +::rtl::OUString +replaceMessageWithArguments( ::rtl::OUString aMessage, std::vector< rtl::OUString > const & rArguments ) { @@ -331,17 +291,15 @@ getContinuations( return aMessage; } - bool -getStringRequestArgument(star::uno::Sequence< star::uno::Any > const & - rArguments, +getStringRequestArgument(uno::Sequence< uno::Any > const & rArguments, rtl::OUString const & rKey, rtl::OUString * pValue) SAL_THROW(()) { for (sal_Int32 i = 0; i < rArguments.getLength(); ++i) { - star::beans::PropertyValue aProperty; + beans::PropertyValue aProperty; if ((rArguments[i] >>= aProperty) && aProperty.Name == rKey) { rtl::OUString aValue; @@ -357,15 +315,14 @@ getStringRequestArgument(star::uno::Sequence< star::uno::Any > const & } bool -getBoolRequestArgument(star::uno::Sequence< star::uno::Any > const & - rArguments, +getBoolRequestArgument(uno::Sequence< uno::Any > const & rArguments, rtl::OUString const & rKey, bool * pValue) SAL_THROW(()) { for (sal_Int32 i = 0; i < rArguments.getLength(); ++i) { - star::beans::PropertyValue aProperty; + beans::PropertyValue aProperty; if ((rArguments[i] >>= aProperty) && aProperty.Name == rKey) { sal_Bool bValue = sal_Bool(); @@ -381,8 +338,7 @@ getBoolRequestArgument(star::uno::Sequence< star::uno::Any > const & } bool -getResourceNameRequestArgument(star::uno::Sequence< star::uno::Any > const & - rArguments, +getResourceNameRequestArgument(uno::Sequence< uno::Any > const & rArguments, rtl::OUString * pValue) SAL_THROW(()) { @@ -403,9 +359,9 @@ getResourceNameRequestArgument(star::uno::Sequence< star::uno::Any > const & return true; } -bool isInformationalErrorMessageRequest( - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & +bool +isInformationalErrorMessageRequest( + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & rContinuations) { // Only requests with a single continuation (user has no choice, request @@ -415,13 +371,13 @@ bool isInformationalErrorMessageRequest( // user can only abort or approve, all other continuations are not // considered to be informational. - star::uno::Reference< star::task::XInteractionApprove > xApprove( - rContinuations[0], star::uno::UNO_QUERY); + uno::Reference< task::XInteractionApprove > xApprove( + rContinuations[0], uno::UNO_QUERY); if (xApprove.is()) return true; - star::uno::Reference< star::task::XInteractionAbort > xAbort( - rContinuations[0], star::uno::UNO_QUERY); + uno::Reference< task::XInteractionAbort > xAbort( + rContinuations[0], uno::UNO_QUERY); if (xAbort.is()) return true; @@ -431,9 +387,8 @@ bool isInformationalErrorMessageRequest( } /* namespace */ UUIInteractionHelper::UUIInteractionHelper( - star::uno::Reference< star::lang::XMultiServiceFactory > const & - rServiceFactory, - star::uno::Sequence< star::uno::Any > const & rArguments) + uno::Reference< lang::XMultiServiceFactory > const & rServiceFactory, + uno::Sequence< uno::Any > const & rArguments) SAL_THROW(()): m_xServiceFactory(rServiceFactory), m_aProperties(rArguments) @@ -441,8 +396,7 @@ UUIInteractionHelper::UUIInteractionHelper( } UUIInteractionHelper::UUIInteractionHelper( - star::uno::Reference< star::lang::XMultiServiceFactory > const & - rServiceFactory) + uno::Reference< lang::XMultiServiceFactory > const & rServiceFactory) SAL_THROW(()): m_xServiceFactory(rServiceFactory) { @@ -455,33 +409,34 @@ UUIInteractionHelper::~UUIInteractionHelper() class HandleData : public osl::Condition { public: HandleData( - star::uno::Reference< star::task::XInteractionRequest > const & - rRequest) + uno::Reference< task::XInteractionRequest > const & rRequest) : osl::Condition(), m_rRequest(rRequest), bHandled( false ) { } - star::uno::Reference< star::task::XInteractionRequest > m_rRequest; - bool bHandled; - star::beans::Optional< rtl::OUString > m_aResult; + uno::Reference< task::XInteractionRequest > m_rRequest; + bool bHandled; + beans::Optional< rtl::OUString > m_aResult; }; -long UUIInteractionHelper::handlerequest( - void* pHandleData,void* pInteractionHelper) +long +UUIInteractionHelper::handlerequest( + void* pHandleData, void* pInteractionHelper) { - HandleData* pHND = (HandleData*) pHandleData; - UUIInteractionHelper* pUUI = (UUIInteractionHelper*) pInteractionHelper; + HandleData* pHND + = static_cast< HandleData * >(pHandleData); + UUIInteractionHelper* pUUI + = static_cast< UUIInteractionHelper * >(pInteractionHelper); pHND->bHandled = pUUI->handle_impl(pHND->m_rRequest); pHND->set(); return 0; } - bool UUIInteractionHelper::handleRequest( - star::uno::Reference< star::task::XInteractionRequest > const & rRequest) - throw (star::uno::RuntimeException) + uno::Reference< task::XInteractionRequest > const & rRequest) + SAL_THROW((uno::RuntimeException)) { Application* pApp = 0; if( @@ -505,7 +460,8 @@ UUIInteractionHelper::handleRequest( return handle_impl(rRequest); } -long UUIInteractionHelper::getstringfromrequest( +long +UUIInteractionHelper::getstringfromrequest( void* pHandleData,void* pInteractionHelper) { HandleData* pHND = (HandleData*) pHandleData; @@ -515,25 +471,25 @@ long UUIInteractionHelper::getstringfromrequest( return 0; } -star::beans::Optional< rtl::OUString > +beans::Optional< rtl::OUString > UUIInteractionHelper::getStringFromRequest_impl( - star::uno::Reference< star::task::XInteractionRequest > const & rRequest) - throw (star::uno::RuntimeException) + uno::Reference< task::XInteractionRequest > const & rRequest) + SAL_THROW((uno::RuntimeException)) { bool bSuccess = false; rtl::OUString aMessage; handleMessageboxRequests(rRequest, true, bSuccess, aMessage); if (!bSuccess) - handleErrorHandlerRequests(rRequest, true, bSuccess, aMessage); + handleErrorHandlerRequests(rRequest, true, bSuccess, aMessage); - return star::beans::Optional< rtl::OUString >(bSuccess, aMessage); + return beans::Optional< rtl::OUString >(bSuccess, aMessage); } -star::beans::Optional< rtl::OUString > +beans::Optional< rtl::OUString > UUIInteractionHelper::getStringFromRequest( - star::uno::Reference< star::task::XInteractionRequest > const & rRequest) - throw (star::uno::RuntimeException) + uno::Reference< task::XInteractionRequest > const & rRequest) + SAL_THROW((uno::RuntimeException)) { Application* pApp = 0; if( @@ -557,20 +513,21 @@ UUIInteractionHelper::getStringFromRequest( return getStringFromRequest_impl(rRequest); } -bool UUIInteractionHelper::handleMessageboxRequests( - star::uno::Reference< star::task::XInteractionRequest > const & rRequest, +bool +UUIInteractionHelper::handleMessageboxRequests( + uno::Reference< task::XInteractionRequest > const & rRequest, bool bObtainErrorStringOnly, bool & bHasErrorString, rtl::OUString & rErrorString) { - star::uno::Any aAnyRequest(rRequest->getRequest()); + uno::Any aAnyRequest(rRequest->getRequest()); - star::script::ModuleSizeExceededRequest aModSizeException; + script::ModuleSizeExceededRequest aModSizeException; if (aAnyRequest >>= aModSizeException ) { ErrCode nErrorCode = ERRCODE_UUI_IO_MODULESIZEEXCEEDED; std::vector< rtl::OUString > aArguments; - star::uno::Sequence< rtl::OUString > sModules + uno::Sequence< rtl::OUString > sModules = aModSizeException.Names; if ( sModules.getLength() ) { @@ -584,7 +541,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( } aArguments.push_back( aName ); } - handleErrorRequest( star::task::InteractionClassification_WARNING, + handleErrorRequest( task::InteractionClassification_WARNING, nErrorCode, aArguments, rRequest->getContinuations(), @@ -594,7 +551,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::ucb::NameClashException aNCException; + ucb::NameClashException aNCException; if (aAnyRequest >>= aNCException) { ErrCode nErrorCode = ERRCODE_UUI_IO_TARGETALREADYEXISTS; @@ -616,33 +573,30 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::ucb::UnsupportedNameClashException aUORequest; + ucb::UnsupportedNameClashException aUORequest; if (aAnyRequest >>= aUORequest) { ErrCode nErrorCode = ERRCODE_UUI_IO_UNSUPPORTEDOVERWRITE; std::vector< rtl::OUString > aArguments; - star::uno::Reference< star::task::XInteractionApprove > xApprove; - star::uno::Reference< - star::task::XInteractionDisapprove > xDisapprove; - getContinuations( - rRequest->getContinuations(), - &xApprove, &xDisapprove, 0, 0, 0, 0, 0, 0, 0); + uno::Reference< task::XInteractionApprove > xApprove; + uno::Reference< task::XInteractionDisapprove > xDisapprove; + getContinuations(rRequest->getContinuations(), &xApprove, &xDisapprove); - if( xApprove.is() && xDisapprove.is() ) + if ( xApprove.is() && xDisapprove.is() ) { - handleErrorRequest( star::task::InteractionClassification_QUERY, - nErrorCode, - aArguments, - rRequest->getContinuations(), - bObtainErrorStringOnly, - bHasErrorString, - rErrorString); + handleErrorRequest( task::InteractionClassification_QUERY, + nErrorCode, + aArguments, + rRequest->getContinuations(), + bObtainErrorStringOnly, + bHasErrorString, + rErrorString); } return true; } - star::document::BrokenPackageRequest aBrokenPackageRequest; + document::BrokenPackageRequest aBrokenPackageRequest; if (aAnyRequest >>= aBrokenPackageRequest) { std::vector< rtl::OUString > aArguments; @@ -658,18 +612,18 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::ucb::InteractiveIOException aIoException; + ucb::InteractiveIOException aIoException; if (aAnyRequest >>= aIoException) { - star::uno::Sequence< star::uno::Any > aRequestArguments; - star::ucb::InteractiveAugmentedIOException aAugmentedIoException; + uno::Sequence< uno::Any > aRequestArguments; + ucb::InteractiveAugmentedIOException aAugmentedIoException; if (aAnyRequest >>= aAugmentedIoException) aRequestArguments = aAugmentedIoException.Arguments; ErrCode nErrorCode; std::vector< rtl::OUString > aArguments; static ErrCode const - aErrorCode[star::ucb::IOErrorCode_WRONG_VERSION + 1][2] + aErrorCode[ucb::IOErrorCode_WRONG_VERSION + 1][2] = { { ERRCODE_IO_ABORT, ERRCODE_UUI_IO_ABORT }, // ABORT { ERRCODE_IO_ACCESSDENIED, ERRCODE_UUI_IO_ACCESSDENIED }, // ACCESS_DENIED @@ -740,7 +694,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( ERRCODE_UUI_IO_WRONGVERSION } }; // WRONG_VERSION switch (aIoException.Code) { - case star::ucb::IOErrorCode_CANT_CREATE: + case ucb::IOErrorCode_CANT_CREATE: { rtl::OUString aArgFolder; if (getStringRequestArgument( @@ -769,7 +723,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( break; } - case star::ucb::IOErrorCode_DEVICE_NOT_READY: + case ucb::IOErrorCode_DEVICE_NOT_READY: { rtl::OUString aArgUri; if (getResourceNameRequestArgument(aRequestArguments, @@ -803,7 +757,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( break; } - case star::ucb::IOErrorCode_DIFFERENT_DEVICES: + case ucb::IOErrorCode_DIFFERENT_DEVICES: { rtl::OUString aArgVolume; rtl::OUString aArgOtherVolume; @@ -828,7 +782,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( break; } - case star::ucb::IOErrorCode_NOT_EXISTING: + case ucb::IOErrorCode_NOT_EXISTING: { rtl::OUString aArgUri; if (getResourceNameRequestArgument(aRequestArguments, @@ -880,7 +834,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::ucb::InteractiveAppException aAppException; + ucb::InteractiveAppException aAppException; if (aAnyRequest >>= aAppException) { std::vector< rtl::OUString > aArguments; @@ -894,17 +848,16 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::ucb::InteractiveNetworkException aNetworkException; + ucb::InteractiveNetworkException aNetworkException; if (aAnyRequest >>= aNetworkException) { ErrCode nErrorCode; std::vector< rtl::OUString > aArguments; - star::ucb::InteractiveNetworkOffLineException aOffLineException; - star::ucb::InteractiveNetworkResolveNameException - aResolveNameException; - star::ucb::InteractiveNetworkConnectException aConnectException; - star::ucb::InteractiveNetworkReadException aReadException; - star::ucb::InteractiveNetworkWriteException aWriteException; + ucb::InteractiveNetworkOffLineException aOffLineException; + ucb::InteractiveNetworkResolveNameException aResolveNameException; + ucb::InteractiveNetworkConnectException aConnectException; + ucb::InteractiveNetworkReadException aReadException; + ucb::InteractiveNetworkWriteException aWriteException; if (aAnyRequest >>= aOffLineException) nErrorCode = ERRCODE_INET_OFFLINE; else if (aAnyRequest >>= aResolveNameException) @@ -940,7 +893,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::ucb::InteractiveCHAOSException aChaosException; + ucb::InteractiveCHAOSException aChaosException; if (aAnyRequest >>= aChaosException) { std::vector< rtl::OUString > aArguments; @@ -963,7 +916,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::ucb::InteractiveWrongMediumException aWrongMediumException; + ucb::InteractiveWrongMediumException aWrongMediumException; if (aAnyRequest >>= aWrongMediumException) { sal_Int32 nMedium = 0; @@ -980,7 +933,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::java::WrongJavaVersionException aWrongJavaVersionException; + java::WrongJavaVersionException aWrongJavaVersionException; if (aAnyRequest >>= aWrongJavaVersionException) { ErrCode nErrorCode; @@ -1013,7 +966,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( aArguments.push_back(aWrongJavaVersionException. LowestSupportedVersion); } - handleErrorRequest(star::task::InteractionClassification_ERROR, + handleErrorRequest(task::InteractionClassification_ERROR, nErrorCode, aArguments, rRequest->getContinuations(), @@ -1023,7 +976,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::sync2::BadPartnershipException aBadPartnershipException; + sync2::BadPartnershipException aBadPartnershipException; if (aAnyRequest >>= aBadPartnershipException) { ErrCode nErrorCode; @@ -1035,7 +988,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( nErrorCode = ERRCODE_UUI_BADPARTNERSHIP_NAME; aArguments.push_back(aBadPartnershipException.Partnership); } - handleErrorRequest(star::task::InteractionClassification_ERROR, + handleErrorRequest(task::InteractionClassification_ERROR, nErrorCode, aArguments, rRequest->getContinuations(), @@ -1045,7 +998,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::configuration::backend::MergeRecoveryRequest aMergeRecoveryRequest; + configuration::backend::MergeRecoveryRequest aMergeRecoveryRequest; if (aAnyRequest >>= aMergeRecoveryRequest) { ErrCode nErrorCode = aMergeRecoveryRequest.IsRemovalRequest @@ -1055,7 +1008,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( std::vector< rtl::OUString > aArguments; aArguments.push_back(aMergeRecoveryRequest.ErrorLayerId); - handleErrorRequest(star::task::InteractionClassification_ERROR, + handleErrorRequest(task::InteractionClassification_ERROR, nErrorCode, aArguments, rRequest->getContinuations(), @@ -1065,7 +1018,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::configuration::backend::StratumCreationException + configuration::backend::StratumCreationException aStratumCreationException; if (aAnyRequest >>= aStratumCreationException) @@ -1079,7 +1032,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( std::vector< rtl::OUString > aArguments; aArguments.push_back(aStratum); - handleErrorRequest(star::task::InteractionClassification_ERROR, + handleErrorRequest(task::InteractionClassification_ERROR, nErrorCode, aArguments, rRequest->getContinuations(), @@ -1089,14 +1042,14 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::xforms::InvalidDataOnSubmitException aInvalidDataOnSubmitException; + xforms::InvalidDataOnSubmitException aInvalidDataOnSubmitException; if (aAnyRequest >>= aInvalidDataOnSubmitException) { const ErrCode nErrorCode = ERRCODE_UUI_INVALID_XFORMS_SUBMISSION_DATA; std::vector< rtl::OUString > aArguments; - handleErrorRequest(star::task::InteractionClassification_QUERY, + handleErrorRequest(task::InteractionClassification_QUERY, nErrorCode, aArguments, rRequest->getContinuations(), @@ -1106,7 +1059,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::ucb::InteractiveLockingLockedException aLLException; + ucb::InteractiveLockingLockedException aLLException; if (aAnyRequest >>= aLLException) { ErrCode nErrorCode = aLLException.SelfOwned @@ -1124,7 +1077,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::ucb::InteractiveLockingNotLockedException aLNLException; + ucb::InteractiveLockingNotLockedException aLNLException; if (aAnyRequest >>= aLNLException) { ErrCode nErrorCode = ERRCODE_UUI_LOCKING_NOT_LOCKED; @@ -1141,7 +1094,7 @@ bool UUIInteractionHelper::handleMessageboxRequests( return true; } - star::ucb::InteractiveLockingLockExpiredException aLLEException; + ucb::InteractiveLockingLockExpiredException aLLEException; if (aAnyRequest >>= aLLEException) { ErrCode nErrorCode = ERRCODE_UUI_LOCKING_LOCK_EXPIRED; @@ -1161,12 +1114,13 @@ bool UUIInteractionHelper::handleMessageboxRequests( return false; } -bool UUIInteractionHelper::handleDialogRequests( - star::uno::Reference< star::task::XInteractionRequest > const & rRequest) +bool +UUIInteractionHelper::handleDialogRequests( + uno::Reference< task::XInteractionRequest > const & rRequest) { - star::uno::Any aAnyRequest(rRequest->getRequest()); + uno::Any aAnyRequest(rRequest->getRequest()); - star::ucb::URLAuthenticationRequest aURLAuthenticationRequest; + ucb::URLAuthenticationRequest aURLAuthenticationRequest; if (aAnyRequest >>= aURLAuthenticationRequest) { handleAuthenticationRequest(aURLAuthenticationRequest, @@ -1175,7 +1129,7 @@ bool UUIInteractionHelper::handleDialogRequests( return true; } - star::ucb::AuthenticationRequest aAuthenticationRequest; + ucb::AuthenticationRequest aAuthenticationRequest; if (aAnyRequest >>= aAuthenticationRequest) { handleAuthenticationRequest(aAuthenticationRequest, @@ -1184,16 +1138,16 @@ bool UUIInteractionHelper::handleDialogRequests( return true; } - star::ucb::CertificateValidationRequest aCertificateValidationRequest; + ucb::CertificateValidationRequest aCertificateValidationRequest; if (aAnyRequest >>= aCertificateValidationRequest) { handleCertificateValidationRequest(aCertificateValidationRequest, - rRequest->getContinuations()); + rRequest->getContinuations()); return true; } // @@@ Todo #i29340#: activate! -// star::ucb::NameClashResolveRequest aNameClashResolveRequest; +// ucb::NameClashResolveRequest aNameClashResolveRequest; // if (aAnyRequest >>= aNameClashResolveRequest) // { // handleNameClashResolveRequest(aNameClashResolveRequest, @@ -1201,7 +1155,7 @@ bool UUIInteractionHelper::handleDialogRequests( // return; // } - star::task::MasterPasswordRequest aMasterPasswordRequest; + task::MasterPasswordRequest aMasterPasswordRequest; if (aAnyRequest >>= aMasterPasswordRequest) { handleMasterPasswordRequest(aMasterPasswordRequest.Mode, @@ -1209,7 +1163,7 @@ bool UUIInteractionHelper::handleDialogRequests( return true; } - star::task::DocumentPasswordRequest aDocumentPasswordRequest; + task::DocumentPasswordRequest aDocumentPasswordRequest; if (aAnyRequest >>= aDocumentPasswordRequest) { handlePasswordRequest(aDocumentPasswordRequest.Mode, @@ -1218,16 +1172,16 @@ bool UUIInteractionHelper::handleDialogRequests( return true; } - star::task::DocumentMSPasswordRequest aDocumentMSPasswordRequest; + task::DocumentMSPasswordRequest aDocumentMSPasswordRequest; if (aAnyRequest >>= aDocumentMSPasswordRequest) { handleMSPasswordRequest(aDocumentMSPasswordRequest.Mode, - rRequest->getContinuations(), - aDocumentMSPasswordRequest.Name); + rRequest->getContinuations(), + aDocumentMSPasswordRequest.Name); return true; } - star::task::PasswordRequest aPasswordRequest; + task::PasswordRequest aPasswordRequest; if (aAnyRequest >>= aPasswordRequest) { handlePasswordRequest(aPasswordRequest.Mode, @@ -1235,7 +1189,7 @@ bool UUIInteractionHelper::handleDialogRequests( return true; } - star::ucb::HandleCookiesRequest aCookiesRequest; + ucb::HandleCookiesRequest aCookiesRequest; if (aAnyRequest >>= aCookiesRequest) { handleCookiesRequest(aCookiesRequest, @@ -1243,7 +1197,7 @@ bool UUIInteractionHelper::handleDialogRequests( return true; } - star::document::NoSuchFilterRequest aNoSuchFilterRequest; + document::NoSuchFilterRequest aNoSuchFilterRequest; if (aAnyRequest >>= aNoSuchFilterRequest) { handleNoSuchFilterRequest(aNoSuchFilterRequest, @@ -1251,7 +1205,7 @@ bool UUIInteractionHelper::handleDialogRequests( return true; } - star::document::AmbigousFilterRequest aAmbigousFilterRequest; + document::AmbigousFilterRequest aAmbigousFilterRequest; if (aAnyRequest >>= aAmbigousFilterRequest) { handleAmbigousFilterRequest(aAmbigousFilterRequest, @@ -1259,7 +1213,7 @@ bool UUIInteractionHelper::handleDialogRequests( return true; } - star::document::FilterOptionsRequest aFilterOptionsRequest; + document::FilterOptionsRequest aFilterOptionsRequest; if (aAnyRequest >>= aFilterOptionsRequest) { handleFilterOptionsRequest(aFilterOptionsRequest, @@ -1267,7 +1221,7 @@ bool UUIInteractionHelper::handleDialogRequests( return true; } - star::document::LockedDocumentRequest aLockedDocumentRequest; + document::LockedDocumentRequest aLockedDocumentRequest; if (aAnyRequest >>= aLockedDocumentRequest ) { handleLockedDocumentRequest( aLockedDocumentRequest.DocumentURL, @@ -1277,17 +1231,19 @@ bool UUIInteractionHelper::handleDialogRequests( return true; } - star::document::OwnLockOnDocumentRequest aOwnLockOnDocumentRequest; + document::OwnLockOnDocumentRequest aOwnLockOnDocumentRequest; if (aAnyRequest >>= aOwnLockOnDocumentRequest ) { handleLockedDocumentRequest( aOwnLockOnDocumentRequest.DocumentURL, aOwnLockOnDocumentRequest.TimeInfo, rRequest->getContinuations(), - aOwnLockOnDocumentRequest.IsStoring ? UUI_DOC_OWN_SAVE_LOCK : UUI_DOC_OWN_LOAD_LOCK ); + aOwnLockOnDocumentRequest.IsStoring + ? UUI_DOC_OWN_SAVE_LOCK + : UUI_DOC_OWN_LOAD_LOCK ); return true; } - star::document::LockedOnSavingRequest aLockedOnSavingRequest; + document::LockedOnSavingRequest aLockedOnSavingRequest; if (aAnyRequest >>= aLockedOnSavingRequest ) { handleLockedDocumentRequest( aLockedOnSavingRequest.DocumentURL, @@ -1297,43 +1253,21 @@ bool UUIInteractionHelper::handleDialogRequests( return true; } - star::document::ChangedByOthersRequest aChangedByOthersRequest; + document::ChangedByOthersRequest aChangedByOthersRequest; if (aAnyRequest >>= aChangedByOthersRequest ) { handleChangedByOthersRequest( rRequest->getContinuations() ); return true; } - star::document::LockFileIgnoreRequest aLockFileIgnoreRequest; + document::LockFileIgnoreRequest aLockFileIgnoreRequest; if (aAnyRequest >>= aLockFileIgnoreRequest ) { handleLockFileIgnoreRequest( rRequest->getContinuations() ); return true; } - return false; -} - -bool UUIInteractionHelper::handleErrorHandlerRequests( - star::uno::Reference< star::task::XInteractionRequest > const & rRequest, - bool bObtainErrorStringOnly, - bool & bHasErrorString, - rtl::OUString & rErrorString) -{ - star::uno::Any aAnyRequest(rRequest->getRequest()); - - star::task::ErrorCodeRequest aErrorCodeRequest; - if (aAnyRequest >>= aErrorCodeRequest) - { - handleGenericErrorRequest( aErrorCodeRequest.ErrCode, - rRequest->getContinuations(), - bObtainErrorStringOnly, - bHasErrorString, - rErrorString); - return true; - } - - star::task::DocumentMacroConfirmationRequest aMacroConfirmRequest; + task::DocumentMacroConfirmationRequest aMacroConfirmRequest; if (aAnyRequest >>= aMacroConfirmRequest) { handleMacroConfirmRequest( @@ -1346,7 +1280,7 @@ bool UUIInteractionHelper::handleErrorHandlerRequests( return true; } - star::task::DocumentMacroConfirmationRequest2 aMacroConfirmRequest2; + task::DocumentMacroConfirmationRequest2 aMacroConfirmRequest2; if (aAnyRequest >>= aMacroConfirmRequest2) { handleMacroConfirmRequest( @@ -1359,7 +1293,7 @@ bool UUIInteractionHelper::handleErrorHandlerRequests( return true; } - FutureDocumentVersionProductUpdateRequest aProductUpdateRequest; + task::FutureDocumentVersionProductUpdateRequest aProductUpdateRequest; if (aAnyRequest >>= aProductUpdateRequest) { handleFutureDocumentVersionUpdateRequest( @@ -1369,14 +1303,37 @@ bool UUIInteractionHelper::handleErrorHandlerRequests( return true; } - star::task::ErrorCodeIOException aErrorCodeIOException; + return false; +} + +bool +UUIInteractionHelper::handleErrorHandlerRequests( + uno::Reference< task::XInteractionRequest > const & rRequest, + bool bObtainErrorStringOnly, + bool & bHasErrorString, + rtl::OUString & rErrorString) +{ + uno::Any aAnyRequest(rRequest->getRequest()); + + task::ErrorCodeRequest aErrorCodeRequest; + if (aAnyRequest >>= aErrorCodeRequest) + { + handleGenericErrorRequest( aErrorCodeRequest.ErrCode, + rRequest->getContinuations(), + bObtainErrorStringOnly, + bHasErrorString, + rErrorString); + return true; + } + + task::ErrorCodeIOException aErrorCodeIOException; if (aAnyRequest >>= aErrorCodeIOException) { handleGenericErrorRequest( aErrorCodeIOException.ErrCode, rRequest->getContinuations(), - bObtainErrorStringOnly, - bHasErrorString, - rErrorString); + bObtainErrorStringOnly, + bHasErrorString, + rErrorString); return true; } @@ -1385,8 +1342,8 @@ bool UUIInteractionHelper::handleErrorHandlerRequests( bool UUIInteractionHelper::handle_impl( - star::uno::Reference< star::task::XInteractionRequest > const & rRequest) - throw (star::uno::RuntimeException) + uno::Reference< task::XInteractionRequest > const & rRequest) + SAL_THROW((uno::RuntimeException)) { try { @@ -1414,42 +1371,55 @@ UUIInteractionHelper::handle_impl( // Use customized InteractionHandler from configuration //////////////////////////////////////////////////////////// InteractionHandlerDataList dataList; - - GetInteractionHandlerList(dataList); - - InteractionHandlerDataList::const_iterator aEnd(dataList.end()); - for (InteractionHandlerDataList::const_iterator aIt(dataList.begin()); - aIt != aEnd; ++aIt) + getInteractionHandlerList(dataList); + + InteractionHandlerDataList::const_iterator aEnd( + dataList.end()); + for (InteractionHandlerDataList::const_iterator aIt( + dataList.begin()); + aIt != aEnd; + ++aIt) { - Reference< uno::XInterface > xIfc = - m_xServiceFactory->createInstance(aIt->ServiceName); + uno::Reference< uno::XInterface > xIfc; + try + { + xIfc = m_xServiceFactory->createInstance( + aIt->ServiceName); + } + catch ( uno::Exception const & ) + { + } - Reference< com::sun::star::lang::XInitialization > xInitialization = - Reference< com::sun::star::lang::XInitialization >( xIfc, UNO_QUERY ); + uno::Reference< lang::XInitialization > + xInitialization( xIfc, uno::UNO_QUERY ); - OSL_ENSURE( xInitialization.is(), "Custom Interactionhandler does not implement mandatory interface XInitialization!" ); + OSL_ENSURE( xInitialization.is(), + "Custom Interactionhandler does not " + "implement mandatory interface " + "XInitialization!" ); if (xInitialization.is()) { - uno::Sequence< uno::Any > propertyValues(1); - beans::PropertyValue aProperty; - - aProperty.Name = rtl::OUString::createFromAscii( "Parent" ); + uno::Sequence< uno::Any > propertyValues(1); + beans::PropertyValue aProperty; + + aProperty.Name + = rtl::OUString::createFromAscii( "Parent" ); aProperty.Value <<= getParentXWindow(); propertyValues[ 0 ] <<= aProperty; xInitialization->initialize(propertyValues); } - Reference< task::XInteractionHandler2 > - xInteractionHandler( xIfc, UNO_QUERY ); + uno::Reference< task::XInteractionHandler2 > + xIH( xIfc, uno::UNO_QUERY ); - OSL_ENSURE( xInteractionHandler.is(), - "Custom Interactionhandler does not implement " - "mandatory interface XInteractionHandler2!" ); - if (xInteractionHandler.is()) - if (xInteractionHandler->handleInteractionRequest(rRequest)) - return true; + OSL_ENSURE( xIH.is(), + "Custom Interactionhandler does not " + "implement mandatory interface " + "XInteractionHandler2!" ); + if (xIH.is() && xIH->handleInteractionRequest(rRequest)) + return true; } return false; } @@ -1458,20 +1428,24 @@ UUIInteractionHelper::handle_impl( } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface >()); + uno::Reference< uno::XInterface >()); } return true; } -void UUIInteractionHelper::GetInteractionHandlerList(InteractionHandlerDataList &rdataList) +void +UUIInteractionHelper::getInteractionHandlerList( + InteractionHandlerDataList &rdataList) { + try + { uno::Reference< lang::XMultiServiceFactory > xConfigProv( - m_xServiceFactory->createInstance( - rtl::OUString::createFromAscii( - "com.sun.star.configuration.ConfigurationProvider" ) ), - uno::UNO_QUERY ); + m_xServiceFactory->createInstance( + rtl::OUString::createFromAscii( + "com.sun.star.configuration.ConfigurationProvider" ) ), + uno::UNO_QUERY ); if ( !xConfigProv.is() ) { @@ -1481,7 +1455,8 @@ void UUIInteractionHelper::GetInteractionHandlerList(InteractionHandlerDataList } rtl::OUStringBuffer aFullPath; - aFullPath.appendAscii( CONFIG_INTERACTIONHANDLERS_KEY ); + aFullPath.appendAscii( + "/org.openoffice.ucb.InteractionHandler/InteractionHandlers" ); uno::Sequence< uno::Any > aArguments( 1 ); beans::PropertyValue aProperty; @@ -1504,8 +1479,7 @@ void UUIInteractionHelper::GetInteractionHandlerList(InteractionHandlerDataList } uno::Reference< container::XNameAccess > xNameAccess( - xInterface, uno::UNO_QUERY ); - + xInterface, uno::UNO_QUERY ); if ( !xNameAccess.is() ) { OSL_ENSURE( false, @@ -1570,28 +1544,37 @@ void UUIInteractionHelper::GetInteractionHandlerList(InteractionHandlerDataList } } } + } + catch ( uno::Exception const & ) + { + OSL_ENSURE( false, "GetInteractionHandlerList - Caught Exception!" ); + } } -Window * UUIInteractionHelper::getParentProperty() SAL_THROW(()) +Window * +UUIInteractionHelper::getParentProperty() + SAL_THROW(()) { - star::uno::Reference< star::awt::XWindow > xWindow = getParentXWindow(); + uno::Reference< awt::XWindow > xWindow = getParentXWindow(); if ( xWindow.is() ) return VCLUnoHelper::GetWindow(xWindow); return 0; } -star::uno::Reference< ::com::sun::star::awt::XWindow> UUIInteractionHelper::getParentXWindow() SAL_THROW(()) +uno::Reference< awt::XWindow> +UUIInteractionHelper::getParentXWindow() + SAL_THROW(()) { osl::MutexGuard aGuard(m_aPropertyMutex); for (sal_Int32 i = 0; i < m_aProperties.getLength(); ++i) { - star::beans::PropertyValue aProperty; + beans::PropertyValue aProperty; if ((m_aProperties[i] >>= aProperty) && aProperty. Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("Parent"))) { - star::uno::Reference< star::awt::XWindow > xWindow; + uno::Reference< awt::XWindow > xWindow; aProperty.Value >>= xWindow; return xWindow; } @@ -1599,12 +1582,13 @@ star::uno::Reference< ::com::sun::star::awt::XWindow> UUIInteractionHelper::get return 0; } -rtl::OUString UUIInteractionHelper::getContextProperty() SAL_THROW(()) +rtl::OUString +UUIInteractionHelper::getContextProperty() SAL_THROW(()) { osl::MutexGuard aGuard(m_aPropertyMutex); for (sal_Int32 i = 0; i < m_aProperties.getLength(); ++i) { - star::beans::PropertyValue aProperty; + beans::PropertyValue aProperty; if ((m_aProperties[i] >>= aProperty) && aProperty. Name.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("Context"))) @@ -1617,57 +1601,58 @@ rtl::OUString UUIInteractionHelper::getContextProperty() SAL_THROW(()) return rtl::OUString(); } -String GetContentPart( const String& _rRawString ) +String +GetContentPart( const String& _rRawString ) { - // search over some parts to find a string - //static char* aIDs[] = { "CN", "OU", "O", "E", NULL }; - static char const * aIDs[] = { "CN=", "OU=", "O=", "E=", NULL };// By CP - String sPart; - int i = 0; - while ( aIDs[i] ) - { - String sPartId = String::CreateFromAscii( aIDs[i++] ); - xub_StrLen nContStart = _rRawString.Search( sPartId ); - if ( nContStart != STRING_NOTFOUND ) - { - nContStart = nContStart + sPartId.Len(); - //++nContStart; // now it's start of content, directly after Id // delete By CP - xub_StrLen nContEnd = _rRawString.Search( sal_Unicode( ',' ), nContStart ); - sPart = String( _rRawString, nContStart, nContEnd - nContStart ); - break; - } + // search over some parts to find a string + //static char* aIDs[] = { "CN", "OU", "O", "E", NULL }; + static char const * aIDs[] = { "CN=", "OU=", "O=", "E=", NULL };// By CP + String sPart; + int i = 0; + while ( aIDs[i] ) + { + String sPartId = String::CreateFromAscii( aIDs[i++] ); + xub_StrLen nContStart = _rRawString.Search( sPartId ); + if ( nContStart != STRING_NOTFOUND ) + { + nContStart = nContStart + sPartId.Len(); + xub_StrLen nContEnd + = _rRawString.Search( sal_Unicode( ',' ), nContStart ); + sPart = String( _rRawString, nContStart, nContEnd - nContStart ); + break; } - - return sPart; + } + return sPart; } - -sal_Bool UUIInteractionHelper::executeUnknownAuthDialog( const cssu::Reference< dcss::security::XCertificate >& rXCert) - SAL_THROW((star::uno::RuntimeException)) +sal_Bool +UUIInteractionHelper::executeUnknownAuthDialog( + const uno::Reference< security::XCertificate >& rXCert) + SAL_THROW((uno::RuntimeException)) { try { vos::OGuard aGuard(Application::GetSolarMutex()); - std::auto_ptr< ResMgr > - xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); - std::auto_ptr< UnknownAuthDialog > - xDialog(new UnknownAuthDialog( getParentProperty(), - rXCert, - m_xServiceFactory, - xManager.get())); + std::auto_ptr< ResMgr > xManager( + ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); + std::auto_ptr< UnknownAuthDialog > xDialog( + new UnknownAuthDialog( getParentProperty(), + rXCert, + m_xServiceFactory, + xManager.get())); // Get correct ressource string rtl::OUString aMessage; std::vector< rtl::OUString > aArguments; - aArguments.push_back( GetContentPart( rXCert.get()->getSubjectName()) ); - //aArguments.push_back( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")) ); + aArguments.push_back( GetContentPart( rXCert->getSubjectName()) ); if (xManager.get()) { ResId aResId(RID_UUI_ERRHDL, *xManager.get()); - if (ErrorResource(aResId).getString(ERRCODE_UUI_UNKNOWNAUTH_UNTRUSTED, &aMessage)) + if (ErrorResource(aResId).getString( + ERRCODE_UUI_UNKNOWNAUTH_UNTRUSTED, &aMessage)) { aMessage = replaceMessageWithArguments( aMessage, aArguments ); xDialog->setDescriptionText( aMessage ); @@ -1678,17 +1663,15 @@ sal_Bool UUIInteractionHelper::executeUnknownAuthDialog( const cssu::Reference< } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface >()); + uno::Reference< uno::XInterface >()); } } rtl::OUString -UUIInteractionHelper::getLocalizedDatTimeStr( ::com::sun::star::util::DateTime aDateTime ) +UUIInteractionHelper::getLocalizedDatTimeStr( util::DateTime aDateTime ) { - - rtl::OUString aDateTimeStr; Date aDate; Time aTime; @@ -1697,38 +1680,44 @@ UUIInteractionHelper::getLocalizedDatTimeStr( ::com::sun::star::util::DateTime a aTime = Time( aDateTime.Hours, aDateTime.Minutes, aDateTime.Seconds ); LanguageType eUILang = Application::GetSettings().GetUILanguage(); - SvNumberFormatter *pNumberFormatter = new SvNumberFormatter( ::comphelper::getProcessServiceFactory(), eUILang ); + SvNumberFormatter *pNumberFormatter + = new SvNumberFormatter( m_xServiceFactory, eUILang ); String aTmpStr; Color* pColor = NULL; Date* pNullDate = pNumberFormatter->GetNullDate(); - sal_uInt32 nFormat = pNumberFormatter->GetStandardFormat( NUMBERFORMAT_DATE, eUILang ); + sal_uInt32 nFormat + = pNumberFormatter->GetStandardFormat( NUMBERFORMAT_DATE, eUILang ); - pNumberFormatter->GetOutputString( aDate - *pNullDate, nFormat, aTmpStr, &pColor ); + pNumberFormatter->GetOutputString( + aDate - *pNullDate, nFormat, aTmpStr, &pColor ); aDateTimeStr = aTmpStr + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" ")); nFormat = pNumberFormatter->GetStandardFormat( NUMBERFORMAT_TIME, eUILang ); - pNumberFormatter->GetOutputString( aTime.GetTimeInDays(), nFormat, aTmpStr, &pColor ); + pNumberFormatter->GetOutputString( + aTime.GetTimeInDays(), nFormat, aTmpStr, &pColor ); aDateTimeStr += aTmpStr; return aDateTimeStr; } -sal_Bool UUIInteractionHelper::executeSSLWarnDialog( const cssu::Reference< dcss::security::XCertificate >& rXCert, - sal_Int32 const & failure, - const rtl::OUString & hostName ) - SAL_THROW((star::uno::RuntimeException)) +sal_Bool +UUIInteractionHelper::executeSSLWarnDialog( + const uno::Reference< security::XCertificate >& rXCert, + sal_Int32 const & failure, + const rtl::OUString & hostName ) + SAL_THROW((uno::RuntimeException)) { try { vos::OGuard aGuard(Application::GetSolarMutex()); - std::auto_ptr< ResMgr > - xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); - std::auto_ptr< SSLWarnDialog > - xDialog(new SSLWarnDialog( getParentProperty(), - rXCert, - m_xServiceFactory, - xManager.get())); + std::auto_ptr< ResMgr > xManager( + ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); + std::auto_ptr< SSLWarnDialog > xDialog( + new SSLWarnDialog( getParentProperty(), + rXCert, + m_xServiceFactory, + xManager.get())); // Get correct ressource string rtl::OUString aMessage_1; @@ -1738,51 +1727,54 @@ sal_Bool UUIInteractionHelper::executeSSLWarnDialog( const cssu::Reference< dcss { case SSLWARN_TYPE_DOMAINMISMATCH: aArguments_1.push_back( hostName ); - aArguments_1.push_back( GetContentPart( rXCert.get()->getSubjectName()) ); + aArguments_1.push_back( + GetContentPart( rXCert->getSubjectName()) ); aArguments_1.push_back( hostName ); break; case SSLWARN_TYPE_EXPIRED: - aArguments_1.push_back( GetContentPart( rXCert.get()->getSubjectName()) ); - aArguments_1.push_back( getLocalizedDatTimeStr( rXCert.get()->getNotValidAfter() ) ); - aArguments_1.push_back( getLocalizedDatTimeStr( rXCert.get()->getNotValidAfter() ) ); + aArguments_1.push_back( + GetContentPart( rXCert->getSubjectName()) ); + aArguments_1.push_back( + getLocalizedDatTimeStr( rXCert->getNotValidAfter() ) ); + aArguments_1.push_back( + getLocalizedDatTimeStr( rXCert->getNotValidAfter() ) ); break; case SSLWARN_TYPE_INVALID: break; } - - - //aArguments.push_back( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")) ); - if (xManager.get()) { ResId aResId(RID_UUI_ERRHDL, *xManager.get()); - if (ErrorResource(aResId).getString( ERRCODE_AREA_UUI_UNKNOWNAUTH + failure + DESCRIPTION_1, &aMessage_1)) + if (ErrorResource(aResId).getString( + ERRCODE_AREA_UUI_UNKNOWNAUTH + failure + DESCRIPTION_1, + &aMessage_1)) { - aMessage_1 = replaceMessageWithArguments( aMessage_1, aArguments_1 ); + aMessage_1 + = replaceMessageWithArguments( aMessage_1, aArguments_1 ); xDialog->setDescription1Text( aMessage_1 ); } rtl::OUString aTitle; - ErrorResource(aResId).getString( ERRCODE_AREA_UUI_UNKNOWNAUTH + failure + TITLE, &aTitle); + ErrorResource(aResId).getString( + ERRCODE_AREA_UUI_UNKNOWNAUTH + failure + TITLE, &aTitle); xDialog->SetText( aTitle ); } - - return static_cast (xDialog->Execute()); } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface >()); + uno::Reference< uno::XInterface >()); } } -void UUIInteractionHelper::executeLoginDialog(LoginErrorInfo & rInfo, - rtl::OUString const & rRealm) - SAL_THROW((star::uno::RuntimeException)) +void +UUIInteractionHelper::executeLoginDialog(LoginErrorInfo & rInfo, + rtl::OUString const & rRealm) + SAL_THROW((uno::RuntimeException)) { try { @@ -1810,15 +1802,15 @@ void UUIInteractionHelper::executeLoginDialog(LoginErrorInfo & rInfo, if (!bCanUseSysCreds) nFlags |= LF_NO_USESYSCREDS; - std::auto_ptr< ResMgr > - xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); - UniString aRealm(rRealm); // Forte compiler needs it spelled out... - std::auto_ptr< LoginDialog > - xDialog(new LoginDialog(getParentProperty(), - nFlags, - rInfo.GetServer(), - &aRealm, - xManager.get())); + std::auto_ptr< ResMgr > xManager( + ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); + UniString aRealm(rRealm); + std::auto_ptr< LoginDialog > xDialog( + new LoginDialog(getParentProperty(), + nFlags, + rInfo.GetServer(), + &aRealm, + xManager.get())); if (rInfo.GetErrorText().Len() != 0) xDialog->SetErrorText(rInfo.GetErrorText()); xDialog->SetName(rInfo.GetUserName()); @@ -1839,7 +1831,8 @@ void UUIInteractionHelper::executeLoginDialog(LoginErrorInfo & rInfo, } if ( bCanUseSysCreds ) - xDialog->SetUseSystemCredentials( rInfo.GetIsUseSystemCredentials() ); + xDialog->SetUseSystemCredentials( + rInfo.GetIsUseSystemCredentials() ); rInfo.SetResult(xDialog->Execute() == RET_OK ? ERRCODE_BUTTON_OK : ERRCODE_BUTTON_CANCEL); @@ -1853,54 +1846,51 @@ void UUIInteractionHelper::executeLoginDialog(LoginErrorInfo & rInfo, } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface >()); + uno::Reference< uno::XInterface >()); } } void UUIInteractionHelper::executeMasterPasswordDialog( LoginErrorInfo & rInfo, - star::task::PasswordRequestMode nMode) - SAL_THROW((star::uno::RuntimeException)) + task::PasswordRequestMode nMode) + SAL_THROW((uno::RuntimeException)) { rtl::OString aMaster; try { vos::OGuard aGuard(Application::GetSolarMutex()); - std::auto_ptr< ResMgr > - xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); - if( nMode == star::task::PasswordRequestMode_PASSWORD_CREATE ) - { - std::auto_ptr< MasterPasswordCreateDialog > - xDialog(new MasterPasswordCreateDialog( - getParentProperty(), xManager.get())); + std::auto_ptr< ResMgr > xManager( + ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); + if( nMode == task::PasswordRequestMode_PASSWORD_CREATE ) + { + std::auto_ptr< MasterPasswordCreateDialog > xDialog( + new MasterPasswordCreateDialog( + getParentProperty(), xManager.get())); rInfo.SetResult(xDialog->Execute() - == RET_OK ? ERRCODE_BUTTON_OK - : ERRCODE_BUTTON_CANCEL); - aMaster = rtl::OUStringToOString(xDialog->GetMasterPassword(), - RTL_TEXTENCODING_UTF8); - } - else - { - std::auto_ptr< MasterPasswordDialog > - xDialog(new MasterPasswordDialog( - getParentProperty(), nMode, xManager.get())); + == RET_OK ? ERRCODE_BUTTON_OK : ERRCODE_BUTTON_CANCEL); + aMaster = rtl::OUStringToOString( + xDialog->GetMasterPassword(), RTL_TEXTENCODING_UTF8); + } + else + { + std::auto_ptr< MasterPasswordDialog > xDialog( + new MasterPasswordDialog( + getParentProperty(), nMode, xManager.get())); rInfo.SetResult(xDialog->Execute() - == RET_OK ? ERRCODE_BUTTON_OK - : ERRCODE_BUTTON_CANCEL); - aMaster = rtl::OUStringToOString(xDialog->GetMasterPassword(), - RTL_TEXTENCODING_UTF8); - } - + == RET_OK ? ERRCODE_BUTTON_OK : ERRCODE_BUTTON_CANCEL); + aMaster = rtl::OUStringToOString( + xDialog->GetMasterPassword(), RTL_TEXTENCODING_UTF8); + } } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface >()); + uno::Reference< uno::XInterface >()); } sal_uInt8 aKey[RTL_DIGEST_LENGTH_MD5]; @@ -1925,126 +1915,124 @@ UUIInteractionHelper::executeMasterPasswordDialog( void UUIInteractionHelper::executePasswordDialog( LoginErrorInfo & rInfo, - star::task::PasswordRequestMode nMode, + task::PasswordRequestMode nMode, ::rtl::OUString aDocName) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { try { vos::OGuard aGuard(Application::GetSolarMutex()); - std::auto_ptr< ResMgr > - xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); - if( nMode == star::task::PasswordRequestMode_PASSWORD_CREATE ) - { - std::auto_ptr< PasswordCreateDialog > - xDialog(new PasswordCreateDialog( - getParentProperty(), xManager.get())); + std::auto_ptr< ResMgr > xManager( + ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); + if( nMode == task::PasswordRequestMode_PASSWORD_CREATE ) + { + std::auto_ptr< PasswordCreateDialog > xDialog( + new PasswordCreateDialog( getParentProperty(), xManager.get())); - rInfo.SetResult(xDialog->Execute() == RET_OK ? ERRCODE_BUTTON_OK : - ERRCODE_BUTTON_CANCEL); - rInfo.SetPassword( xDialog->GetPassword() ); - } - else - { - std::auto_ptr< PasswordDialog > - xDialog(new PasswordDialog( - getParentProperty(), nMode, xManager.get(), aDocName )); + rInfo.SetResult(xDialog->Execute() + == RET_OK ? ERRCODE_BUTTON_OK : ERRCODE_BUTTON_CANCEL); + rInfo.SetPassword( xDialog->GetPassword() ); + } + else + { + std::auto_ptr< PasswordDialog > xDialog( + new PasswordDialog( + getParentProperty(), nMode, xManager.get(), aDocName )); - rInfo.SetResult(xDialog->Execute() == RET_OK ? ERRCODE_BUTTON_OK : - ERRCODE_BUTTON_CANCEL); - rInfo.SetPassword( xDialog->GetPassword() ); - } + rInfo.SetResult(xDialog->Execute() + == RET_OK ? ERRCODE_BUTTON_OK : ERRCODE_BUTTON_CANCEL); + rInfo.SetPassword( xDialog->GetPassword() ); + } } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface>()); + uno::Reference< uno::XInterface>()); } } void UUIInteractionHelper::executeMSPasswordDialog( LoginErrorInfo & rInfo, - star::task::PasswordRequestMode nMode, + task::PasswordRequestMode nMode, ::rtl::OUString aDocName) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { try { vos::OGuard aGuard(Application::GetSolarMutex()); - std::auto_ptr< ResMgr > - xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); - if( nMode == star::task::PasswordRequestMode_PASSWORD_CREATE ) - { - std::auto_ptr< PasswordCreateDialog > - xDialog(new PasswordCreateDialog( - getParentProperty(), xManager.get(), true)); + std::auto_ptr< ResMgr > xManager( + ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); + if( nMode == task::PasswordRequestMode_PASSWORD_CREATE ) + { + std::auto_ptr< PasswordCreateDialog > xDialog( + new PasswordCreateDialog( + getParentProperty(), xManager.get(), true)); - rInfo.SetResult(xDialog->Execute() == RET_OK ? ERRCODE_BUTTON_OK : - ERRCODE_BUTTON_CANCEL); - rInfo.SetPassword( xDialog->GetPassword() ); - } - else - { - std::auto_ptr< PasswordDialog > - xDialog(new PasswordDialog( - getParentProperty(), nMode, xManager.get(), aDocName )); + rInfo.SetResult(xDialog->Execute() + == RET_OK ? ERRCODE_BUTTON_OK : ERRCODE_BUTTON_CANCEL); + rInfo.SetPassword( xDialog->GetPassword() ); + } + else + { + std::auto_ptr< PasswordDialog > xDialog( + new PasswordDialog( + getParentProperty(), nMode, xManager.get(), aDocName )); - rInfo.SetResult(xDialog->Execute() == RET_OK ? ERRCODE_BUTTON_OK : - ERRCODE_BUTTON_CANCEL); - rInfo.SetPassword( xDialog->GetPassword() ); - } + rInfo.SetResult(xDialog->Execute() + == RET_OK ? ERRCODE_BUTTON_OK : ERRCODE_BUTTON_CANCEL); + rInfo.SetPassword( xDialog->GetPassword() ); + } } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface>()); + uno::Reference< uno::XInterface>()); } } void UUIInteractionHelper::executeCookieDialog(CntHTTPCookieRequest & rRequest) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { try { vos::OGuard aGuard(Application::GetSolarMutex()); - std::auto_ptr< ResMgr > - xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); - std::auto_ptr< CookiesDialog > - xDialog(new CookiesDialog( - getParentProperty(), &rRequest, xManager.get())); + std::auto_ptr< ResMgr > xManager( + ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); + std::auto_ptr< CookiesDialog > xDialog( + new CookiesDialog(getParentProperty(), &rRequest, xManager.get())); xDialog->Execute(); } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface>()); + uno::Reference< uno::XInterface>()); } } -void UUIInteractionHelper::executeFilterDialog( +void +UUIInteractionHelper::executeFilterDialog( rtl::OUString const & rURL , uui::FilterNameList const & rFilters, rtl::OUString & rFilter ) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { try { vos::OGuard aGuard(Application::GetSolarMutex()); - std::auto_ptr< ResMgr > - xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); + std::auto_ptr< ResMgr > xManager( + ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); - std::auto_ptr< uui::FilterDialog > - xDialog(new uui::FilterDialog(getParentProperty(), - xManager.get())); + std::auto_ptr< uui::FilterDialog > xDialog( + new uui::FilterDialog(getParentProperty(), xManager.get())); xDialog->SetURL(rURL); xDialog->ChangeFilters(&rFilters); @@ -2057,21 +2045,20 @@ void UUIInteractionHelper::executeFilterDialog( } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface >()); + throw uno::RuntimeException( + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), + uno::Reference< uno::XInterface >()); } } USHORT UUIInteractionHelper::executeErrorDialog( - star::task::InteractionClassification eClassification, + task::InteractionClassification eClassification, rtl::OUString const & rContext, rtl::OUString const & rMessage, WinBits nButtonMask) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { - vos::OGuard aGuard(Application::GetSolarMutex()); rtl::OUStringBuffer aText(rContext); @@ -2085,46 +2072,46 @@ UUIInteractionHelper::executeErrorDialog( { switch (eClassification) { - case star::task::InteractionClassification_ERROR: - xBox.reset(new ErrorBox(getParentProperty(), - nButtonMask, + case task::InteractionClassification_ERROR: + xBox.reset(new ErrorBox(getParentProperty(), + nButtonMask, aText.makeStringAndClear())); - break; + break; - case star::task::InteractionClassification_WARNING: - xBox.reset(new WarningBox(getParentProperty(), + case task::InteractionClassification_WARNING: + xBox.reset(new WarningBox(getParentProperty(), nButtonMask, - aText.makeStringAndClear())); - break; + aText.makeStringAndClear())); + break; - case star::task::InteractionClassification_INFO: - if ((nButtonMask & 0x01F00000) == WB_DEF_OK) - //TODO! missing win bit button mask define (want to ignore - // any default button settings)... + case task::InteractionClassification_INFO: + if ((nButtonMask & 0x01F00000) == WB_DEF_OK) + //TODO! missing win bit button mask define (want to ignore + // any default button settings)... xBox.reset(new InfoBox(getParentProperty(), aText.makeStringAndClear())); - else - xBox.reset(new ErrorBox(getParentProperty(), - nButtonMask, - aText.makeStringAndClear())); + else + xBox.reset(new ErrorBox(getParentProperty(), + nButtonMask, + aText.makeStringAndClear())); break; - case star::task::InteractionClassification_QUERY: - xBox.reset(new QueryBox(getParentProperty(), - nButtonMask, - aText.makeStringAndClear())); - break; + case task::InteractionClassification_QUERY: + xBox.reset(new QueryBox(getParentProperty(), + nButtonMask, + aText.makeStringAndClear())); + break; default: - OSL_ASSERT(false); - break; - } + OSL_ASSERT(false); + break; + } } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface >()); + throw uno::RuntimeException( + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), + uno::Reference< uno::XInterface >()); } USHORT aResult = xBox->Execute(); @@ -2155,9 +2142,8 @@ UUIInteractionHelper::executeMessageBox( rtl::OUString const & rTitle, rtl::OUString const & rMessage, WinBits nButtonMask ) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { - vos::OGuard aGuard(Application::GetSolarMutex()); MessBox xBox( getParentProperty(), nButtonMask, rTitle, rMessage ); @@ -2185,55 +2171,51 @@ UUIInteractionHelper::executeMessageBox( return aResult; } -star::uno::Reference< star::task::XInteractionHandler > +uno::Reference< task::XInteractionHandler > UUIInteractionHelper::getInteractionHandler() const - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionHandler > xIH; + uno::Reference< task::XInteractionHandler > xIH; try { - xIH = star::uno::Reference< star::task::XInteractionHandler >( - m_xServiceFactory->createInstanceWithArguments( + xIH.set(m_xServiceFactory->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.task.InteractionHandler")), m_aProperties), - star::uno::UNO_QUERY); + uno::UNO_QUERY); } - catch (star::uno::Exception const &) + catch (uno::Exception const &) {} if (!xIH.is()) - throw star::uno::RuntimeException( + throw uno::RuntimeException( rtl::OUString( - RTL_CONSTASCII_USTRINGPARAM( - "unable to instanciate Interaction Handler service")), - star::uno::Reference< star::uno::XInterface >()); + RTL_CONSTASCII_USTRINGPARAM( + "unable to instanciate Interaction Handler service")), + uno::Reference< uno::XInterface >()); return xIH; } void UUIInteractionHelper::handleAuthenticationRequest( - star::ucb::AuthenticationRequest const & rRequest, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & - rContinuations, + ucb::AuthenticationRequest const & rRequest, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & + rContinuations, const rtl::OUString & rURL) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionRetry > xRetry; - star::uno::Reference< star::task::XInteractionAbort > xAbort; - star::uno::Reference< star::ucb::XInteractionSupplyAuthentication > + uno::Reference< task::XInteractionRetry > xRetry; + uno::Reference< task::XInteractionAbort > xAbort; + uno::Reference< ucb::XInteractionSupplyAuthentication > xSupplyAuthentication; - star::uno::Reference< star::ucb::XInteractionSupplyAuthentication2 > + uno::Reference< ucb::XInteractionSupplyAuthentication2 > xSupplyAuthentication2; - getContinuations( - rContinuations, - 0, 0, &xRetry, &xAbort, - &xSupplyAuthentication, &xSupplyAuthentication2, 0, 0, 0); + getContinuations(rContinuations, &xRetry, &xAbort, &xSupplyAuthentication); + if (xSupplyAuthentication.is()) + xSupplyAuthentication2.set(xSupplyAuthentication, uno::UNO_QUERY); - star::uno::Reference< star::task::XInteractionHandler > xIH( - getInteractionHandler()); + uno::Reference< task::XInteractionHandler > xIH(getInteractionHandler()); ////////////////////////// // First, try to obatin credentials from password container service. @@ -2253,13 +2235,13 @@ UUIInteractionHelper::handleAuthenticationRequest( bool bRememberPersistent; if (xSupplyAuthentication.is()) { - star::ucb::RememberAuthentication eDefault; - star::uno::Sequence< star::ucb::RememberAuthentication > + ucb::RememberAuthentication eDefault; + uno::Sequence< ucb::RememberAuthentication > aModes(xSupplyAuthentication->getRememberPasswordModes(eDefault)); - bRemember = eDefault != star::ucb::RememberAuthentication_NO; + bRemember = eDefault != ucb::RememberAuthentication_NO; bRememberPersistent = false; for (sal_Int32 i = 0; i < aModes.getLength(); ++i) - if (aModes[i] == star::ucb::RememberAuthentication_PERSISTENT) + if (aModes[i] == ucb::RememberAuthentication_PERSISTENT) { bRememberPersistent = true; break; @@ -2319,10 +2301,10 @@ UUIInteractionHelper::handleAuthenticationRequest( xSupplyAuthentication-> setRememberPassword( aInfo.GetIsSavePassword() ? - bRememberPersistent ? - star::ucb::RememberAuthentication_PERSISTENT : - star::ucb::RememberAuthentication_SESSION : - star::ucb::RememberAuthentication_NO); + bRememberPersistent ? + ucb::RememberAuthentication_PERSISTENT : + ucb::RememberAuthentication_SESSION : + ucb::RememberAuthentication_NO); if (rRequest.HasRealm) { if (xSupplyAuthentication->canSetRealm()) @@ -2358,7 +2340,7 @@ UUIInteractionHelper::handleAuthenticationRequest( { if (aInfo.GetIsSavePassword()) { - star::uno::Sequence< rtl::OUString > + uno::Sequence< rtl::OUString > aPassList(aInfo.GetAccount().Len() == 0 ? 1 : 2); aPassList[0] = aInfo.GetPassword(); if (aInfo.GetAccount().Len() != 0) @@ -2387,50 +2369,47 @@ UUIInteractionHelper::handleAuthenticationRequest( } sal_Bool -UUIInteractionHelper::isDomainMatch( rtl::OUString hostName, rtl::OUString certHostName) +UUIInteractionHelper::isDomainMatch( + rtl::OUString hostName, rtl::OUString certHostName) { if (hostName.equalsIgnoreAsciiCase( certHostName )) return sal_True; - - - if ( 0 == certHostName.indexOf( rtl::OUString::createFromAscii( "*" ) ) && hostName.getLength() >= certHostName.getLength() ) + if ( 0 == certHostName.indexOf( rtl::OUString::createFromAscii( "*" ) ) && + hostName.getLength() >= certHostName.getLength() ) { rtl::OUString cmpStr = certHostName.copy( 1 ); - if ( hostName.matchIgnoreAsciiCase( cmpStr, hostName.getLength( ) - cmpStr.getLength()) ) + if ( hostName.matchIgnoreAsciiCase( + cmpStr, hostName.getLength() - cmpStr.getLength()) ) return sal_True; - } return sal_False; } - void UUIInteractionHelper::handleCertificateValidationRequest( - star::ucb::CertificateValidationRequest const & rRequest, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & - rContinuations) - SAL_THROW((star::uno::RuntimeException)) + ucb::CertificateValidationRequest const & rRequest, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & + rContinuations) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionHandler > xIH = getInteractionHandler(); - - star::uno::Reference< star::task::XInteractionApprove > xApprove; - star::uno::Reference< star::task::XInteractionAbort > xAbort; + uno::Reference< task::XInteractionHandler > xIH( getInteractionHandler() ); - getContinuations( - rContinuations, &xApprove, 0, 0, &xAbort, 0, 0, 0, 0, 0); + uno::Reference< task::XInteractionApprove > xApprove; + uno::Reference< task::XInteractionAbort > xAbort; + getContinuations(rContinuations, &xApprove, &xAbort); sal_Int32 failures = rRequest.CertificateValidity; - sal_Bool trustCert = sal_True; - - if ( ((failures & csss::CertificateValidity::UNTRUSTED) == csss::CertificateValidity::UNTRUSTED ) || - ((failures & csss::CertificateValidity::ISSUER_UNTRUSTED) == csss::CertificateValidity::ISSUER_UNTRUSTED) || - ((failures & csss::CertificateValidity::ROOT_UNTRUSTED) == csss::CertificateValidity::ROOT_UNTRUSTED) ) + if ( ((failures & security::CertificateValidity::UNTRUSTED) + == security::CertificateValidity::UNTRUSTED ) || + ((failures & security::CertificateValidity::ISSUER_UNTRUSTED) + == security::CertificateValidity::ISSUER_UNTRUSTED) || + ((failures & security::CertificateValidity::ROOT_UNTRUSTED) + == security::CertificateValidity::ROOT_UNTRUSTED) ) { if ( executeUnknownAuthDialog( rRequest.Certificate ) ) trustCert = sal_True; @@ -2438,32 +2417,47 @@ UUIInteractionHelper::handleCertificateValidationRequest( trustCert = sal_False; } - if ( (!isDomainMatch( rRequest.HostName, GetContentPart( rRequest.Certificate.get()->getSubjectName()) )) && - trustCert ) + if ( (!isDomainMatch( + rRequest.HostName, + GetContentPart( + rRequest.Certificate->getSubjectName()) )) && + trustCert ) { - if ( executeSSLWarnDialog( rRequest.Certificate, SSLWARN_TYPE_DOMAINMISMATCH, rRequest.HostName ) ) + if ( executeSSLWarnDialog( rRequest.Certificate, + SSLWARN_TYPE_DOMAINMISMATCH, + rRequest.HostName ) ) trustCert = sal_True; else trustCert = sal_False; } - if ( (((failures & csss::CertificateValidity::TIME_INVALID) == csss::CertificateValidity::TIME_INVALID) || - ((failures & csss::CertificateValidity::NOT_TIME_NESTED) == csss::CertificateValidity::NOT_TIME_NESTED)) && - trustCert ) + if ( (((failures & security::CertificateValidity::TIME_INVALID) + == security::CertificateValidity::TIME_INVALID) || + ((failures & security::CertificateValidity::NOT_TIME_NESTED) + == security::CertificateValidity::NOT_TIME_NESTED)) && + trustCert ) { - if ( executeSSLWarnDialog( rRequest.Certificate, SSLWARN_TYPE_EXPIRED, rRequest.HostName ) ) + if ( executeSSLWarnDialog( rRequest.Certificate, + SSLWARN_TYPE_EXPIRED, + rRequest.HostName ) ) trustCert = sal_True; else trustCert = sal_False; } - if ( (((failures & csss::CertificateValidity::REVOKED) == csss::CertificateValidity::REVOKED) || - ((failures & csss::CertificateValidity::SIGNATURE_INVALID) == csss::CertificateValidity::SIGNATURE_INVALID) || - ((failures & csss::CertificateValidity::EXTENSION_INVALID) == csss::CertificateValidity::EXTENSION_INVALID) || - ((failures & csss::CertificateValidity::INVALID) == csss::CertificateValidity::INVALID)) && - trustCert ) + if ( (((failures & security::CertificateValidity::REVOKED) + == security::CertificateValidity::REVOKED) || + ((failures & security::CertificateValidity::SIGNATURE_INVALID) + == security::CertificateValidity::SIGNATURE_INVALID) || + ((failures & security::CertificateValidity::EXTENSION_INVALID) + == security::CertificateValidity::EXTENSION_INVALID) || + ((failures & security::CertificateValidity::INVALID) + == security::CertificateValidity::INVALID)) && + trustCert ) { - if ( executeSSLWarnDialog( rRequest.Certificate, SSLWARN_TYPE_INVALID, rRequest.HostName ) ) + if ( executeSSLWarnDialog( rRequest.Certificate, + SSLWARN_TYPE_INVALID, + rRequest.HostName ) ) trustCert = sal_True; else trustCert = sal_False; @@ -2472,27 +2466,13 @@ UUIInteractionHelper::handleCertificateValidationRequest( if ( trustCert ) { if (xApprove.is()) - xApprove->select(); - } else - { - if (xAbort.is()) - xAbort->select(); + xApprove->select(); } - - /* - - switch (executeMessageBox( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Dialog1")), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Dummy dialog")), WB_YES_NO | WB_DEF_YES )) + else { - case ERRCODE_BUTTON_YES: - if (xApprove.is()) - xApprove->select(); - break; - default: if (xAbort.is()) xAbort->select(); - break; } - */ } namespace { @@ -2527,10 +2507,10 @@ executeSimpleNameClashResolveDialog( void UUIInteractionHelper::handleNameClashResolveRequest( - star::ucb::NameClashResolveRequest const & rRequest, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & rContinuations) - SAL_THROW((star::uno::RuntimeException)) + ucb::NameClashResolveRequest const & rRequest, + uno::Sequence< uno::Reference< + task::XInteractionContinuation > > const & rContinuations) + SAL_THROW((uno::RuntimeException)) { OSL_ENSURE( rRequest.TargetFolderURL.getLength() > 0, @@ -2540,15 +2520,11 @@ UUIInteractionHelper::handleNameClashResolveRequest( rRequest.ClashingName.getLength() > 0, "NameClashResolveRequest must not contain empty ClashingName" ); - star::uno::Reference< star::task::XInteractionAbort > - xAbort; - star::uno::Reference< star::ucb::XInteractionSupplyName > - xSupplyName; - star::uno::Reference< star::ucb::XInteractionReplaceExistingData > - xReplaceExistingData; + uno::Reference< task::XInteractionAbort > xAbort; + uno::Reference< ucb::XInteractionSupplyName > xSupplyName; + uno::Reference< ucb::XInteractionReplaceExistingData > xReplaceExistingData; getContinuations( - rContinuations, - 0, 0, 0, &xAbort, 0, 0, 0, &xSupplyName, &xReplaceExistingData); + rContinuations, &xAbort, &xSupplyName, &xReplaceExistingData); OSL_ENSURE( xAbort.is(), "NameClashResolveRequest must contain Abort continuation" ); @@ -2597,19 +2573,16 @@ UUIInteractionHelper::handleNameClashResolveRequest( void UUIInteractionHelper::handleMasterPasswordRequest( - star::task::PasswordRequestMode nMode, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & + task::PasswordRequestMode nMode, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & rContinuations) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionRetry > xRetry; - star::uno::Reference< star::task::XInteractionAbort > xAbort; - star::uno::Reference< star::ucb::XInteractionSupplyAuthentication > + uno::Reference< task::XInteractionRetry > xRetry; + uno::Reference< task::XInteractionAbort > xAbort; + uno::Reference< ucb::XInteractionSupplyAuthentication > xSupplyAuthentication; - getContinuations( - rContinuations, - 0, 0, &xRetry, &xAbort, &xSupplyAuthentication, 0, 0, 0, 0); + getContinuations(rContinuations, &xRetry, &xAbort, &xSupplyAuthentication); LoginErrorInfo aInfo; // in case of master password a hash code is returned @@ -2620,39 +2593,36 @@ UUIInteractionHelper::handleMasterPasswordRequest( case ERRCODE_BUTTON_OK: if (xSupplyAuthentication.is()) { - if (xSupplyAuthentication->canSetPassword()) - xSupplyAuthentication->setPassword(aInfo.GetPassword()); - xSupplyAuthentication->select(); + if (xSupplyAuthentication->canSetPassword()) + xSupplyAuthentication->setPassword(aInfo.GetPassword()); + xSupplyAuthentication->select(); } break; case ERRCODE_BUTTON_RETRY: if (xRetry.is()) - xRetry->select(); + xRetry->select(); break; default: if (xAbort.is()) - xAbort->select(); + xAbort->select(); break; } } void UUIInteractionHelper::handlePasswordRequest( - star::task::PasswordRequestMode nMode, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & + task::PasswordRequestMode nMode, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & rContinuations, ::rtl::OUString aDocumentName ) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionRetry > xRetry; - star::uno::Reference< star::task::XInteractionAbort > xAbort; - star::uno::Reference< star::task::XInteractionPassword > - xPassword; - getContinuations( - rContinuations, 0, 0, &xRetry, &xAbort, 0, 0, &xPassword, 0, 0); + uno::Reference< task::XInteractionRetry > xRetry; + uno::Reference< task::XInteractionAbort > xAbort; + uno::Reference< task::XInteractionPassword > xPassword; + getContinuations(rContinuations, &xRetry, &xAbort, &xPassword); LoginErrorInfo aInfo; executePasswordDialog(aInfo, nMode, aDocumentName); @@ -2662,14 +2632,14 @@ UUIInteractionHelper::handlePasswordRequest( case ERRCODE_BUTTON_OK: if (xPassword.is()) { - xPassword->setPassword(aInfo.GetPassword()); - xPassword->select(); + xPassword->setPassword(aInfo.GetPassword()); + xPassword->select(); } break; case ERRCODE_BUTTON_RETRY: if (xRetry.is()) - xRetry->select(); + xRetry->select(); break; default: @@ -2681,19 +2651,16 @@ UUIInteractionHelper::handlePasswordRequest( void UUIInteractionHelper::handleMSPasswordRequest( - star::task::PasswordRequestMode nMode, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & + task::PasswordRequestMode nMode, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & rContinuations, ::rtl::OUString aDocumentName ) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionRetry > xRetry; - star::uno::Reference< star::task::XInteractionAbort > xAbort; - star::uno::Reference< star::task::XInteractionPassword > - xPassword; - getContinuations( - rContinuations, 0, 0, &xRetry, &xAbort, 0, 0, &xPassword, 0, 0); + uno::Reference< task::XInteractionRetry > xRetry; + uno::Reference< task::XInteractionAbort > xAbort; + uno::Reference< task::XInteractionPassword > xPassword; + getContinuations(rContinuations, &xRetry, &xAbort, &xPassword); LoginErrorInfo aInfo; executeMSPasswordDialog(aInfo, nMode, aDocumentName); @@ -2703,14 +2670,14 @@ UUIInteractionHelper::handleMSPasswordRequest( case ERRCODE_BUTTON_OK: if (xPassword.is()) { - xPassword->setPassword(aInfo.GetPassword()); - xPassword->select(); + xPassword->setPassword(aInfo.GetPassword()); + xPassword->select(); } break; case ERRCODE_BUTTON_RETRY: if (xRetry.is()) - xRetry->select(); + xRetry->select(); break; default: @@ -2722,109 +2689,107 @@ UUIInteractionHelper::handleMSPasswordRequest( void UUIInteractionHelper::handleCookiesRequest( - star::ucb::HandleCookiesRequest const & rRequest, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & + ucb::HandleCookiesRequest const & rRequest, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & rContinuations) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { CookieList aCookies; for (sal_Int32 i = 0; i < rRequest.Cookies.getLength(); ++i) { - try - { - std::auto_ptr< CntHTTPCookie > xCookie(new CntHTTPCookie); - xCookie->m_aName = UniString(rRequest.Cookies[i].Name); - xCookie->m_aValue = UniString(rRequest.Cookies[i].Value); - xCookie->m_aDomain = UniString(rRequest.Cookies[i].Domain); - xCookie->m_aPath = UniString(rRequest.Cookies[i].Path); - xCookie->m_aExpires - = DateTime(Date(rRequest.Cookies[i].Expires.Day, - rRequest.Cookies[i].Expires.Month, - rRequest.Cookies[i].Expires.Year), - Time(rRequest.Cookies[i].Expires.Hours, - rRequest.Cookies[i].Expires.Minutes, - rRequest.Cookies[i].Expires.Seconds, - rRequest.Cookies[i].Expires. - HundredthSeconds)); - xCookie->m_nFlags - = rRequest.Cookies[i].Secure ? CNTHTTP_COOKIE_FLAG_SECURE : 0; - switch (rRequest.Cookies[i].Policy) - { - case star::ucb::CookiePolicy_CONFIRM: - xCookie->m_nPolicy = CNTHTTP_COOKIE_POLICY_INTERACTIVE; - break; + try + { + std::auto_ptr< CntHTTPCookie > xCookie(new CntHTTPCookie); + xCookie->m_aName = UniString(rRequest.Cookies[i].Name); + xCookie->m_aValue = UniString(rRequest.Cookies[i].Value); + xCookie->m_aDomain = UniString(rRequest.Cookies[i].Domain); + xCookie->m_aPath = UniString(rRequest.Cookies[i].Path); + xCookie->m_aExpires + = DateTime(Date(rRequest.Cookies[i].Expires.Day, + rRequest.Cookies[i].Expires.Month, + rRequest.Cookies[i].Expires.Year), + Time(rRequest.Cookies[i].Expires.Hours, + rRequest.Cookies[i].Expires.Minutes, + rRequest.Cookies[i].Expires.Seconds, + rRequest.Cookies[i].Expires.HundredthSeconds)); + xCookie->m_nFlags + = rRequest.Cookies[i].Secure ? CNTHTTP_COOKIE_FLAG_SECURE : 0; + switch (rRequest.Cookies[i].Policy) + { + case ucb::CookiePolicy_CONFIRM: + xCookie->m_nPolicy = CNTHTTP_COOKIE_POLICY_INTERACTIVE; + break; - case star::ucb::CookiePolicy_ACCEPT: - xCookie->m_nPolicy = CNTHTTP_COOKIE_POLICY_ACCEPTED; - break; + case ucb::CookiePolicy_ACCEPT: + xCookie->m_nPolicy = CNTHTTP_COOKIE_POLICY_ACCEPTED; + break; - case star::ucb::CookiePolicy_IGNORE: - xCookie->m_nPolicy = CNTHTTP_COOKIE_POLICY_BANNED; - break; + case ucb::CookiePolicy_IGNORE: + xCookie->m_nPolicy = CNTHTTP_COOKIE_POLICY_BANNED; + break; default: - OSL_ASSERT(false); - break; + OSL_ASSERT(false); + break; + } + aCookies.Insert(xCookie.get(), LIST_APPEND); + xCookie.release(); + } + catch (std::bad_alloc const &) + { + throw uno::RuntimeException( + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( + "out of memory")), + uno::Reference< uno::XInterface >()); } - aCookies.Insert(xCookie.get(), LIST_APPEND); - xCookie.release(); - } - catch (std::bad_alloc const &) - { - throw star::uno::RuntimeException( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( - "out of memory")), - star::uno::Reference< star::uno::XInterface >()); - } } CntHTTPCookieRequest aRequest(rRequest.URL, aCookies, - rRequest.Request == star::ucb::CookieRequest_RECEIVE ? - CNTHTTP_COOKIE_REQUEST_RECV : - CNTHTTP_COOKIE_REQUEST_SEND); + rRequest.Request == ucb::CookieRequest_RECEIVE + ? CNTHTTP_COOKIE_REQUEST_RECV + : CNTHTTP_COOKIE_REQUEST_SEND); executeCookieDialog(aRequest); for (sal_Int32 i = 0; i < rContinuations.getLength(); ++i) { - star::uno::Reference< star::ucb::XInteractionCookieHandling > - xCookieHandling(rContinuations[i], star::uno::UNO_QUERY); + uno::Reference< ucb::XInteractionCookieHandling > + xCookieHandling(rContinuations[i], uno::UNO_QUERY); if (xCookieHandling.is()) { switch (aRequest.m_nRet) { - case CNTHTTP_COOKIE_POLICY_INTERACTIVE: - xCookieHandling-> - setGeneralPolicy(star::ucb::CookiePolicy_CONFIRM); - break; + case CNTHTTP_COOKIE_POLICY_INTERACTIVE: + xCookieHandling-> + setGeneralPolicy(ucb::CookiePolicy_CONFIRM); + break; - case CNTHTTP_COOKIE_POLICY_ACCEPTED: - xCookieHandling-> - setGeneralPolicy(star::ucb::CookiePolicy_ACCEPT); - break; + case CNTHTTP_COOKIE_POLICY_ACCEPTED: + xCookieHandling-> + setGeneralPolicy(ucb::CookiePolicy_ACCEPT); + break; - case CNTHTTP_COOKIE_POLICY_BANNED: - xCookieHandling-> - setGeneralPolicy(star::ucb::CookiePolicy_IGNORE); - break; + case CNTHTTP_COOKIE_POLICY_BANNED: + xCookieHandling-> + setGeneralPolicy(ucb::CookiePolicy_IGNORE); + break; } for (sal_Int32 j = 0; j < rRequest.Cookies.getLength(); ++j) if (rRequest.Cookies[j].Policy - == star::ucb::CookiePolicy_CONFIRM) + == ucb::CookiePolicy_CONFIRM) switch (static_cast< CntHTTPCookie * >(aCookies. - GetObject(j))-> - m_nPolicy) + GetObject(j))-> + m_nPolicy) { - case CNTHTTP_COOKIE_POLICY_ACCEPTED: - xCookieHandling-> + case CNTHTTP_COOKIE_POLICY_ACCEPTED: + xCookieHandling-> setSpecificPolicy(rRequest.Cookies[j], true); - break; + break; - case CNTHTTP_COOKIE_POLICY_BANNED: - xCookieHandling-> - setSpecificPolicy(rRequest.Cookies[j], false); - break; + case CNTHTTP_COOKIE_POLICY_BANNED: + xCookieHandling-> + setSpecificPolicy(rRequest.Cookies[j], false); + break; } xCookieHandling->select(); break; @@ -2834,45 +2799,38 @@ UUIInteractionHelper::handleCookiesRequest( void UUIInteractionHelper::handleNoSuchFilterRequest( - star::document::NoSuchFilterRequest const & rRequest, - star::uno::Sequence< - star::uno::Reference< star::task::XInteractionContinuation > > const & + document::NoSuchFilterRequest const & rRequest, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & rContinuations ) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionAbort > xAbort; - star::uno::Reference< - star::document::XInteractionFilterSelect > xFilterTransport; + uno::Reference< task::XInteractionAbort > xAbort; + uno::Reference< document::XInteractionFilterSelect > xFilterTransport; + getContinuations(rContinuations, &xAbort, &xFilterTransport); - sal_Int32 nCount = rContinuations.getLength(); - for( sal_Int32 nStep=0; nStep( - rContinuations[nStep], star::uno::UNO_QUERY ); - - if( ! xFilterTransport.is() ) - xFilterTransport = star::uno::Reference< - star::document::XInteractionFilterSelect >( - rContinuations[nStep], star::uno::UNO_QUERY ); - } - - // check neccessary ressources - if they doesn't exist - abort or + // check neccessary ressources - if they don't exist - abort or // break this operation if (!xAbort.is()) return; - if (!xFilterTransport.is() || !m_xServiceFactory.is()) + if (!xFilterTransport.is()) { xAbort->select(); return; } - star::uno::Reference< star::container::XContainerQuery > - xFilterContainer( m_xServiceFactory->createInstance( - ::rtl::OUString::createFromAscii( - "com.sun.star.document.FilterFactory") ), - star::uno::UNO_QUERY ); + uno::Reference< container::XContainerQuery > xFilterContainer; + try + { + xFilterContainer.set( m_xServiceFactory->createInstance( + ::rtl::OUString::createFromAscii( + "com.sun.star.document.FilterFactory") ), + uno::UNO_QUERY ); + } + catch ( uno::Exception const & ) + { + } + if (!xFilterContainer.is()) { xAbort->select(); @@ -2894,10 +2852,10 @@ UUIInteractionHelper::handleNoSuchFilterRequest( // find his filter vry easy by his UIName ...) // - We use "_query_all" here ... but we filter graphic filters // out by using DocumentService property later! - star::uno::Reference< star::container::XEnumeration > xFilters - = xFilterContainer->createSubSetEnumerationByQuery( - ::rtl::OUString::createFromAscii( - "_query_all:sort_prop=uiname:iflags=1:eflags=143360")); + uno::Reference< container::XEnumeration > xFilters + = xFilterContainer->createSubSetEnumerationByQuery( + ::rtl::OUString::createFromAscii( + "_query_all:sort_prop=uiname:iflags=1:eflags=143360")); while (xFilters->hasMoreElements()) { try @@ -2906,26 +2864,23 @@ UUIInteractionHelper::handleNoSuchFilterRequest( uui::FilterNamePair aPair; aPair.sInternal = lProps.getUnpackedValueOrDefault( - rtl::OUString::createFromAscii("Name"), ::rtl::OUString()); + rtl::OUString::createFromAscii("Name"), ::rtl::OUString()); aPair.sUI = lProps.getUnpackedValueOrDefault( - rtl::OUString::createFromAscii("UIName"), ::rtl::OUString()); - if ( - (!aPair.sInternal.Len()) || - (!aPair.sUI.Len() ) - ) + rtl::OUString::createFromAscii("UIName"), ::rtl::OUString()); + if ( (!aPair.sInternal.Len()) || (!aPair.sUI.Len() ) ) { continue; } lNames.push_back( aPair ); } - catch(const star::uno::RuntimeException&) - { - throw; - } - catch(const star::uno::Exception&) - { - continue; - } + catch(const uno::RuntimeException&) + { + throw; + } + catch(const uno::Exception&) + { + continue; + } } // no list available for showing @@ -2955,89 +2910,78 @@ UUIInteractionHelper::handleNoSuchFilterRequest( void UUIInteractionHelper::handleAmbigousFilterRequest( - star::document::AmbigousFilterRequest const & rRequest, - star::uno::Sequence< - star::uno::Reference< - star::task::XInteractionContinuation > > const & rContinuations) - SAL_THROW((star::uno::RuntimeException)) + document::AmbigousFilterRequest const & rRequest, + uno::Sequence< + uno::Reference< + task::XInteractionContinuation > > const & rContinuations) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionAbort > xAbort; - star::uno::Reference< - star::document::XInteractionFilterSelect > xFilterTransport; + uno::Reference< task::XInteractionAbort > xAbort; + uno::Reference< document::XInteractionFilterSelect > xFilterTransport; + getContinuations(rContinuations, &xAbort, &xFilterTransport); - sal_Int32 nCount = rContinuations.getLength(); - for( sal_Int32 nStep=0; nStep( - rContinuations[nStep], star::uno::UNO_QUERY ); + uui::FilterNameList lNames; - if( ! xFilterTransport.is() ) - xFilterTransport = star::uno::Reference< - star::document::XInteractionFilterSelect >( - rContinuations[nStep], star::uno::UNO_QUERY ); + uno::Reference< container::XNameContainer > xFilterContainer; + try + { + xFilterContainer.set( m_xServiceFactory->createInstance( + ::rtl::OUString::createFromAscii( + "com.sun.star.document.FilterFactory") ), + uno::UNO_QUERY ); + } + catch ( uno::Exception & ) + { } - uui::FilterNameList lNames; - - if( m_xServiceFactory.is() == sal_True ) + if( xFilterContainer.is() ) { - star::uno::Reference< star::container::XNameContainer > - xFilterContainer( m_xServiceFactory->createInstance( - ::rtl::OUString::createFromAscii( - "com.sun.star.document.FilterFactory") ), - star::uno::UNO_QUERY ); - if( xFilterContainer.is() == sal_True ) - { - star::uno::Any aPackedSet ; - star::uno::Sequence< star::beans::PropertyValue > lProps ; - sal_Int32 nStep ; - uui::FilterNamePair aPair ; + uno::Any aPackedSet ; + uno::Sequence< beans::PropertyValue > lProps ; + sal_Int32 nStep ; + uui::FilterNamePair aPair ; - try - { - aPackedSet - = xFilterContainer->getByName( rRequest.SelectedFilter ); - } - catch(const ::com::sun::star::container::NoSuchElementException&) - { - aPackedSet.clear(); - } - aPackedSet >>= lProps; - for( nStep=0; nStepgetByName( rRequest.SelectedFilter ); + } + catch(const container::NoSuchElementException&) + { + aPackedSet.clear(); + } + aPackedSet >>= lProps; + for( nStep=0; nStep>= sTemp; - aPair.sUI = sTemp; - aPair.sInternal = rRequest.SelectedFilter; - lNames.push_back( aPair ); - break; - } + ::rtl::OUString sTemp; + lProps[nStep].Value >>= sTemp; + aPair.sUI = sTemp; + aPair.sInternal = rRequest.SelectedFilter; + lNames.push_back( aPair ); + break; } + } - try - { - aPackedSet - = xFilterContainer->getByName( rRequest.DetectedFilter ); - } - catch(const ::com::sun::star::container::NoSuchElementException&) - { - aPackedSet.clear(); - } - aPackedSet >>= lProps; - for( nStep=0; nStepgetByName( rRequest.DetectedFilter ); + } + catch(const container::NoSuchElementException&) + { + aPackedSet.clear(); + } + aPackedSet >>= lProps; + for( nStep=0; nStep>= sTemp; - aPair.sUI = sTemp; - aPair.sInternal = rRequest.DetectedFilter; - lNames.push_back( aPair ); - break; - } + ::rtl::OUString sTemp; + lProps[nStep].Value >>= sTemp; + aPair.sUI = sTemp; + aPair.sInternal = rRequest.DetectedFilter; + lNames.push_back( aPair ); + break; } } } @@ -3067,124 +3011,103 @@ UUIInteractionHelper::handleAmbigousFilterRequest( void UUIInteractionHelper::handleGenericErrorRequest( sal_Int32 nErrorCode, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & rContinuations, + uno::Sequence< uno::Reference< + task::XInteractionContinuation > > const & rContinuations, bool bObtainErrorStringOnly, bool & bHasErrorString, rtl::OUString & rErrorString) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { if (bObtainErrorStringOnly) { bHasErrorString = isInformationalErrorMessageRequest(rContinuations); if (bHasErrorString) - { - String aErrorString; - ErrorHandler::GetErrorString(nErrorCode, aErrorString); - rErrorString = aErrorString; - } + { + String aErrorString; + ErrorHandler::GetErrorString(nErrorCode, aErrorString); + rErrorString = aErrorString; + } } else { - star::uno::Reference< star::task::XInteractionAbort > xAbort; - star::uno::Reference< star::task::XInteractionApprove > xApprove; - - sal_Int32 nCount = rContinuations.getLength(); - for( sal_Int32 nStep=0; nStep( - rContinuations[nStep], star::uno::UNO_QUERY ); + uno::Reference< task::XInteractionAbort > xAbort; + uno::Reference< task::XInteractionApprove > xApprove; + getContinuations(rContinuations, &xApprove, &xAbort); - if( ! xApprove.is() ) - xApprove - = star::uno::Reference< star::task::XInteractionApprove >( - rContinuations[nStep], star::uno::UNO_QUERY ); - } - - // Note: It's important to convert the transported long to the - // required unsigned long value. Otherwhise using as flag field - // can fail ... - ErrCode nError = (ErrCode)nErrorCode; - sal_Bool bWarning = !ERRCODE_TOERROR(nError); - - if ( nError == ERRCODE_SFX_BROKENSIGNATURE - || nError == ERRCODE_SFX_INCOMPLETE_ENCRYPTION ) - { - // the security warning need a special title - String aErrorString; - ErrorHandler::GetErrorString( nErrorCode, aErrorString ); + // Note: It's important to convert the transported long to the + // required unsigned long value. Otherwhise using as flag field + // can fail ... + ErrCode nError = (ErrCode)nErrorCode; + sal_Bool bWarning = !ERRCODE_TOERROR(nError); - std::auto_ptr< ResMgr > - xManager( ResMgr::CreateResMgr( CREATEVERSIONRESMGR_NAME( uui ) ) ); - ::rtl::OUString aTitle; - - try + if ( nError == ERRCODE_SFX_BROKENSIGNATURE + || nError == ERRCODE_SFX_INCOMPLETE_ENCRYPTION ) { - star::uno::Any aProductNameAny = - ::utl::ConfigManager::GetConfigManager()->GetDirectConfigProperty( - ::utl::ConfigManager::PRODUCTNAME ); - aProductNameAny >>= aTitle; - } catch( star::uno::Exception& ) - {} + // the security warning box needs a special title + String aErrorString; + ErrorHandler::GetErrorString( nErrorCode, aErrorString ); - ::rtl::OUString aErrTitle = String( ResId( nError == ERRCODE_SFX_BROKENSIGNATURE ? STR_WARNING_BROKENSIGNATURE_TITLE : STR_WARNING_INCOMPLETE_ENCRYPTION_TITLE, *xManager.get() ) ); + std::auto_ptr< ResMgr > xManager( + ResMgr::CreateResMgr( CREATEVERSIONRESMGR_NAME( uui ) ) ); + ::rtl::OUString aTitle; - if ( aTitle.getLength() && aErrTitle.getLength() ) - aTitle += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( " - " ) ); - aTitle += aErrTitle; + try + { + uno::Any aProductNameAny = + ::utl::ConfigManager::GetConfigManager() + ->GetDirectConfigProperty( + ::utl::ConfigManager::PRODUCTNAME ); + aProductNameAny >>= aTitle; + } + catch( uno::Exception& ) + { + } - executeMessageBox( aTitle, aErrorString, WB_OK ); - } - else - ErrorHandler::HandleError(nErrorCode); + ::rtl::OUString aErrTitle + = String( ResId( nError == ERRCODE_SFX_BROKENSIGNATURE + ? STR_WARNING_BROKENSIGNATURE_TITLE + : STR_WARNING_INCOMPLETE_ENCRYPTION_TITLE, + *xManager.get() ) ); - if (xApprove.is() && bWarning) - xApprove->select(); - else if (xAbort.is()) - xAbort->select(); - } -} + if ( aTitle.getLength() && aErrTitle.getLength() ) + aTitle += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( " - " ) ); + aTitle += aErrTitle; -namespace -{ - template< class INTERACTION_TYPE > - bool lcl_findContinuation( const Sequence< Reference< XInteractionContinuation > >& _rContinuations, - Reference< INTERACTION_TYPE >& _rContinuation ) - { - const Reference< XInteractionContinuation >* pContinuation = _rContinuations.getConstArray(); - const Reference< XInteractionContinuation >* pContinuationEnd = _rContinuations.getConstArray() + _rContinuations.getLength(); - while ( pContinuation != pContinuationEnd ) - { - if ( _rContinuation.set( *pContinuation++, UNO_QUERY ) ) - return true; + executeMessageBox( aTitle, aErrorString, WB_OK ); } - return false; + else + ErrorHandler::HandleError(nErrorCode); + + if (xApprove.is() && bWarning) + xApprove->select(); + else if (xAbort.is()) + xAbort->select(); } } void UUIInteractionHelper::handleMacroConfirmRequest( const ::rtl::OUString& aDocumentURL, - const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xZipStorage, + const uno::Reference< embed::XStorage >& xZipStorage, const ::rtl::OUString& aDocumentVersion, - const ::com::sun::star::uno::Sequence< ::com::sun::star::security::DocumentSignatureInformation > aSignInfo, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & rContinuations -) - SAL_THROW((star::uno::RuntimeException)) + const uno::Sequence< security::DocumentSignatureInformation > aSignInfo, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & + rContinuations ) + SAL_THROW((uno::RuntimeException)) { - Reference< XInteractionAbort > xAbort; lcl_findContinuation( rContinuations, xAbort ); - Reference< XInteractionApprove > xApprove; lcl_findContinuation( rContinuations, xApprove ); + uno::Reference< task::XInteractionAbort > xAbort; + uno::Reference< task::XInteractionApprove > xApprove; + getContinuations( rContinuations, &xApprove, &xAbort ); bool bApprove = false; - std::auto_ptr< ResMgr > pResMgr( ResMgr::CreateResMgr( CREATEVERSIONRESMGR_NAME( uui ) ) ); + std::auto_ptr< ResMgr > pResMgr( + ResMgr::CreateResMgr( CREATEVERSIONRESMGR_NAME( uui ) ) ); if ( pResMgr.get() ) { bool bShowSignatures = aSignInfo.getLength() > 0; - MacroWarning aWarning( getParentProperty(), bShowSignatures, *pResMgr.get() ); + MacroWarning aWarning( + getParentProperty(), bShowSignatures, *pResMgr.get() ); aWarning.SetDocumentURL( aDocumentURL ); if ( aSignInfo.getLength() > 1 ) @@ -3207,176 +3130,175 @@ UUIInteractionHelper::handleMacroConfirmRequest( void UUIInteractionHelper::handleFutureDocumentVersionUpdateRequest( - const FutureDocumentVersionProductUpdateRequest& _rRequest, - Sequence< Reference< XInteractionContinuation > > const & rContinuations -) - SAL_THROW((star::uno::RuntimeException)) + const task::FutureDocumentVersionProductUpdateRequest& _rRequest, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & + rContinuations ) + SAL_THROW((uno::RuntimeException)) { - Reference< XInteractionAbort > xAbort; lcl_findContinuation( rContinuations, xAbort ); - Reference< XInteractionApprove > xApprove; lcl_findContinuation( rContinuations, xApprove ); - Reference< XInteractionApprove > xAskLater; lcl_findContinuation( rContinuations, xAskLater ); + uno::Reference< task::XInteractionAbort > xAbort; + uno::Reference< task::XInteractionApprove > xApprove; + uno::Reference< task::XInteractionAskLater > xAskLater; + getContinuations( rContinuations, &xApprove, &xAbort, &xAskLater ); short nResult = RET_CANCEL; static bool s_bDeferredToNextSession = false; - // TODO: this static variable is somewhat hacky. Formerly (before the dialog was moved from SFX2 to the - // interaction handler implementation), this was stored in SFX_APP()'s impl structure, in member - // bODFVersionWarningLater. Of course, we do not have access to it here. - // - // A proper solution which I would envision would be: - // - There's a central implementation (this one here) of css.task.InteractionHandler - // - There's a configuration which maps UNO names to service names - // - If the handler is confronted with a request, it tries to find the name of the UNO structure describing - // the request in the said configuration. - // - If an entry is found, then - // - the respective service is instantiated - // - the component is queried for css.task.XInteractionHandler, and the request is delegated - // - if no entry is found, then the request is silenced (with calling the AbortContinuation, if possible) - // This way, the FutureDocumentVersionProductUpdateRequest could be handled in SFX (or any other - // suitable place), again, and we would only have one place where we remember the s_bDeferredToNextSession - // flag. - // - // The side effect (well, actually the more important effect) would be that we do not need to burden - // this central implementation with all interactions which are possible. Instead, separate parts of OOo - // can define/implement different requests. (for instance, everything which today is done in the - // css.sdb.InteractionHandler can then be routed through a "normal" interaction handler, where today we - // always need to tell people to instantiate the SDB-version of the handler, not the normal one.) + // TODO: this static variable is somewhat hacky. Formerly (before the dialog was moved from SFX2 to the + // interaction handler implementation), this was stored in SFX_APP()'s impl structure, in member + // bODFVersionWarningLater. Of course, we do not have access to it here. + // + // A proper solution which I would envision would be: + // - There's a central implementation (this one here) of css.task.InteractionHandler + // - There's a configuration which maps UNO names to service names + // - If the handler is confronted with a request, it tries to find the name of the UNO structure describing + // the request in the said configuration. + // - If an entry is found, then + // - the respective service is instantiated + // - the component is queried for css.task.XInteractionHandler, and the request is delegated + // - if no entry is found, then the request is silenced (with calling the AbortContinuation, if possible) + // This way, the FutureDocumentVersionProductUpdateRequest could be handled in SFX (or any other + // suitable place), again, and we would only have one place where we remember the s_bDeferredToNextSession + // flag. + // + // The side effect (well, actually the more important effect) would be that we do not need to burden + // this central implementation with all interactions which are possible. Instead, separate parts of OOo + // can define/implement different requests. (for instance, everything which today is done in the + // css.sdb.InteractionHandler can then be routed through a "normal" interaction handler, where today we + // always need to tell people to instantiate the SDB-version of the handler, not the normal one.) if ( !s_bDeferredToNextSession ) { - std::auto_ptr< ResMgr > pResMgr( ResMgr::CreateResMgr( CREATEVERSIONRESMGR_NAME( uui ) ) ); + std::auto_ptr< ResMgr > pResMgr( + ResMgr::CreateResMgr( CREATEVERSIONRESMGR_NAME( uui ) ) ); if ( pResMgr.get() ) { - ::uui::NewerVersionWarningDialog aDialog( getParentProperty(), _rRequest.DocumentODFVersion, *pResMgr.get() ); + ::uui::NewerVersionWarningDialog aDialog( + getParentProperty(), + _rRequest.DocumentODFVersion, + *pResMgr.get() ); nResult = aDialog.Execute(); } } switch ( nResult ) { - case RET_OK: if ( xApprove.is() ) xApprove->select(); break; - case RET_CANCEL: if ( xAbort.is() ) xAbort->select(); break; - case RET_ASK_LATER: if ( xAskLater.is() ) xAskLater->select(); s_bDeferredToNextSession = true; break; + case RET_OK: + if ( xApprove.is() ) + xApprove->select(); + break; + case RET_CANCEL: + if ( xAbort.is() ) + xAbort->select(); + break; + case RET_ASK_LATER: + if ( xAskLater.is() ) + xAskLater->select(); + s_bDeferredToNextSession = true; + break; default: - OSL_ENSURE( false, "UUIInteractionHelper::handleFutureDocumentVersionUpdateRequest: unexpected dialog return value!" ); + OSL_ENSURE( false, + "UUIInteractionHelper::handleFutureDocumentVersionUpdateRequest: " + "unexpected dialog return value!" ); break; } } void UUIInteractionHelper::handleFilterOptionsRequest( - star::document::FilterOptionsRequest const & rRequest, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & rContinuations) - SAL_THROW((com::sun::star::uno::RuntimeException)) + document::FilterOptionsRequest const & rRequest, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & + rContinuations) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionAbort > xAbort; - star::uno::Reference< - star::document::XInteractionFilterOptions > xFilterOptions; + uno::Reference< task::XInteractionAbort > xAbort; + uno::Reference< document::XInteractionFilterOptions > xFilterOptions; + getContinuations(rContinuations, &xAbort, &xFilterOptions); - sal_Int32 nCount = rContinuations.getLength(); - for( sal_Int32 nStep=0; nStep xFilterCFG; + try { - if( ! xAbort.is() ) - xAbort = star::uno::Reference< star::task::XInteractionAbort >( - rContinuations[nStep], star::uno::UNO_QUERY ); - - if( ! xFilterOptions.is() ) - xFilterOptions = star::uno::Reference< - star::document::XInteractionFilterOptions >( - rContinuations[nStep], star::uno::UNO_QUERY ); + xFilterCFG.set( m_xServiceFactory->createInstance( + ::rtl::OUString::createFromAscii( + "com.sun.star.document.FilterFactory" ) ), + uno::UNO_QUERY ); } - - star::uno::Reference< star::container::XNameAccess > xFilterCFG; - if( m_xServiceFactory.is() ) + catch ( uno::Exception const & ) { - xFilterCFG = star::uno::Reference< star::container::XNameAccess >( - m_xServiceFactory->createInstance( - ::rtl::OUString::createFromAscii( - "com.sun.star.document.FilterFactory" ) ), - star::uno::UNO_QUERY ); } if( xFilterCFG.is() && rRequest.rProperties.getLength() ) { - try { - ::rtl::OUString aFilterName; - sal_Int32 nPropCount = rRequest.rProperties.getLength(); - for( sal_Int32 ind = 0; ind < nPropCount; ++ind ) - { - rtl::OUString tmp = rRequest.rProperties[ind].Name; - if( rRequest.rProperties[ind].Name.equals( - ::rtl::OUString::createFromAscii("FilterName")) ) - { - rRequest.rProperties[ind].Value >>= aFilterName; - break; - } - } - - star::uno::Sequence < star::beans::PropertyValue > aProps; - if ( xFilterCFG->getByName( aFilterName ) >>= aProps ) + try { - sal_Int32 nPropertyCount = aProps.getLength(); - for( sal_Int32 nProperty=0; - nProperty < nPropertyCount; - ++nProperty ) - if( aProps[nProperty].Name.equals( - ::rtl::OUString::createFromAscii("UIComponent")) ) - { - ::rtl::OUString aServiceName; - aProps[nProperty].Value >>= aServiceName; - if( aServiceName.getLength() ) + ::rtl::OUString aFilterName; + sal_Int32 nPropCount = rRequest.rProperties.getLength(); + for( sal_Int32 ind = 0; ind < nPropCount; ++ind ) { - star::uno::Reference< - star::ui::dialogs::XExecutableDialog > - xFilterDialog( - m_xServiceFactory->createInstance( - aServiceName ), - star::uno::UNO_QUERY ); - star::uno::Reference< - star::beans::XPropertyAccess > - xFilterProperties( - xFilterDialog, - star::uno::UNO_QUERY ); - - if( xFilterDialog.is() && xFilterProperties.is() ) - { - star::uno::Reference< - star::document::XImporter > xImporter( - xFilterDialog, - star::uno::UNO_QUERY ); - if( xImporter.is() ) - xImporter->setTargetDocument( - star::uno::Reference< - star::lang::XComponent >( - rRequest.rModel, - star::uno::UNO_QUERY ) ); - - xFilterProperties->setPropertyValues( - rRequest.rProperties ); - - if( xFilterDialog->execute() ) + rtl::OUString tmp = rRequest.rProperties[ind].Name; + if( rRequest.rProperties[ind].Name.equals( + ::rtl::OUString::createFromAscii("FilterName")) ) { - xFilterOptions->setFilterOptions( - xFilterProperties - ->getPropertyValues() ); - xFilterOptions->select(); - return; - - } + rRequest.rProperties[ind].Value >>= aFilterName; + break; } } - break; + + uno::Sequence < beans::PropertyValue > aProps; + if ( xFilterCFG->getByName( aFilterName ) >>= aProps ) + { + sal_Int32 nPropertyCount = aProps.getLength(); + for( sal_Int32 nProperty=0; + nProperty < nPropertyCount; + ++nProperty ) + if( aProps[nProperty].Name.equals( + ::rtl::OUString::createFromAscii("UIComponent")) ) + { + ::rtl::OUString aServiceName; + aProps[nProperty].Value >>= aServiceName; + if( aServiceName.getLength() ) + { + uno::Reference< + ui::dialogs::XExecutableDialog > xFilterDialog( + m_xServiceFactory->createInstance( + aServiceName ), + uno::UNO_QUERY ); + uno::Reference< beans::XPropertyAccess > + xFilterProperties( xFilterDialog, + uno::UNO_QUERY ); + + if( xFilterDialog.is() && xFilterProperties.is() ) + { + uno::Reference< + document::XImporter > xImporter( + xFilterDialog, uno::UNO_QUERY ); + if( xImporter.is() ) + xImporter->setTargetDocument( + uno::Reference< lang::XComponent >( + rRequest.rModel, uno::UNO_QUERY ) ); + + xFilterProperties->setPropertyValues( + rRequest.rProperties ); + + if( xFilterDialog->execute() ) + { + xFilterOptions->setFilterOptions( + xFilterProperties->getPropertyValues() ); + xFilterOptions->select(); + return; + } + } + } + break; + } } } - } - catch( star::container::NoSuchElementException& ) - { - // the filter name is unknown - } - catch( star::uno::Exception& ) - { - } + catch( container::NoSuchElementException& ) + { + // the filter name is unknown + } + catch( uno::Exception& ) + { + } } xAbort->select(); @@ -3384,15 +3306,15 @@ UUIInteractionHelper::handleFilterOptionsRequest( void UUIInteractionHelper::handleErrorRequest( - star::task::InteractionClassification eClassification, + task::InteractionClassification eClassification, ErrCode nErrorCode, std::vector< rtl::OUString > const & rArguments, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & rContinuations, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & + rContinuations, bool bObtainErrorStringOnly, bool & bHasErrorString, rtl::OUString & rErrorString) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { rtl::OUString aMessage; { @@ -3448,13 +3370,12 @@ UUIInteractionHelper::handleErrorRequest( // really useful, because a single error text may well make sense // both with only an OK button and with RETRY and CANCEL buttons. - star::uno::Reference< star::task::XInteractionApprove > xApprove; - star::uno::Reference< star::task::XInteractionDisapprove > xDisapprove; - star::uno::Reference< star::task::XInteractionRetry > xRetry; - star::uno::Reference< star::task::XInteractionAbort > xAbort; + uno::Reference< task::XInteractionApprove > xApprove; + uno::Reference< task::XInteractionDisapprove > xDisapprove; + uno::Reference< task::XInteractionRetry > xRetry; + uno::Reference< task::XInteractionAbort > xAbort; getContinuations( - rContinuations, - &xApprove, &xDisapprove, &xRetry, &xAbort, 0, 0, 0, 0, 0); + rContinuations, &xApprove, &xDisapprove, &xRetry, &xAbort); // The following mapping uses the bit mask // Approve = 8, @@ -3560,19 +3481,17 @@ UUIInteractionHelper::handleErrorRequest( void UUIInteractionHelper::handleBrokenPackageRequest( std::vector< rtl::OUString > const & rArguments, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & - rContinuations, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & + rContinuations, bool bObtainErrorStringOnly, bool & bHasErrorString, rtl::OUString & rErrorString) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionApprove > xApprove; - star::uno::Reference< star::task::XInteractionDisapprove > xDisapprove; - star::uno::Reference< star::task::XInteractionAbort > xAbort; - getContinuations( - rContinuations, &xApprove, &xDisapprove, 0, &xAbort, 0, 0, 0, 0, 0); + uno::Reference< task::XInteractionApprove > xApprove; + uno::Reference< task::XInteractionDisapprove > xDisapprove; + uno::Reference< task::XInteractionAbort > xAbort; + getContinuations(rContinuations, &xApprove, &xDisapprove, &xAbort); ErrCode nErrorCode; if( xApprove.is() && xDisapprove.is() ) @@ -3590,7 +3509,7 @@ UUIInteractionHelper::handleBrokenPackageRequest( { vos::OGuard aGuard(Application::GetSolarMutex()); std::auto_ptr< ResMgr > xManager( - ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); + ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); if (!xManager.get()) return; @@ -3622,10 +3541,10 @@ UUIInteractionHelper::handleBrokenPackageRequest( else return; - star::uno::Any aProductNameAny = + uno::Any aProductNameAny = ::utl::ConfigManager::GetConfigManager()->GetDirectConfigProperty( ::utl::ConfigManager::PRODUCTNAME ); - star::uno::Any aProductVersionAny = + uno::Any aProductVersionAny = ::utl::ConfigManager::GetConfigManager()->GetDirectConfigProperty( ::utl::ConfigManager::PRODUCTVERSION ); ::rtl::OUString aProductName, aProductVersion; @@ -3667,17 +3586,15 @@ void UUIInteractionHelper::handleLockedDocumentRequest( const ::rtl::OUString& aDocumentURL, const ::rtl::OUString& aInfo, - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & - rContinuations, + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & + rContinuations, sal_uInt16 nMode ) - SAL_THROW((star::uno::RuntimeException)) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionApprove > xApprove; - star::uno::Reference< star::task::XInteractionDisapprove > xDisapprove; - star::uno::Reference< star::task::XInteractionAbort > xAbort; - getContinuations( - rContinuations, &xApprove, &xDisapprove, 0, &xAbort, 0, 0, 0, 0, 0); + uno::Reference< task::XInteractionApprove > xApprove; + uno::Reference< task::XInteractionDisapprove > xDisapprove; + uno::Reference< task::XInteractionAbort > xAbort; + getContinuations(rContinuations, &xApprove, &xDisapprove, &xAbort); if ( !xApprove.is() || !xDisapprove.is() || !xAbort.is() ) return; @@ -3686,7 +3603,7 @@ UUIInteractionHelper::handleLockedDocumentRequest( { vos::OGuard aGuard(Application::GetSolarMutex()); std::auto_ptr< ResMgr > xManager( - ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); + ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); if (!xManager.get()) return; @@ -3698,8 +3615,10 @@ UUIInteractionHelper::handleLockedDocumentRequest( if ( nMode == UUI_DOC_LOAD_LOCK ) { aArguments.push_back( aInfo.getLength() - ? aInfo - : ::rtl::OUString( String( ResId( STR_UNKNOWNUSER, *xManager.get() ) ) ) ); + ? aInfo + : ::rtl::OUString( String( + ResId( STR_UNKNOWNUSER, + *xManager.get() ) ) ) ); aMessage = String( ResId( STR_OPENLOCKED_MSG, *xManager.get() ) ); aMessage = replaceMessageWithArguments( aMessage, aArguments ); @@ -3710,23 +3629,33 @@ UUIInteractionHelper::handleLockedDocumentRequest( else if ( nMode == UUI_DOC_SAVE_LOCK ) { aArguments.push_back( aInfo.getLength() - ? aInfo - : ::rtl::OUString( String( ResId( STR_UNKNOWNUSER, *xManager.get() ) ) ) ); + ? aInfo + : ::rtl::OUString( String( + ResId( STR_UNKNOWNUSER, + *xManager.get() ) ) ) ); aMessage = String( ResId( STR_TRYLATER_MSG, *xManager.get() ) ); aMessage = replaceMessageWithArguments( aMessage, aArguments ); - std::auto_ptr< TryLaterQueryBox > xDialog(new TryLaterQueryBox( - getParentProperty(), xManager.get(), aMessage ) ); + std::auto_ptr< TryLaterQueryBox > xDialog( + new TryLaterQueryBox( + getParentProperty(), xManager.get(), aMessage ) ); nResult = xDialog->Execute(); } - else if ( nMode == UUI_DOC_OWN_LOAD_LOCK || nMode == UUI_DOC_OWN_SAVE_LOCK ) + else if ( nMode == UUI_DOC_OWN_LOAD_LOCK || + nMode == UUI_DOC_OWN_SAVE_LOCK ) { aArguments.push_back( aInfo ); - aMessage = String( ResId( nMode == UUI_DOC_OWN_SAVE_LOCK ? STR_ALREADYOPEN_SAVE_MSG : STR_ALREADYOPEN_MSG, *xManager.get() ) ); + aMessage = String( ResId( nMode == UUI_DOC_OWN_SAVE_LOCK + ? STR_ALREADYOPEN_SAVE_MSG + : STR_ALREADYOPEN_MSG, + *xManager.get() ) ); aMessage = replaceMessageWithArguments( aMessage, aArguments ); - std::auto_ptr< AlreadyOpenQueryBox > xDialog(new AlreadyOpenQueryBox( - getParentProperty(), xManager.get(), aMessage, nMode == UUI_DOC_OWN_SAVE_LOCK ) ); + std::auto_ptr< AlreadyOpenQueryBox > xDialog( + new AlreadyOpenQueryBox( getParentProperty(), + xManager.get(), + aMessage, + nMode == UUI_DOC_OWN_SAVE_LOCK ) ); nResult = xDialog->Execute(); } @@ -3739,23 +3668,21 @@ UUIInteractionHelper::handleLockedDocumentRequest( } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface >()); + uno::Reference< uno::XInterface >()); } } void UUIInteractionHelper::handleChangedByOthersRequest( - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & - rContinuations ) - SAL_THROW((star::uno::RuntimeException)) + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & + rContinuations ) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionApprove > xApprove; - star::uno::Reference< star::task::XInteractionAbort > xAbort; - getContinuations( - rContinuations, &xApprove, 0, 0, &xAbort, 0, 0, 0, 0, 0); + uno::Reference< task::XInteractionApprove > xApprove; + uno::Reference< task::XInteractionAbort > xAbort; + getContinuations(rContinuations, &xApprove, &xAbort); if ( !xApprove.is() || !xAbort.is() ) return; @@ -3764,12 +3691,12 @@ UUIInteractionHelper::handleChangedByOthersRequest( { vos::OGuard aGuard(Application::GetSolarMutex()); std::auto_ptr< ResMgr > xManager( - ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); + ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); if (!xManager.get()) return; - std::auto_ptr< FileChangedQueryBox > xDialog(new FileChangedQueryBox( - getParentProperty(), xManager.get() ) ); + std::auto_ptr< FileChangedQueryBox > xDialog( + new FileChangedQueryBox( getParentProperty(), xManager.get() ) ); sal_Int32 nResult = xDialog->Execute(); if ( nResult == RET_YES ) @@ -3779,23 +3706,21 @@ UUIInteractionHelper::handleChangedByOthersRequest( } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface >()); + uno::Reference< uno::XInterface >()); } } void UUIInteractionHelper::handleLockFileIgnoreRequest( - star::uno::Sequence< star::uno::Reference< - star::task::XInteractionContinuation > > const & - rContinuations ) - SAL_THROW((star::uno::RuntimeException)) + uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & + rContinuations ) + SAL_THROW((uno::RuntimeException)) { - star::uno::Reference< star::task::XInteractionApprove > xApprove; - star::uno::Reference< star::task::XInteractionAbort > xAbort; - getContinuations( - rContinuations, &xApprove, 0, 0, &xAbort, 0, 0, 0, 0, 0); + uno::Reference< task::XInteractionApprove > xApprove; + uno::Reference< task::XInteractionAbort > xAbort; + getContinuations(rContinuations, &xApprove, &xAbort); if ( !xApprove.is() || !xAbort.is() ) return; @@ -3804,12 +3729,12 @@ UUIInteractionHelper::handleLockFileIgnoreRequest( { vos::OGuard aGuard(Application::GetSolarMutex()); std::auto_ptr< ResMgr > xManager( - ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); + ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui))); if (!xManager.get()) return; - std::auto_ptr< LockFailedQueryBox > xDialog(new LockFailedQueryBox( - getParentProperty(), xManager.get() ) ); + std::auto_ptr< LockFailedQueryBox > xDialog( + new LockFailedQueryBox( getParentProperty(), xManager.get() ) ); sal_Int32 nResult = xDialog->Execute(); if ( nResult == RET_OK ) @@ -3819,10 +3744,8 @@ UUIInteractionHelper::handleLockFileIgnoreRequest( } catch (std::bad_alloc const &) { - throw star::uno::RuntimeException( + throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - star::uno::Reference< star::uno::XInterface >()); + uno::Reference< uno::XInterface >()); } } - - diff --git a/uui/source/iahndl.hxx b/uui/source/iahndl.hxx index 5693a5cf149b..aba8a1fd45ad 100644 --- a/uui/source/iahndl.hxx +++ b/uui/source/iahndl.hxx @@ -31,10 +31,7 @@ #ifndef UUI_IAHNDL_HXX #define UUI_IAHNDL_HXX -#ifndef INCLUDED_VECTOR #include -#define INCLUDED_VECTOR -#endif #include "osl/mutex.hxx" #include "com/sun/star/uno/Reference.hxx" #include "com/sun/star/uno/Sequence.hxx" @@ -65,25 +62,6 @@ struct CntHTTPCookieRequest; #define UUI_DOC_SAVE_LOCK 2 #define UUI_DOC_OWN_SAVE_LOCK 3 -//============================================================================ -/** Information about a InteractionHandler - */ -struct InteractionHandlerData -{ - /** The UNO service name to use to instanciate the content provider. - */ - rtl::OUString ServiceName; - - InteractionHandlerData() {}; - InteractionHandlerData( const rtl::OUString & rService) - : ServiceName( rService ){} -}; - -typedef std::vector< InteractionHandlerData > InteractionHandlerDataList; - -namespace cssu = com::sun::star::uno; -namespace dcss = ::com::sun::star; - namespace com { namespace sun { namespace star { namespace document { class AmbigousFilterRequest; @@ -109,80 +87,102 @@ namespace com { namespace sun { namespace star { } } } } +//============================================================================ +struct InteractionHandlerData +{ + /** The UNO service name to use to instanciate the content provider. + */ + rtl::OUString ServiceName; + + InteractionHandlerData() {}; + InteractionHandlerData(const rtl::OUString & rService) + : ServiceName( rService ){} +}; + +typedef std::vector< InteractionHandlerData > InteractionHandlerDataList; + +//============================================================================ class UUIInteractionHelper { private: osl::Mutex m_aPropertyMutex; com::sun::star::uno::Reference< - com::sun::star::lang::XMultiServiceFactory > - m_xServiceFactory; + com::sun::star::lang::XMultiServiceFactory > m_xServiceFactory; com::sun::star::uno::Sequence< com::sun::star::uno::Any > m_aProperties; UUIInteractionHelper(UUIInteractionHelper &); // not implemented void operator =(UUIInteractionHelper); // not implemented public: - UUIInteractionHelper(com::sun::star::uno::Reference< - com::sun::star::lang::XMultiServiceFactory > - const & rServiceFactory, - com::sun::star::uno::Sequence< - com::sun::star::uno::Any > const & rArguments) + UUIInteractionHelper( + com::sun::star::uno::Reference< + com::sun::star::lang::XMultiServiceFactory > const & rServiceFactory, + com::sun::star::uno::Sequence< + com::sun::star::uno::Any > const & rArguments) SAL_THROW(()); - UUIInteractionHelper(com::sun::star::uno::Reference< - com::sun::star::lang::XMultiServiceFactory > - const & rServiceFactory) + UUIInteractionHelper( + com::sun::star::uno::Reference< + com::sun::star::lang::XMultiServiceFactory > const & rServiceFactory) SAL_THROW(()); ~UUIInteractionHelper() SAL_THROW(()); bool - handleRequest(com::sun::star::uno::Reference< - com::sun::star::task::XInteractionRequest > const & - rRequest) - throw (com::sun::star::uno::RuntimeException); + handleRequest( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest) + SAL_THROW((com::sun::star::uno::RuntimeException)); com::sun::star::beans::Optional< rtl::OUString > - getStringFromRequest(com::sun::star::uno::Reference< - com::sun::star::task::XInteractionRequest > const & - rRequest) - throw (com::sun::star::uno::RuntimeException); + getStringFromRequest( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest) + SAL_THROW((com::sun::star::uno::RuntimeException)); private: bool - handle_impl(com::sun::star::uno::Reference< - com::sun::star::task::XInteractionRequest > const & - rRequest) - throw (com::sun::star::uno::RuntimeException); + handle_impl( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest) + SAL_THROW((com::sun::star::uno::RuntimeException)); void - GetInteractionHandlerList(InteractionHandlerDataList &rdataList); + getInteractionHandlerList(InteractionHandlerDataList &rdataList); sal_Bool isDomainMatch( rtl::OUString hostName, rtl::OUString certHostName); + static long handlerequest(void* pHandleData, void* pInteractionHandler); com::sun::star::beans::Optional< rtl::OUString > - getStringFromRequest_impl(com::sun::star::uno::Reference< - com::sun::star::task::XInteractionRequest > const & - rRequest) - throw (com::sun::star::uno::RuntimeException); + getStringFromRequest_impl( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest) + SAL_THROW((com::sun::star::uno::RuntimeException)); static long getstringfromrequest(void* pHandleData, void* pInteractionHandler); - Window * getParentProperty() SAL_THROW(()); + Window * + getParentProperty() + SAL_THROW(()); - ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow> getParentXWindow() SAL_THROW(()); + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow> + getParentXWindow() + SAL_THROW(()); - rtl::OUString getContextProperty() SAL_THROW(()); + rtl::OUString + getContextProperty() + SAL_THROW(()); com::sun::star::uno::Reference< com::sun::star::task::XInteractionHandler > getInteractionHandler() const SAL_THROW((com::sun::star::uno::RuntimeException)); - void executeLoginDialog(LoginErrorInfo & rInfo, - rtl::OUString const & rRealm) + void + executeLoginDialog(LoginErrorInfo & rInfo, + rtl::OUString const & rRealm) SAL_THROW((com::sun::star::uno::RuntimeException)); void @@ -193,40 +193,48 @@ private: void executePasswordDialog(LoginErrorInfo & rInfo, com::sun::star::task::PasswordRequestMode nMode, - ::rtl::OUString aDocumentName) + ::rtl::OUString aDocumentName) SAL_THROW((com::sun::star::uno::RuntimeException)); void executeMSPasswordDialog(LoginErrorInfo & rInfo, - com::sun::star::task::PasswordRequestMode nMode, - ::rtl::OUString aDocumentName) + com::sun::star::task::PasswordRequestMode nMode, + ::rtl::OUString aDocumentName) SAL_THROW((com::sun::star::uno::RuntimeException)); - void executeCookieDialog(CntHTTPCookieRequest & rRequest) + void + executeCookieDialog(CntHTTPCookieRequest & rRequest) SAL_THROW((com::sun::star::uno::RuntimeException)); - void executeFilterDialog(rtl::OUString const & rURL , - uui::FilterNameList const & rFilters, - rtl::OUString & rFilter ) + void + executeFilterDialog(rtl::OUString const & rURL , + uui::FilterNameList const & rFilters, + rtl::OUString & rFilter ) SAL_THROW((com::sun::star::uno::RuntimeException)); - sal_Bool executeUnknownAuthDialog( const cssu::Reference< dcss::security::XCertificate >& rXCert ) + sal_Bool + executeUnknownAuthDialog( + const com::sun::star::uno::Reference< + com::sun::star::security::XCertificate >& rXCert ) SAL_THROW((com::sun::star::uno::RuntimeException)); - sal_Bool executeSSLWarnDialog( const cssu::Reference< dcss::security::XCertificate >& rXCert, - sal_Int32 const & failures, - const rtl::OUString & hostName) + sal_Bool + executeSSLWarnDialog( + const com::sun::star::uno::Reference< + com::sun::star::security::XCertificate >& rXCert, + sal_Int32 const & failures, + const rtl::OUString & hostName) SAL_THROW((com::sun::star::uno::RuntimeException)); rtl::OUString getLocalizedDatTimeStr( ::com::sun::star::util::DateTime aDateTime ); USHORT - executeErrorDialog(com::sun::star::task::InteractionClassification - eClassification, - rtl::OUString const & rContext, - rtl::OUString const & rMessage, - WinBits nButtonMask ) + executeErrorDialog( + com::sun::star::task::InteractionClassification eClassification, + rtl::OUString const & rContext, + rtl::OUString const & rMessage, + WinBits nButtonMask ) SAL_THROW((com::sun::star::uno::RuntimeException)); USHORT @@ -235,13 +243,33 @@ private: WinBits nButtonMask ) SAL_THROW((com::sun::star::uno::RuntimeException)); + //===================================================================== + bool handleMessageboxRequests( + ::com::sun::star::uno::Reference< + ::com::sun::star::task::XInteractionRequest > const & rRequest, + bool bObtainErrorStringOnly, + bool & bHasErrorString, + rtl::OUString & rErrorString); + + bool handleErrorHandlerRequests( + ::com::sun::star::uno::Reference< + ::com::sun::star::task::XInteractionRequest > const & rRequest, + bool bObtainErrorStringOnly, + bool & bHasErrorString, + rtl::OUString & rErrorString); + + bool handleDialogRequests( + ::com::sun::star::uno::Reference< + ::com::sun::star::task::XInteractionRequest > const & rRequest); + + //===================================================================== void handleAuthenticationRequest( com::sun::star::ucb::AuthenticationRequest const & rRequest, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations, + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations, rtl::OUString const & rURL) SAL_THROW((com::sun::star::uno::RuntimeException)); @@ -249,83 +277,83 @@ private: handleCertificateValidationRequest( com::sun::star::ucb::CertificateValidationRequest const & rRequest, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleNameClashResolveRequest( com::sun::star::ucb::NameClashResolveRequest const & rRequest, - com::sun::star::uno::Sequence< com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::uno::Sequence< + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleMasterPasswordRequest( com::sun::star::task::PasswordRequestMode nMode, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations) SAL_THROW((com::sun::star::uno::RuntimeException)); - void handlePasswordRequest( com::sun::star::task::PasswordRequestMode nMode, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - ::rtl::OUString aDocumentName = ::rtl::OUString()) + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations, + ::rtl::OUString aDocumentName = ::rtl::OUString()) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleMSPasswordRequest( com::sun::star::task::PasswordRequestMode nMode, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - ::rtl::OUString aDocumentName = ::rtl::OUString()) + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations, + ::rtl::OUString aDocumentName = ::rtl::OUString()) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleCookiesRequest( com::sun::star::ucb::HandleCookiesRequest const & rRequest, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleNoSuchFilterRequest( com::sun::star::document::NoSuchFilterRequest const & rRequest, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleAmbigousFilterRequest( com::sun::star::document::AmbigousFilterRequest const & rRequest, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleFilterOptionsRequest( com::sun::star::document::FilterOptionsRequest const & rRequest, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations) SAL_THROW((com::sun::star::uno::RuntimeException)); void @@ -334,89 +362,71 @@ private: ErrCode nErrorCode, std::vector< rtl::OUString > const & rArguments, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - bool bObtainErrorStringOnly, - bool & bHasErrorString, - rtl::OUString & rErrorString) + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations, + bool bObtainErrorStringOnly, + bool & bHasErrorString, + rtl::OUString & rErrorString) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleGenericErrorRequest( - sal_Int32 nErrorCode, + sal_Int32 nErrorCode, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - bool bObtainErrorStringOnly, - bool & bHasErrorString, - rtl::OUString & rErrorString) + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations, + bool bObtainErrorStringOnly, + bool & bHasErrorString, + rtl::OUString & rErrorString) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleMacroConfirmRequest( const ::rtl::OUString& aDocumentURL, - const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xZipStorage, + const ::com::sun::star::uno::Reference< + ::com::sun::star::embed::XStorage >& xZipStorage, const ::rtl::OUString& aDocumentVersion, - const ::com::sun::star::uno::Sequence< ::com::sun::star::security::DocumentSignatureInformation > aSignInfo, + const ::com::sun::star::uno::Sequence< + ::com::sun::star::security::DocumentSignatureInformation > + aSignInfo, com::sun::star::uno::Sequence< com::sun::star::uno::Reference< com::sun::star::task::XInteractionContinuation > > const & - rContinuations - ) + rContinuations) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleFutureDocumentVersionUpdateRequest( - const ::com::sun::star::task::FutureDocumentVersionProductUpdateRequest& _rRequest, + const ::com::sun::star::task::FutureDocumentVersionProductUpdateRequest& + _rRequest, com::sun::star::uno::Sequence< com::sun::star::uno::Reference< com::sun::star::task::XInteractionContinuation > > const & - rContinuations - ) + rContinuations) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleBrokenPackageRequest( - std::vector< rtl::OUString > const & rArguments, - ::com::sun::star::uno::Sequence< - ::com::sun::star::uno::Reference< - ::com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - bool bObtainErrorStringOnly, - bool & bHasErrorString, - rtl::OUString & rErrorString) + std::vector< rtl::OUString > const & rArguments, + ::com::sun::star::uno::Sequence< + ::com::sun::star::uno::Reference< + ::com::sun::star::task::XInteractionContinuation > > const & + rContinuations, + bool bObtainErrorStringOnly, + bool & bHasErrorString, + rtl::OUString & rErrorString) SAL_THROW((::com::sun::star::uno::RuntimeException)); - bool handleMessageboxRequests( - ::com::sun::star::uno::Reference< - ::com::sun::star::task::XInteractionRequest > const & - rRequest, - bool bObtainErrorStringOnly, - bool & bHasErrorString, - rtl::OUString & rErrorString); - - bool handleDialogRequests( - ::com::sun::star::uno::Reference< - ::com::sun::star::task::XInteractionRequest > const & - rRequest); - - bool handleErrorHandlerRequests( - ::com::sun::star::uno::Reference< - ::com::sun::star::task::XInteractionRequest > const & - rRequest, - bool bObtainErrorStringOnly, - bool & bHasErrorString, - rtl::OUString & rErrorString); - void handleLockedDocumentRequest( - const ::rtl::OUString& aDocumentURL, - const ::rtl::OUString& aInfo, - ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< - ::com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - sal_uInt16 nMode ) + const ::rtl::OUString& aDocumentURL, + const ::rtl::OUString& aInfo, + ::com::sun::star::uno::Sequence< + ::com::sun::star::uno::Reference< + ::com::sun::star::task::XInteractionContinuation > > const & + rContinuations, + sal_uInt16 nMode ) SAL_THROW((::com::sun::star::uno::RuntimeException)); void handleChangedByOthersRequest( @@ -430,7 +440,6 @@ private: ::com::sun::star::task::XInteractionContinuation > > const & rContinuations ) SAL_THROW((::com::sun::star::uno::RuntimeException)); - }; #endif // UUI_IAHNDL_HXX -- cgit v1.2.3 From ca5ed72ceb4ec26d5867b7e1abfc7a2f176cf181 Mon Sep 17 00:00:00 2001 From: Kai Sommerfeld Date: Wed, 6 Jan 2010 14:37:09 +0100 Subject: whitespace cleanup. --- sfx2/source/doc/doctempl.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/doc/doctempl.cxx b/sfx2/source/doc/doctempl.cxx index f1b117f6a1c9..e43da0b0bacc 100644 --- a/sfx2/source/doc/doctempl.cxx +++ b/sfx2/source/doc/doctempl.cxx @@ -794,12 +794,12 @@ String SfxDocumentTemplates::GetDefaultTemplatePath INetURLObject aTemplateObj( pImp->GetRootURL() ); aTemplateObj.insertName( aGroupName, false, - INetURLObject::LAST_SEGMENT, true, - INetURLObject::ENCODE_ALL ); + INetURLObject::LAST_SEGMENT, true, + INetURLObject::ENCODE_ALL ); aTemplateObj.insertName( aTitle, false, - INetURLObject::LAST_SEGMENT, true, - INetURLObject::ENCODE_ALL ); + INetURLObject::LAST_SEGMENT, true, + INetURLObject::ENCODE_ALL ); ::rtl::OUString aResult; -- cgit v1.2.3 From 93551bdf06411cbb37acf68192c94a41c146a03c Mon Sep 17 00:00:00 2001 From: Kai Sommerfeld Date: Wed, 6 Jan 2010 16:46:36 +0100 Subject: #i61429# - Adapted UCB clients to deprecated XContentCreator interface. --- desktop/source/deployment/misc/dp_ucb.cxx | 75 +++++++++--------- fileaccess/source/FileAccess.cxx | 90 ++++++++++------------ fpicker/source/office/fpsmartcontent.cxx | 31 ++++---- sfx2/source/doc/doctempl.cxx | 1 - .../CheckTransientDocumentsDocumentContent.java | 11 ++- 5 files changed, 95 insertions(+), 113 deletions(-) (limited to 'sfx2') diff --git a/desktop/source/deployment/misc/dp_ucb.cxx b/desktop/source/deployment/misc/dp_ucb.cxx index 8a4f55caae1a..013ba0e2ce23 100644 --- a/desktop/source/deployment/misc/dp_ucb.cxx +++ b/desktop/source/deployment/misc/dp_ucb.cxx @@ -40,7 +40,6 @@ #include "xmlscript/xml_helper.hxx" #include "com/sun/star/io/XInputStream.hpp" #include "com/sun/star/ucb/CommandFailedException.hpp" -#include "com/sun/star/ucb/XContentCreator.hpp" #include "com/sun/star/ucb/ContentInfo.hpp" #include "com/sun/star/ucb/ContentInfoAttribute.hpp" @@ -130,50 +129,46 @@ bool create_folder( if (! create_folder( &parentContent, url.copy( 0, slash ), xCmdEnv, throw_exc )) return false; - Reference xCreator( parentContent.get(), UNO_QUERY ); - if (xCreator.is()) + const Any title( ::rtl::Uri::decode( url.copy( slash + 1 ), + rtl_UriDecodeWithCharset, + RTL_TEXTENCODING_UTF8 ) ); + const Sequence infos( + parentContent.queryCreatableContentsInfo() ); + for ( sal_Int32 pos = 0; pos < infos.getLength(); ++pos ) { - const Any title( ::rtl::Uri::decode( url.copy( slash + 1 ), - rtl_UriDecodeWithCharset, - RTL_TEXTENCODING_UTF8 ) ); - const Sequence infos( - xCreator->queryCreatableContentsInfo() ); - for ( sal_Int32 pos = 0; pos < infos.getLength(); ++pos ) + // look KIND_FOLDER: + ContentInfo const & info = infos[ pos ]; + if ((info.Attributes & ContentInfoAttribute::KIND_FOLDER) != 0) { - // look KIND_FOLDER: - ContentInfo const & info = infos[ pos ]; - if ((info.Attributes & ContentInfoAttribute::KIND_FOLDER) != 0) - { - // make sure the only required bootstrap property is "Title": - Sequence const & rProps = info.Properties; - if (rProps.getLength() != 1 || - !rProps[ 0 ].Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM("Title") )) - continue; + // make sure the only required bootstrap property is "Title": + Sequence const & rProps = info.Properties; + if (rProps.getLength() != 1 || + !rProps[ 0 ].Name.equalsAsciiL( + RTL_CONSTASCII_STRINGPARAM("Title") )) + continue; - try { - if (parentContent.insertNewContent( - info.Type, - Sequence( &StrTitle::get(), 1 ), - Sequence( &title, 1 ), - ucb_content )) { - if (ret_ucb_content != 0) - *ret_ucb_content = ucb_content; - return true; - } + try { + if (parentContent.insertNewContent( + info.Type, + Sequence( &StrTitle::get(), 1 ), + Sequence( &title, 1 ), + ucb_content )) { + if (ret_ucb_content != 0) + *ret_ucb_content = ucb_content; + return true; } - catch (RuntimeException &) { + } + catch (RuntimeException &) { + throw; + } + catch (CommandFailedException &) { + // Interaction Handler already handled the error + // that has occured... + } + catch (Exception &) { + if (throw_exc) throw; - } - catch (CommandFailedException &) { - // Interaction Handler already handled the error - // that has occured... - } - catch (Exception &) { - if (throw_exc) - throw; - return false; - } + return false; } } } diff --git a/fileaccess/source/FileAccess.cxx b/fileaccess/source/FileAccess.cxx index 5d568dc994cb..3f387afe4b4c 100644 --- a/fileaccess/source/FileAccess.cxx +++ b/fileaccess/source/FileAccess.cxx @@ -61,7 +61,6 @@ #include #include #include -#include #include #include @@ -480,11 +479,7 @@ void OFileAccess::createFolder( const rtl::OUString& NewFolderURL ) ucbhelper::Content aCnt( aURL.GetMainURL( INetURLObject::NO_DECODE ), mxEnvironment ); - Reference< XContentCreator > xCreator = Reference< XContentCreator >( aCnt.get(), UNO_QUERY ); - if ( !xCreator.is() ) - return; - - Sequence< ContentInfo > aInfo = xCreator->queryCreatableContentsInfo(); + Sequence< ContentInfo > aInfo = aCnt.queryCreatableContentsInfo(); sal_Int32 nCount = aInfo.getLength(); if ( nCount == 0 ) return; @@ -758,56 +753,51 @@ bool OFileAccess::createNewFile( const rtl::OUString & rParentURL, { ucbhelper::Content aParentCnt( rParentURL, mxEnvironment ); - Reference< XContentCreator > xCreator - = Reference< XContentCreator >( aParentCnt.get(), UNO_QUERY ); - if ( xCreator.is() ) - { - Sequence< ContentInfo > aInfo = xCreator->queryCreatableContentsInfo(); - sal_Int32 nCount = aInfo.getLength(); - if ( nCount == 0 ) - return false; + Sequence< ContentInfo > aInfo = aParentCnt.queryCreatableContentsInfo(); + sal_Int32 nCount = aInfo.getLength(); + if ( nCount == 0 ) + return false; - for ( sal_Int32 i = 0; i < nCount; ++i ) + for ( sal_Int32 i = 0; i < nCount; ++i ) + { + const ContentInfo & rCurr = aInfo[i]; + if ( ( rCurr.Attributes + & ContentInfoAttribute::KIND_DOCUMENT ) && + ( rCurr.Attributes + & ContentInfoAttribute::INSERT_WITH_INPUTSTREAM ) ) { - const ContentInfo & rCurr = aInfo[i]; - if ( ( rCurr.Attributes - & ContentInfoAttribute::KIND_DOCUMENT ) && - ( rCurr.Attributes - & ContentInfoAttribute::INSERT_WITH_INPUTSTREAM ) ) - { - // Make sure the only required bootstrap property is - // "Title", - const Sequence< Property > & rProps = rCurr.Properties; - if ( rProps.getLength() != 1 ) - continue; + // Make sure the only required bootstrap property is + // "Title", + const Sequence< Property > & rProps = rCurr.Properties; + if ( rProps.getLength() != 1 ) + continue; - if ( !rProps[ 0 ].Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "Title" ) ) ) - continue; + if ( !rProps[ 0 ].Name.equalsAsciiL( + RTL_CONSTASCII_STRINGPARAM( "Title" ) ) ) + continue; - Sequence aNames(1); - rtl::OUString* pNames = aNames.getArray(); - pNames[0] = rtl::OUString( - RTL_CONSTASCII_USTRINGPARAM( "Title" ) ); - Sequence< Any > aValues(1); - Any* pValues = aValues.getArray(); - pValues[0] = makeAny( rtl::OUString( rTitle ) ); + Sequence aNames(1); + rtl::OUString* pNames = aNames.getArray(); + pNames[0] = rtl::OUString( + RTL_CONSTASCII_USTRINGPARAM( "Title" ) ); + Sequence< Any > aValues(1); + Any* pValues = aValues.getArray(); + pValues[0] = makeAny( rtl::OUString( rTitle ) ); - try - { - ucbhelper::Content aNew; - if ( aParentCnt.insertNewContent( - rCurr.Type, aNames, aValues, data, aNew ) ) - return true; // success. - else - continue; - } - catch ( CommandFailedException const & ) - { - // Interaction Handler already handled the - // error that has occured... + try + { + ucbhelper::Content aNew; + if ( aParentCnt.insertNewContent( + rCurr.Type, aNames, aValues, data, aNew ) ) + return true; // success. + else continue; - } + } + catch ( CommandFailedException const & ) + { + // Interaction Handler already handled the + // error that has occured... + continue; } } } diff --git a/fpicker/source/office/fpsmartcontent.cxx b/fpicker/source/office/fpsmartcontent.cxx index 34be031fdf6e..3ee5166fed9b 100644 --- a/fpicker/source/office/fpsmartcontent.cxx +++ b/fpicker/source/office/fpsmartcontent.cxx @@ -33,14 +33,13 @@ #include "fpsmartcontent.hxx" /** === begin UNO includes === **/ -#include #include +#include #include +#include /** === end UNO includes === **/ -#ifndef _UNOTOOLS_PROCESSFACTORY_HXX #include -#endif #include #include #include @@ -282,25 +281,21 @@ namespace svt sal_Bool bRet = sal_False; try { - Reference< XContentCreator > xCreator = Reference< XContentCreator >( m_pContent->get(), UNO_QUERY ); - if ( xCreator.is() ) + Sequence< ContentInfo > aInfo = m_pContent->queryCreatableContentsInfo(); + const ContentInfo* pInfo = aInfo.getConstArray(); + sal_Int32 nCount = aInfo.getLength(); + for ( sal_Int32 i = 0; i < nCount; ++i, ++pInfo ) { - Sequence< ContentInfo > aInfo = xCreator->queryCreatableContentsInfo(); - const ContentInfo* pInfo = aInfo.getConstArray(); - sal_Int32 nCount = aInfo.getLength(); - for ( sal_Int32 i = 0; i < nCount; ++i, ++pInfo ) + // Simply look for the first KIND_FOLDER... + if ( pInfo->Attributes & ContentInfoAttribute::KIND_FOLDER ) { - // Simply look for the first KIND_FOLDER... - if ( pInfo->Attributes & ContentInfoAttribute::KIND_FOLDER ) - { - bRet = sal_True; - break; - } + bRet = sal_True; + break; } - - // now we're definately valid - m_eState = VALID; } + + // now we're definately valid + m_eState = VALID; } catch( Exception& ) { diff --git a/sfx2/source/doc/doctempl.cxx b/sfx2/source/doc/doctempl.cxx index e43da0b0bacc..f3e7b789a062 100644 --- a/sfx2/source/doc/doctempl.cxx +++ b/sfx2/source/doc/doctempl.cxx @@ -69,7 +69,6 @@ #include #include #include -#include #include #include #include diff --git a/ucb/qa/complex/tdoc/CheckTransientDocumentsDocumentContent.java b/ucb/qa/complex/tdoc/CheckTransientDocumentsDocumentContent.java index fc8cf81c4aaf..8600dcc7f1b7 100755 --- a/ucb/qa/complex/tdoc/CheckTransientDocumentsDocumentContent.java +++ b/ucb/qa/complex/tdoc/CheckTransientDocumentsDocumentContent.java @@ -49,7 +49,6 @@ import com.sun.star.ucb.OpenMode; import com.sun.star.ucb.XCommandProcessor; import com.sun.star.ucb.XContent; import com.sun.star.ucb.XContentAccess; -import com.sun.star.ucb.XContentCreator; import com.sun.star.ucb.XContentIdentifier; import com.sun.star.ucb.XContentIdentifierFactory; import com.sun.star.ucb.XContentProvider; @@ -139,12 +138,16 @@ public class CheckTransientDocumentsDocumentContent extends ComplexTestCase { } } // create a folder - XContent xNewFolder = null; log.println("Create new folder "+ folderName); ContentInfo contentInfo = new ContentInfo(); contentInfo.Type = "application/vnd.sun.star.tdoc-folder"; - XContentCreator xContentCreator = (XContentCreator)UnoRuntime.queryInterface(XContentCreator.class, xContent); - xNewFolder = xContentCreator.createNewContent(contentInfo); + + command.Name = "createNewContent"; + command.Argument = contentInfo; + + result = xCommandProcessor.execute(command, 0, null); + XContent xNewFolder = (XContent)UnoRuntime.queryInterface(XContent.class, result); + XCommandProcessor xFolderCommandProcessor = (XCommandProcessor)UnoRuntime.queryInterface(XCommandProcessor.class, xNewFolder); log.println("Got the new folder: " + utils.getImplName(xNewFolder)); -- cgit v1.2.3 From c0835b075cbd5bd943c303545c4af94c1e9660e6 Mon Sep 17 00:00:00 2001 From: "Philipp Lohmann [pl]" Date: Thu, 14 Jan 2010 22:27:44 +0100 Subject: undo previous erroneous change, solar.hrc belongs to svl instead vcl now --- avmedia/inc/helpids.hrc | 2 +- avmedia/source/framework/mediamisc.cxx | 2 +- basic/inc/pch/precompiled_basic.hxx | 2 +- basic/inc/sb.hrc | 2 +- basic/source/app/dialogs.cxx | 2 +- basic/source/runtime/basrdll.cxx | 2 +- desktop/source/app/desktop.hrc | 2 +- desktop/source/inc/helpid.hrc | 2 +- formula/inc/helpids.hrc | 2 +- formula/source/core/inc/core_resource.hrc | 2 +- formula/source/core/resource/core_resource.cxx | 2 +- formula/source/ui/inc/ForResId.hrc | 2 +- formula/source/ui/resource/ModuleHelper.cxx | 2 +- framework/inc/framework.hrc | 2 +- framework/inc/helpid.hrc | 2 +- framework/inc/pch/precompiled_framework.hxx | 2 +- framework/source/services/backingcomp.cxx | 2 +- framework/source/uielement/controlmenucontroller.cxx | 2 +- sfx2/inc/pch/precompiled_sfx2.hxx | 2 +- sfx2/inc/sfx2/cntids.hrc | 2 +- sfx2/inc/sfx2/sfx.hrc | 2 +- sfx2/inc/sfx2/sfxsids.hrc | 2 +- sfx2/source/inc/helpid.hrc | 2 +- svx/inc/fmhelp.hrc | 2 +- svx/inc/helpid.hrc | 2 +- svx/inc/svx/svdattr.hxx | 2 +- svx/inc/svx/svdhdl.hxx | 2 +- svx/inc/svx/svdundo.hxx | 2 +- svx/inc/svx/svxids.hrc | 2 +- svx/inc/svx/svxitems.hrc | 2 +- svx/source/dialog/dialmgr.cxx | 2 +- svx/source/editeng/editdbg.hxx | 2 +- svx/source/editeng/editeng.hrc | 2 +- svx/source/editeng/eerdll.cxx | 2 +- svx/source/gallery2/galmisc.cxx | 2 +- svx/source/inc/fmresids.hrc | 2 +- svx/source/outliner/outliner.hrc | 2 +- svx/source/src/app.hrc | 2 +- svx/source/svdraw/svdattr.cxx | 2 +- svx/source/svdraw/svdedxv.cxx | 2 +- svx/source/svdraw/svdoole2.cxx | 2 +- svx/source/xoutdev/_xoutbmp.cxx | 2 +- uui/source/ids.hrc | 2 +- 43 files changed, 43 insertions(+), 43 deletions(-) (limited to 'sfx2') diff --git a/avmedia/inc/helpids.hrc b/avmedia/inc/helpids.hrc index 6f12579ec41d..2e51b0500441 100644 --- a/avmedia/inc/helpids.hrc +++ b/avmedia/inc/helpids.hrc @@ -31,7 +31,7 @@ #ifndef _AVMEDIA_HELPIDS_HRC #define _AVMEDIA_HELPIDS_HRC -#include +#include #define HID_AVMEDIA_TOOLBOXITEM_PLAY (HID_AVMEDIA_START+0) #define HID_AVMEDIA_TOOLBOXITEM_PAUSE (HID_AVMEDIA_START+1) diff --git a/avmedia/source/framework/mediamisc.cxx b/avmedia/source/framework/mediamisc.cxx index a8f59bdfa65b..367ad725fa9a 100644 --- a/avmedia/source/framework/mediamisc.cxx +++ b/avmedia/source/framework/mediamisc.cxx @@ -29,7 +29,7 @@ ************************************************************************/ #include -#include +#include #include namespace avmedia { diff --git a/basic/inc/pch/precompiled_basic.hxx b/basic/inc/pch/precompiled_basic.hxx index 505705bd5ad9..f1c120b2618f 100644 --- a/basic/inc/pch/precompiled_basic.hxx +++ b/basic/inc/pch/precompiled_basic.hxx @@ -183,7 +183,7 @@ #include "unotools/pathoptions.hxx" #include "svtools/sfxecode.hxx" #include "svl/smplhint.hxx" -#include "vcl/solar.hrc" +#include "svl/solar.hrc" #include "svtools/stringtransfer.hxx" #include "svl/svarray.hxx" #include "svl/svdde.hxx" diff --git a/basic/inc/sb.hrc b/basic/inc/sb.hrc index 83b7897110e9..89db04cef511 100644 --- a/basic/inc/sb.hrc +++ b/basic/inc/sb.hrc @@ -31,7 +31,7 @@ #ifndef _SB_HRC #define _SB_HRC -#include +#include #ifndef IDS_SBERR_START #define IDS_SBERR_START RID_BASIC_START diff --git a/basic/source/app/dialogs.cxx b/basic/source/app/dialogs.cxx index 8536ac087383..00eba2fbac6c 100644 --- a/basic/source/app/dialogs.cxx +++ b/basic/source/app/dialogs.cxx @@ -66,7 +66,7 @@ // Ohne Includeschutz #include -#include +#include #include diff --git a/basic/source/runtime/basrdll.cxx b/basic/source/runtime/basrdll.cxx index 69d4530885d0..a13569ee0a9f 100644 --- a/basic/source/runtime/basrdll.cxx +++ b/basic/source/runtime/basrdll.cxx @@ -32,7 +32,7 @@ #include "precompiled_basic.hxx" #include #include -#include +#include #include #include diff --git a/desktop/source/app/desktop.hrc b/desktop/source/app/desktop.hrc index 81e351a68a3a..81110d665868 100644 --- a/desktop/source/app/desktop.hrc +++ b/desktop/source/app/desktop.hrc @@ -32,7 +32,7 @@ #define _DESKTOP_HRC_ #ifndef _SOLAR_HRC -#include +#include #endif #define RID_DESKTOP_DIALOG_START 2000 diff --git a/desktop/source/inc/helpid.hrc b/desktop/source/inc/helpid.hrc index e6263609f8bd..c6c18e4bfc01 100644 --- a/desktop/source/inc/helpid.hrc +++ b/desktop/source/inc/helpid.hrc @@ -31,7 +31,7 @@ #if ! defined INCLUDED_DESKTOP_HELPID_HRC #define INCLUDED_DESKTOP_HELPID_HRC -#include "vcl/solar.hrc" +#include "svl/solar.hrc" #define HID_GLOBAL_FALLBACK 0xFFFFFFFF diff --git a/formula/inc/helpids.hrc b/formula/inc/helpids.hrc index d5b838b89c42..9eebceec0482 100644 --- a/formula/inc/helpids.hrc +++ b/formula/inc/helpids.hrc @@ -31,7 +31,7 @@ #define FORMULA_HELPID_HRC #ifndef _SOLAR_HRC -#include // HID_FORMULA_START +#include // HID_FORMULA_START #endif #define HID_FORMULADLG_FORMULA (HID_FORMULA_START + 0) diff --git a/formula/source/core/inc/core_resource.hrc b/formula/source/core/inc/core_resource.hrc index ea2dc8b6aa58..ee82732ae119 100644 --- a/formula/source/core/inc/core_resource.hrc +++ b/formula/source/core/inc/core_resource.hrc @@ -31,7 +31,7 @@ #ifndef _FORMULA_CORE_RESOURCE_HRC_ #define _FORMULA_CORE_RESOURCE_HRC_ -#include +#include //------------------------------------------------------------------------------ #define RID_CORE_STRINGS_START RID_FORMULA_START diff --git a/formula/source/core/resource/core_resource.cxx b/formula/source/core/resource/core_resource.cxx index 24ce35d36423..6663a9470a2e 100644 --- a/formula/source/core/resource/core_resource.cxx +++ b/formula/source/core/resource/core_resource.cxx @@ -37,7 +37,7 @@ // ---- needed as long as we have no contexts for components --- #include -#include +#include //......................................................................... namespace formula diff --git a/formula/source/ui/inc/ForResId.hrc b/formula/source/ui/inc/ForResId.hrc index 70a257d9ade3..472564d9f229 100644 --- a/formula/source/ui/inc/ForResId.hrc +++ b/formula/source/ui/inc/ForResId.hrc @@ -34,7 +34,7 @@ // include ----------------------------------------------------------- #ifndef _SOLAR_HRC -#include +#include #endif #define RID_DIALOG_START RID_FORMULA_START diff --git a/formula/source/ui/resource/ModuleHelper.cxx b/formula/source/ui/resource/ModuleHelper.cxx index 6e91e1150a01..d1bc06c36ace 100644 --- a/formula/source/ui/resource/ModuleHelper.cxx +++ b/formula/source/ui/resource/ModuleHelper.cxx @@ -37,7 +37,7 @@ #include #include #ifndef _SOLAR_HRC -#include +#include #endif #define EXPAND_PROTOCOL "vnd.sun.star.expand:" diff --git a/framework/inc/framework.hrc b/framework/inc/framework.hrc index 85b3a8e77144..57fb2e94b07a 100644 --- a/framework/inc/framework.hrc +++ b/framework/inc/framework.hrc @@ -31,7 +31,7 @@ #ifndef _FRAMEWORK_HRC #define _FRAMEWORK_HRC -#include "vcl/solar.hrc" +#include "svl/solar.hrc" #define RID_FWK_START 260 diff --git a/framework/inc/helpid.hrc b/framework/inc/helpid.hrc index af67b8674180..6195a6372452 100644 --- a/framework/inc/helpid.hrc +++ b/framework/inc/helpid.hrc @@ -32,7 +32,7 @@ // include ------------------------------------------------------------------ -#include +#include // Help-Ids ----------------------------------------------------------------- diff --git a/framework/inc/pch/precompiled_framework.hxx b/framework/inc/pch/precompiled_framework.hxx index 79f25b6211a7..fd211dd81ee9 100644 --- a/framework/inc/pch/precompiled_framework.hxx +++ b/framework/inc/pch/precompiled_framework.hxx @@ -399,7 +399,7 @@ #include "unotools/pathoptions.hxx" #include "svtools/sfxecode.hxx" #include "svl/smplhint.hxx" -#include "vcl/solar.hrc" +#include "svl/solar.hrc" #include "svtools/statusbarcontroller.hxx" #include "svl/svarray.hxx" #include "svtools/svmedit.hxx" diff --git a/framework/source/services/backingcomp.cxx b/framework/source/services/backingcomp.cxx index 267bc5a2c883..7f190a678763 100644 --- a/framework/source/services/backingcomp.cxx +++ b/framework/source/services/backingcomp.cxx @@ -75,7 +75,7 @@ #include #ifndef _SOLAR_HRC -#include +#include #endif #include #include diff --git a/framework/source/uielement/controlmenucontroller.cxx b/framework/source/uielement/controlmenucontroller.cxx index ae00f02423e9..caa356d850fa 100644 --- a/framework/source/uielement/controlmenucontroller.cxx +++ b/framework/source/uielement/controlmenucontroller.cxx @@ -62,7 +62,7 @@ #include #include #ifndef _SOLAR_HRC -#include +#include #endif #include #include diff --git a/sfx2/inc/pch/precompiled_sfx2.hxx b/sfx2/inc/pch/precompiled_sfx2.hxx index 104f8aa2305f..0af35427d855 100644 --- a/sfx2/inc/pch/precompiled_sfx2.hxx +++ b/sfx2/inc/pch/precompiled_sfx2.hxx @@ -560,7 +560,7 @@ #include "svl/slstitm.hxx" #include "svl/smplhint.hxx" #include "svtools/soerr.hxx" -#include "vcl/solar.hrc" +#include "svl/solar.hrc" #include "unotools/startoptions.hxx" #include "svtools/statusbarcontroller.hxx" #include "svl/stritem.hxx" diff --git a/sfx2/inc/sfx2/cntids.hrc b/sfx2/inc/sfx2/cntids.hrc index 35a983fa995a..7351672f13ae 100644 --- a/sfx2/inc/sfx2/cntids.hrc +++ b/sfx2/inc/sfx2/cntids.hrc @@ -36,7 +36,7 @@ #endif #ifndef _SOLAR_HRC -#include +#include #endif // Slot-ID's ----------------------------------------------------------------- diff --git a/sfx2/inc/sfx2/sfx.hrc b/sfx2/inc/sfx2/sfx.hrc index 014a7d984de3..9bba3997a71f 100644 --- a/sfx2/inc/sfx2/sfx.hrc +++ b/sfx2/inc/sfx2/sfx.hrc @@ -33,7 +33,7 @@ // include --------------------------------------------------------------- #ifndef _SOLAR_HRC -#include +#include #endif #ifndef _MEMBERID_HRC diff --git a/sfx2/inc/sfx2/sfxsids.hrc b/sfx2/inc/sfx2/sfxsids.hrc index 12f5442f1511..bcbb39c96638 100644 --- a/sfx2/inc/sfx2/sfxsids.hrc +++ b/sfx2/inc/sfx2/sfxsids.hrc @@ -33,7 +33,7 @@ // include --------------------------------------------------------------- #ifndef _SOLAR_HRC -#include +#include #endif #define SID_SFX_START 5000 diff --git a/sfx2/source/inc/helpid.hrc b/sfx2/source/inc/helpid.hrc index 9aa4f3d8d29c..b8beacafee3a 100644 --- a/sfx2/source/inc/helpid.hrc +++ b/sfx2/source/inc/helpid.hrc @@ -32,7 +32,7 @@ // include ------------------------------------------------------------------ -#include +#include // Help-Ids ----------------------------------------------------------------- diff --git a/svx/inc/fmhelp.hrc b/svx/inc/fmhelp.hrc index 86b24d35e452..ef445ab11f82 100644 --- a/svx/inc/fmhelp.hrc +++ b/svx/inc/fmhelp.hrc @@ -31,7 +31,7 @@ #define _SVX_FMHELP_HRC // include ----------------------------------------------------------- -#include +#include // in solar.hrc //#define HID_FORMS_START (HID_LIB_START+4000) diff --git a/svx/inc/helpid.hrc b/svx/inc/helpid.hrc index 899e12a10048..bc36634e24c3 100644 --- a/svx/inc/helpid.hrc +++ b/svx/inc/helpid.hrc @@ -31,7 +31,7 @@ #define _SVX_HELPID_HRC // include --------------------------------------------------------------- -#include +#include #include diff --git a/svx/inc/svx/svdattr.hxx b/svx/inc/svx/svdattr.hxx index ab3980b049ef..6149916f0d6c 100644 --- a/svx/inc/svx/svdattr.hxx +++ b/svx/inc/svx/svdattr.hxx @@ -32,7 +32,7 @@ #define _SVDATTR_HXX #ifndef _SOLAR_HRC -#include +#include #endif #include #include diff --git a/svx/inc/svx/svdhdl.hxx b/svx/inc/svx/svdhdl.hxx index 402b7c77d9c7..8d7d4552ea6c 100644 --- a/svx/inc/svx/svdhdl.hxx +++ b/svx/inc/svx/svdhdl.hxx @@ -39,7 +39,7 @@ #include #ifndef _SOLAR_HRC -#include +#include #endif #include diff --git a/svx/inc/svx/svdundo.hxx b/svx/inc/svx/svdundo.hxx index db7ab0191465..803b454a6f0c 100644 --- a/svx/inc/svx/svdundo.hxx +++ b/svx/inc/svx/svdundo.hxx @@ -32,7 +32,7 @@ #define _SVDUNDO_HXX #ifndef _SOLAR_HRC -#include +#include #endif #include #include diff --git a/svx/inc/svx/svxids.hrc b/svx/inc/svx/svxids.hrc index f4985c76ea0f..5c541b3b24dd 100644 --- a/svx/inc/svx/svxids.hrc +++ b/svx/inc/svx/svxids.hrc @@ -32,7 +32,7 @@ // include ------------------------------------------------------------------ #include -#include +#include #include #include diff --git a/svx/inc/svx/svxitems.hrc b/svx/inc/svx/svxitems.hrc index b9850ee3fc2f..5d554cf67ebf 100644 --- a/svx/inc/svx/svxitems.hrc +++ b/svx/inc/svx/svxitems.hrc @@ -33,7 +33,7 @@ // include ------------------------------------------------------------------ #ifndef _SOLAR_HRC -#include +#include #endif // BOOL --------------------------------------------------------------------- diff --git a/svx/source/dialog/dialmgr.cxx b/svx/source/dialog/dialmgr.cxx index 0ea6e49d396f..574a68a6ce91 100644 --- a/svx/source/dialog/dialmgr.cxx +++ b/svx/source/dialog/dialmgr.cxx @@ -39,7 +39,7 @@ #include #include -#include +#include #include static ResMgr* pResMgr=0; diff --git a/svx/source/editeng/editdbg.hxx b/svx/source/editeng/editdbg.hxx index 3a8f5e59fc85..e75a0baef217 100644 --- a/svx/source/editeng/editdbg.hxx +++ b/svx/source/editeng/editdbg.hxx @@ -31,7 +31,7 @@ #ifndef _EDITDBG_HXX #define _EDITDBG_HXX -#include +#include #include #include diff --git a/svx/source/editeng/editeng.hrc b/svx/source/editeng/editeng.hrc index 043575f1aa12..280c90f66341 100644 --- a/svx/source/editeng/editeng.hrc +++ b/svx/source/editeng/editeng.hrc @@ -31,7 +31,7 @@ #define _EDITENG_HRC #ifndef _SOLAR_HRC -#include +#include #endif #define RID_EDITUNDO_DEL ( RID_EDIT_START + 0 ) diff --git a/svx/source/editeng/eerdll.cxx b/svx/source/editeng/eerdll.cxx index f83854c939cd..fb715925546c 100644 --- a/svx/source/editeng/eerdll.cxx +++ b/svx/source/editeng/eerdll.cxx @@ -36,7 +36,7 @@ #include #include -#include +#include #include #include #include diff --git a/svx/source/gallery2/galmisc.cxx b/svx/source/gallery2/galmisc.cxx index 85fb240694b6..bbf0771c65de 100644 --- a/svx/source/gallery2/galmisc.cxx +++ b/svx/source/gallery2/galmisc.cxx @@ -37,7 +37,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/svx/source/inc/fmresids.hrc b/svx/source/inc/fmresids.hrc index 74076801cf0b..67cb5d36e5bb 100644 --- a/svx/source/inc/fmresids.hrc +++ b/svx/source/inc/fmresids.hrc @@ -31,7 +31,7 @@ #define _SVX_FMRESIDS_HRC // include ----------------------------------------------------------- -#include +#include // unnamed ressources ------------------------------------------------------- // sub ressources ..................... diff --git a/svx/source/outliner/outliner.hrc b/svx/source/outliner/outliner.hrc index 271e7670bf85..36c5f1728fcd 100644 --- a/svx/source/outliner/outliner.hrc +++ b/svx/source/outliner/outliner.hrc @@ -31,7 +31,7 @@ #define _OUTLINER_HRC #ifndef _SOLAR_HRC -#include +#include #endif #ifndef RID_OUTL_START diff --git a/svx/source/src/app.hrc b/svx/source/src/app.hrc index 82ac350c55db..2c4e03a5d181 100644 --- a/svx/source/src/app.hrc +++ b/svx/source/src/app.hrc @@ -39,7 +39,7 @@ // include --------------------------------------------------------------- -#include +#include #include // Ranges ---------------------------------------------------------------- diff --git a/svx/source/svdraw/svdattr.cxx b/svx/source/svdraw/svdattr.cxx index dcbb4cfc483f..356546e409a0 100644 --- a/svx/source/svdraw/svdattr.cxx +++ b/svx/source/svdraw/svdattr.cxx @@ -52,7 +52,7 @@ #include #include -#include +#include #include "xmlcnitm.hxx" #include diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index 2e6d86b7ad21..e3d2f3390201 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -36,7 +36,7 @@ #include #include -#include +#include //#include #include diff --git a/svx/source/svdraw/svdoole2.cxx b/svx/source/svdraw/svdoole2.cxx index 97d50113a332..67505e12ba73 100644 --- a/svx/source/svdraw/svdoole2.cxx +++ b/svx/source/svdraw/svdoole2.cxx @@ -73,7 +73,7 @@ #include #include -#include +#include #include #include #include diff --git a/svx/source/xoutdev/_xoutbmp.cxx b/svx/source/xoutdev/_xoutbmp.cxx index aeded47008b2..0eda2eeb375f 100644 --- a/svx/source/xoutdev/_xoutbmp.cxx +++ b/svx/source/xoutdev/_xoutbmp.cxx @@ -38,7 +38,7 @@ #include #include #include -#include +#include #include #include #include "svx/impgrf.hxx" diff --git a/uui/source/ids.hrc b/uui/source/ids.hrc index b6d05a27b0c6..a9960a58e3f2 100644 --- a/uui/source/ids.hrc +++ b/uui/source/ids.hrc @@ -32,7 +32,7 @@ #define UUI_IDS_HRC #ifndef _SOLAR_HRC -#include "vcl/solar.hrc" +#include "svl/solar.hrc" #endif #ifndef _ERRCODE_HXX #include "tools/errcode.hxx" -- cgit v1.2.3 From ba9aa9c427a21feeabf448846ac68db800ec0316 Mon Sep 17 00:00:00 2001 From: "Philipp Lohmann [pl]" Date: Fri, 15 Jan 2010 00:20:57 +0100 Subject: solve some merge problems --- sfx2/source/view/viewprn.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index c7ede4f7b8a5..24d31337a662 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -35,7 +35,7 @@ #include #include "com/sun/star/view/XRenderable.hpp" -#include +#include #include #include #include @@ -44,8 +44,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include -- cgit v1.2.3