diff options
author | Vladimir Glazunov <vg@openoffice.org> | 2009-12-09 19:10:19 +0100 |
---|---|---|
committer | Vladimir Glazunov <vg@openoffice.org> | 2009-12-09 19:10:19 +0100 |
commit | fe8108920dc4665ff1c49650aac9b8aa4ed9e9c5 (patch) | |
tree | f799c8fa22c6bdfa6103041583fec7cbbed1fcd3 | |
parent | 39d7d75bded48b594907d8a5f8be9f85ea8281a0 (diff) | |
parent | 3d62b54c98fb6577d2fda40a4ce696e416fac0c3 (diff) |
CWS-TOOLING: integrate CWS killnonproooo/DEV300_m68
21 files changed, 1692 insertions, 161 deletions
diff --git a/apache-commons/prj/build.lst b/apache-commons/prj/build.lst index 0a9f79b..c509ce0 100644 --- a/apache-commons/prj/build.lst +++ b/apache-commons/prj/build.lst @@ -1,4 +1,4 @@ -ac apache-commons : solenv TOMCAT:tomcat NULL +ac apache-commons : solenv TOMCAT:tomcat NULL ac apache-commons usr1 - all ac_mkout NULL ac apache-commons\java\codec nmake - all ac_codec NULL ac apache-commons\java\lang nmake - all ac_lang NULL diff --git a/reportbuilder/template/makefile.mk b/reportbuilder/template/makefile.mk index a9ee2cf..2db1c2b 100644 --- a/reportbuilder/template/makefile.mk +++ b/reportbuilder/template/makefile.mk @@ -37,7 +37,7 @@ TARGET=rpt_templates no_common_build_zip=true EXTENSION_VERSION_BASE=1.0.0 -.IF "$(PRODUCT)" != "" +.IF "$(DBG_LEVEL)" == "0" EXTENSION_VERSION=$(EXTENSION_VERSION_BASE) .ELSE EXTENSION_VERSION=$(EXTENSION_VERSION_BASE).$(BUILD) diff --git a/sdext/source/minimizer/configurationaccess.cxx b/sdext/source/minimizer/configurationaccess.cxx index cca5bc8..088e286 100644 --- a/sdext/source/minimizer/configurationaccess.cxx +++ b/sdext/source/minimizer/configurationaccess.cxx @@ -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 @@ -33,7 +33,6 @@ #include "precompiled_sdext.hxx" #include "configurationaccess.hxx" -#include <comphelper/processfactory.hxx> #include <com/sun/star/frame/XComponentLoader.hpp> #include <com/sun/star/container/XHierarchicalNameAccess.hpp> #include <com/sun/star/util/XChangesBatch.hpp> diff --git a/sdext/source/minimizer/fileopendialog.cxx b/sdext/source/minimizer/fileopendialog.cxx index fb88080..f88fcac 100644 --- a/sdext/source/minimizer/fileopendialog.cxx +++ b/sdext/source/minimizer/fileopendialog.cxx @@ -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 @@ -60,7 +60,6 @@ #include <com/sun/star/container/XNameAccess.hpp> #include <com/sun/star/container/XContainerQuery.hpp> #include <com/sun/star/ucb/InteractiveAugmentedIOException.hpp> -#include <comphelper/types.hxx> using namespace ::rtl; diff --git a/sdext/source/minimizer/fileopendialog.hxx b/sdext/source/minimizer/fileopendialog.hxx index e0ef1f8..5b3369e 100644 --- a/sdext/source/minimizer/fileopendialog.hxx +++ b/sdext/source/minimizer/fileopendialog.hxx @@ -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 @@ -33,10 +33,10 @@ #define _FILEOPEN_DIALOG_HXX_ #include <vector> -#include <comphelper/processfactory.hxx> #include <com/sun/star/beans/StringPair.hpp> #include <com/sun/star/container/XNameAccess.hpp> #include <com/sun/star/ui/dialogs/XFilePicker.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> class FileOpenDialog { @@ -72,4 +72,4 @@ public : }; #endif // _FILEOPEN_DIALOG_HXX_ - + diff --git a/sdext/source/minimizer/pppoptimizer.cxx b/sdext/source/minimizer/pppoptimizer.cxx index a1782b6..6f20db6 100644 --- a/sdext/source/minimizer/pppoptimizer.cxx +++ b/sdext/source/minimizer/pppoptimizer.cxx @@ -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 @@ -36,6 +36,8 @@ #include "impoptimizer.hxx" #include <osl/file.hxx> +#include <com/sun/star/lang/IllegalArgumentException.hpp> + using namespace ::rtl; using namespace ::com::sun::star::uno; using namespace ::com::sun::star::util; @@ -67,7 +69,7 @@ PPPOptimizer::~PPPOptimizer() void SAL_CALL PPPOptimizer::initialize( const Sequence< Any >& aArguments ) throw ( Exception, RuntimeException ) { - if( aArguments.getLength() != 1 ) + if( aArguments.getLength() != 1 ) throw IllegalArgumentException(); Reference< XFrame > xFrame; @@ -80,13 +82,13 @@ void SAL_CALL PPPOptimizer::initialize( const Sequence< Any >& aArguments ) // XServiceInfo // ----------------------------------------------------------------------------- -OUString SAL_CALL PPPOptimizer::getImplementationName() +OUString SAL_CALL PPPOptimizer::getImplementationName() throw ( RuntimeException ) { return PPPOptimizer_getImplementationName(); } -sal_Bool SAL_CALL PPPOptimizer::supportsService( const OUString& rServiceName ) +sal_Bool SAL_CALL PPPOptimizer::supportsService( const OUString& rServiceName ) throw ( RuntimeException ) { return rServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( SERVICE_NAME ) ); diff --git a/sdext/source/minimizer/pppoptimizer.hxx b/sdext/source/minimizer/pppoptimizer.hxx index cf1c340..1eb5545 100644 --- a/sdext/source/minimizer/pppoptimizer.hxx +++ b/sdext/source/minimizer/pppoptimizer.hxx @@ -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 @@ -39,7 +39,6 @@ #include <com/sun/star/uno/XComponentContext.hpp> #include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/frame/XController.hpp> -#include <comphelper/property.hxx> // ---------------- // - PPPOptimizer - diff --git a/sdext/source/pdfimport/misc/pwdinteract.cxx b/sdext/source/pdfimport/misc/pwdinteract.cxx index 45e77e9..eb194b3 100644 --- a/sdext/source/pdfimport/misc/pwdinteract.cxx +++ b/sdext/source/pdfimport/misc/pwdinteract.cxx @@ -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 @@ -42,7 +42,6 @@ #include <cppuhelper/exc_hlp.hxx> #include <cppuhelper/compbase2.hxx> #include <cppuhelper/basemutex.hxx> -#include <comphelper/anytostring.hxx> using namespace com::sun::star; @@ -50,7 +49,7 @@ using namespace com::sun::star; namespace { -typedef ::cppu::WeakComponentImplHelper2< +typedef ::cppu::WeakComponentImplHelper2< com::sun::star::task::XInteractionRequest, com::sun::star::task::XInteractionPassword > PDFPasswordRequestBase; @@ -64,18 +63,18 @@ private: public: explicit PDFPasswordRequest(bool bFirstTry); - + // XInteractionRequest virtual uno::Any SAL_CALL getRequest( ) throw (uno::RuntimeException); virtual uno::Sequence< uno::Reference< task::XInteractionContinuation > > SAL_CALL getContinuations( ) throw (uno::RuntimeException); - + // XInteractionPassword virtual void SAL_CALL setPassword( const rtl::OUString& rPwd ) throw (uno::RuntimeException); virtual rtl::OUString SAL_CALL getPassword() throw (uno::RuntimeException); // XInteractionContinuation virtual void SAL_CALL select() throw (uno::RuntimeException); - + bool isSelected() const { osl::MutexGuard const guard( m_aMutex ); return m_bSelected; } }; @@ -140,9 +139,9 @@ bool getPassword( const uno::Reference< task::XInteractionHandler >& xHandler, bool bFirstTry ) { bool bSuccess = false; - + PDFPasswordRequest* pRequest; - uno::Reference< task::XInteractionRequest > xReq( + uno::Reference< task::XInteractionRequest > xReq( pRequest = new PDFPasswordRequest( bFirstTry ) ); try { @@ -150,21 +149,15 @@ bool getPassword( const uno::Reference< task::XInteractionHandler >& xHandler, } catch( uno::Exception& ) { -#if 0 - OSL_ENSURE( false, - rtl::OUStringToOString( - comphelper::anyToString( cppu::getCaughtException() ), - RTL_TEXTENCODING_UTF8 ).getStr() ); -#endif } - + OSL_TRACE( "request %s selected\n", pRequest->isSelected() ? "was" : "was not" ); if( pRequest->isSelected() ) { bSuccess = true; rOutPwd = pRequest->getPassword(); } - + return bSuccess; } diff --git a/sdext/source/pdfimport/odf/odfemitter.cxx b/sdext/source/pdfimport/odf/odfemitter.cxx index e960fbc..283e0f9 100644 --- a/sdext/source/pdfimport/odf/odfemitter.cxx +++ b/sdext/source/pdfimport/odf/odfemitter.cxx @@ -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 @@ -35,7 +35,6 @@ #include "odfemitter.hxx" #include <rtl/ustrbuf.hxx> -#include <comphelper/anytostring.hxx> #include <cppuhelper/exc_hlp.hxx> #include <com/sun/star/io/XInputStream.hpp> #include <com/sun/star/io/XOutputStream.hpp> @@ -101,7 +100,7 @@ void OdfEmitter::beginTag( const char* pTag, const PropertyMap& rProperties ) // platforms, and even between different compile-time settings), // sort the attributes. std::sort(aAttributes.begin(), aAttributes.end()); - std::for_each(aAttributes.begin(), + std::for_each(aAttributes.begin(), aAttributes.end(), boost::bind( (rtl::OUStringBuffer& (rtl::OUStringBuffer::*)(const rtl::OUString&)) (&rtl::OUStringBuffer::append), diff --git a/sdext/source/pdfimport/sax/emitcontext.cxx b/sdext/source/pdfimport/sax/emitcontext.cxx index 07f418e..17ff27e 100644 --- a/sdext/source/pdfimport/sax/emitcontext.cxx +++ b/sdext/source/pdfimport/sax/emitcontext.cxx @@ -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 @@ -37,7 +37,6 @@ #include "saxattrlist.hxx" #include <rtl/strbuf.hxx> -#include <comphelper/anytostring.hxx> #include <cppuhelper/exc_hlp.hxx> #include <com/sun/star/xml/sax/XDocumentHandler.hpp> @@ -62,12 +61,6 @@ SaxEmitter::SaxEmitter( const uno::Reference< xml::sax::XDocumentHandler >& xDoc } catch( xml::sax::SAXException& ) { -#if 0 - OSL_ENSURE( false, - rtl::OUStringToOString( - comphelper::anyToString( cppu::getCaughtException() ), - RTL_TEXTENCODING_UTF8 ).getStr() ); -#endif } #if OSL_DEBUG_LEVEL > 1 static const char* pDir = getenv( "DBG_PDFIMPORT_DIR" ); @@ -99,12 +92,6 @@ SaxEmitter::~SaxEmitter() } catch( xml::sax::SAXException& ) { -#if 0 - OSL_ENSURE( false, - rtl::OUStringToOString( - comphelper::anyToString( cppu::getCaughtException() ), - RTL_TEXTENCODING_UTF8 ).getStr() ); -#endif } #if OSL_DEBUG_LEVEL > 1 if( pStream ) @@ -119,7 +106,7 @@ SaxEmitter::~SaxEmitter() void SaxEmitter::beginTag( const char* pTag, const PropertyMap& rProperties ) { rtl::OUString aTag = rtl::OUString::createFromAscii( pTag ); - uno::Reference< xml::sax::XAttributeList > xAttr( + uno::Reference< xml::sax::XAttributeList > xAttr( new SaxAttrList( rProperties ) ); try { @@ -127,12 +114,6 @@ void SaxEmitter::beginTag( const char* pTag, const PropertyMap& rProperties ) } catch( xml::sax::SAXException& ) { -#if 0 - OSL_ENSURE( false, - rtl::OUStringToOString( - comphelper::anyToString( cppu::getCaughtException() ), - RTL_TEXTENCODING_UTF8 ).getStr() ); -#endif } #if OSL_DEBUG_LEVEL > 1 if( pStream ) @@ -140,7 +121,7 @@ void SaxEmitter::beginTag( const char* pTag, const PropertyMap& rProperties ) sal_uInt64 nWritten = 0; for( int i = 0; i < nIndent; i++ ) pStream->write( " ", 4, nWritten ); - + rtl::OStringBuffer aBuf( 1024 ); aBuf.append( '<' ); aBuf.append( pTag ); @@ -167,12 +148,6 @@ void SaxEmitter::write( const rtl::OUString& rText ) } catch( xml::sax::SAXException& ) { -#if 0 - OSL_ENSURE( false, - rtl::OUStringToOString( - comphelper::anyToString( cppu::getCaughtException() ), - RTL_TEXTENCODING_UTF8 ).getStr() ); -#endif } #if OSL_DEBUG_LEVEL > 1 if( pStream ) @@ -193,12 +168,6 @@ void SaxEmitter::endTag( const char* pTag ) } catch( xml::sax::SAXException& ) { -#if 0 - OSL_ENSURE( false, - rtl::OUStringToOString( - comphelper::anyToString( cppu::getCaughtException() ), - RTL_TEXTENCODING_UTF8 ).getStr() ); -#endif } #if OSL_DEBUG_LEVEL > 1 if( pStream ) @@ -206,7 +175,7 @@ void SaxEmitter::endTag( const char* pTag ) sal_uInt64 nWritten = 0; for( int i = 0; i < nIndent; i++ ) pStream->write( " ", 4, nWritten ); - + rtl::OStringBuffer aBuf( 1024 ); aBuf.append( "</" ); aBuf.append( pTag ); diff --git a/sdext/source/pdfimport/services.cxx b/sdext/source/pdfimport/services.cxx index 4317fb3..b3be6db 100644 --- a/sdext/source/pdfimport/services.cxx +++ b/sdext/source/pdfimport/services.cxx @@ -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 @@ -38,7 +38,6 @@ #include <cppuhelper/factory.hxx> #include <cppuhelper/implementationentry.hxx> -#include <comphelper/servicedecl.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; diff --git a/sdext/source/pdfimport/test/makefile.mk b/sdext/source/pdfimport/test/makefile.mk index 2fb8d3a..eea0051 100755 --- a/sdext/source/pdfimport/test/makefile.mk +++ b/sdext/source/pdfimport/test/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 @@ -70,6 +70,7 @@ SHL1STDLIBS=\ $(COMPHELPERLIB) \ $(CPPUHELPERLIB) \ $(CPPUNITLIB) \ + $(TESTSHL2LIB) \ $(ZLIB3RDLIB) \ $(CPPULIB) \ $(SALLIB) @@ -103,6 +104,7 @@ APP1STDLIBS=\ $(COMPHELPERLIB) \ $(CPPUHELPERLIB) \ $(CPPUNITLIB) \ + $(TESTSHL2LIB) \ $(ZLIB3RDLIB) \ $(CPPULIB) \ $(SALLIB) @@ -131,6 +133,7 @@ APP2STDLIBS=\ $(COMPHELPERLIB) \ $(CPPUHELPERLIB) \ $(CPPUNITLIB) \ + $(TESTSHL2LIB) \ $(ZLIB3RDLIB) \ $(CPPULIB) \ $(SALLIB) @@ -161,5 +164,5 @@ APP2STDLIBS=\ @echo ---------------------------------------------------------- testshl2 -forward $(BIN)$/ $(SHL1TARGETN) $(TOUCH) $@ - + #ALLTAR : $(MISC)$/pdfi_unittest_succeeded diff --git a/sdext/source/pdfimport/test/pdf2xml.cxx b/sdext/source/pdfimport/test/pdf2xml.cxx index f85b18a..3912c44 100644 --- a/sdext/source/pdfimport/test/pdf2xml.cxx +++ b/sdext/source/pdfimport/test/pdf2xml.cxx @@ -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 @@ -37,7 +37,7 @@ #include "pdfihelper.hxx" #include "wrapper.hxx" #include "pdfparse.hxx" -#include "../pdfiadaptor.hxx" +#include "../pdfiadaptor.hxx" #include <sal/main.h> #include <osl/process.h> @@ -56,7 +56,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) return 1; ::rtl::OUString aBaseURL, aTmpURL, aSrcURL, aDstURL, aIniUrl; - + TreeVisitorFactorySharedPtr pTreeFactory; if( rtl_str_compare(argv[1], "-writer") == 0 ) pTreeFactory = createWriterTreeVisitorFactory(); @@ -66,7 +66,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) pTreeFactory = createImpressTreeVisitorFactory(); else return 1; - + osl_getProcessWorkingDir(&aBaseURL.pData); osl_getFileURLFromSystemPath( rtl::OUString::createFromAscii(argv[2]).pData, &aTmpURL.pData ); @@ -76,7 +76,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) &aTmpURL.pData ); osl_getAbsoluteFileURL(aBaseURL.pData,aTmpURL.pData,&aDstURL.pData); - osl_getFileURLFromSystemPath( rtl::OUString::createFromAscii(argv[4]).pData, + osl_getFileURLFromSystemPath( rtl::OUString::createFromAscii(argv[4]).pData, &aTmpURL.pData ); osl_getAbsoluteFileURL(aBaseURL.pData,aTmpURL.pData,&aIniUrl.pData); @@ -86,7 +86,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) try { xCtx = ::cppu::defaultBootstrap_InitialComponentContext(aIniUrl); - xFactory = uno::Reference< lang::XMultiServiceFactory >( xCtx->getServiceManager(), + xFactory = uno::Reference< lang::XMultiServiceFactory >( xCtx->getServiceManager(), uno::UNO_QUERY ); if( xFactory.is() ) ::comphelper::setProcessServiceFactory( xFactory ); diff --git a/sdext/source/pdfimport/test/tests.cxx b/sdext/source/pdfimport/test/tests.cxx index 12d384e..075116e 100755 --- a/sdext/source/pdfimport/test/tests.cxx +++ b/sdext/source/pdfimport/test/tests.cxx @@ -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 @@ -48,7 +48,7 @@ #include <rtl/math.hxx> #include <osl/file.hxx> #include <osl/process.h> -#include <cppunit/simpleheader.hxx> +#include <testshl/simpleheader.hxx> #include <cppuhelper/compbase1.hxx> #include <cppuhelper/bootstrap.hxx> #include <cppuhelper/basemutex.hxx> @@ -62,7 +62,7 @@ #include <com/sun/star/rendering/BlendMode.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/registry/XSimpleRegistry.hpp> +#include <com/sun/star/registry/XSimpleRegistry.hpp> #include <basegfx/matrix/b2dhommatrix.hxx> #include <basegfx/tools/canvastools.hxx> @@ -123,7 +123,7 @@ namespace CPPUNIT_ASSERT_MESSAGE( "Imported text is \"This is a testtext New paragraph, new line" " Hyperlink, this is * This is more text outline mode * New paragraph\"", sText == aTmp ); - + CPPUNIT_ASSERT_MESSAGE( "red circle seen in input", m_bRedCircleSeen ); CPPUNIT_ASSERT_MESSAGE( "green stroke seen in input", m_bGreenStrokeSeen ); CPPUNIT_ASSERT_MESSAGE( "dashed line seen in input", m_bDashedLineSeen ); @@ -147,7 +147,7 @@ namespace { m_bPageEnded = true; } - + virtual void hyperLink( const geometry::RealRectangle2D& rBounds, const ::rtl::OUString& rURI ) { @@ -167,7 +167,7 @@ namespace virtual void setTransformation( const geometry::AffineMatrix2D& rMatrix ) { - basegfx::unotools::homMatrixFromAffineMatrix( + basegfx::unotools::homMatrixFromAffineMatrix( getCurrentContext().Transformation, rMatrix ); } @@ -266,7 +266,7 @@ namespace rContext.DashArray[0] == rContext.DashArray[1] && rContext.DashArray[1] == rContext.DashArray[2] && rContext.DashArray[2] == rContext.DashArray[3] ); - + CPPUNIT_ASSERT_MESSAGE( "Line color is black", rContext.LineColor.Alpha == 1.0 && rContext.LineColor.Red == 0.0 && @@ -340,15 +340,15 @@ namespace m_bRedCircleSeen = true; } - + virtual void intersectClip(const uno::Reference<rendering::XPolyPolygon2D>& rPath) { basegfx::B2DPolyPolygon aNewClip = basegfx::unotools::b2DPolyPolygonFromXPolyPolygon2D(rPath); basegfx::B2DPolyPolygon aCurClip = getCurrentContext().Clip; - + if( aCurClip.count() ) // #i92985# adapted API from (..., false, false) to (..., true, false) aNewClip = basegfx::tools::clipPolyPolygonOnPolyPolygon( aCurClip, aNewClip, true, false ); - + getCurrentContext().Clip = aNewClip; } @@ -356,13 +356,13 @@ namespace { basegfx::B2DPolyPolygon aNewClip = basegfx::unotools::b2DPolyPolygonFromXPolyPolygon2D(rPath); basegfx::B2DPolyPolygon aCurClip = getCurrentContext().Clip; - + if( aCurClip.count() ) // #i92985# adapted API from (..., false, false) to (..., true, false) aNewClip = basegfx::tools::clipPolyPolygonOnPolyPolygon( aCurClip, aNewClip, true, false ); - + getCurrentContext().Clip = aNewClip; } - + virtual void drawGlyphs( const rtl::OUString& rGlyphs, const geometry::RealRectangle2D& /*rRect*/, const geometry::Matrix2D& /*rFontMatrix*/ ) @@ -388,9 +388,9 @@ namespace virtual void drawImage(const uno::Sequence<beans::PropertyValue>& xBitmap ) { - CPPUNIT_ASSERT_MESSAGE( "drawImage received two properties", + CPPUNIT_ASSERT_MESSAGE( "drawImage received two properties", xBitmap.getLength()==3 ); - CPPUNIT_ASSERT_MESSAGE( "drawImage got URL param", + CPPUNIT_ASSERT_MESSAGE( "drawImage got URL param", xBitmap[0].Name.compareToAscii( "URL" ) == 0 ); CPPUNIT_ASSERT_MESSAGE( "drawImage got InputStream param", xBitmap[1].Name.compareToAscii( "InputStream" ) == 0 ); @@ -399,7 +399,7 @@ namespace virtual void drawColorMaskedImage(const uno::Sequence<beans::PropertyValue>& xBitmap, const uno::Sequence<uno::Any>& /*xMaskColors*/ ) { - CPPUNIT_ASSERT_MESSAGE( "drawColorMaskedImage received two properties", + CPPUNIT_ASSERT_MESSAGE( "drawColorMaskedImage received two properties", xBitmap.getLength()==3 ); CPPUNIT_ASSERT_MESSAGE( "drawColorMaskedImage got URL param", xBitmap[0].Name.compareToAscii( "URL" ) == 0 ); @@ -411,7 +411,7 @@ namespace const uno::Sequence<beans::PropertyValue>& xMask, bool /*bInvertMask*/) { - CPPUNIT_ASSERT_MESSAGE( "drawMaskedImage received two properties #1", + CPPUNIT_ASSERT_MESSAGE( "drawMaskedImage received two properties #1", xBitmap.getLength()==3 ); CPPUNIT_ASSERT_MESSAGE( "drawMaskedImage got URL param #1", xBitmap[0].Name.compareToAscii( "URL" ) == 0 ); @@ -447,10 +447,10 @@ namespace virtual void setTextRenderMode( sal_Int32 ) { } - + typedef std::hash_map<sal_Int32,FontAttributes> IdToFontMap; typedef std::hash_map<FontAttributes,sal_Int32,FontAttrHash> FontToIdMap; - + typedef std::hash_map<sal_Int32,GraphicsContext> IdToGCMap; typedef std::hash_map<GraphicsContext,sal_Int32,GraphicsContextHash> GCToIdMap; @@ -459,7 +459,7 @@ namespace sal_Int32 m_nNextFontId; IdToFontMap m_aIdToFont; FontToIdMap m_aFontToId; - + GraphicsContextStack m_aGCStack; geometry::RealSize2D m_aPageSize; geometry::RealRectangle2D m_aHyperlinkBounds; @@ -479,9 +479,9 @@ namespace bool mbUnoInitialized; public: - PDFITest() : mxCtx(),msBaseDir(),mbUnoInitialized(false) + PDFITest() : mxCtx(),msBaseDir(),mbUnoInitialized(false) {} - + void setUp() { if( !mbUnoInitialized ) @@ -495,10 +495,10 @@ namespace try { ::rtl::OUString aIniUrl; - CPPUNIT_ASSERT_MESSAGE( + CPPUNIT_ASSERT_MESSAGE( "Converting ini file to URL", - osl_getFileURLFromSystemPath( - (msBaseDir+rtl::OUString::createFromAscii("pdfi_unittest_test.ini")).pData, + osl_getFileURLFromSystemPath( + (msBaseDir+rtl::OUString::createFromAscii("pdfi_unittest_test.ini")).pData, &aIniUrl.pData ) == osl_File_E_None ); mxCtx = ::cppu::defaultBootstrap_InitialComponentContext(aIniUrl); @@ -520,7 +520,7 @@ namespace { pdfi::ContentSinkSharedPtr pSink( new TestSink() ); pdfi::xpdf_ImportFromFile( msBaseDir + rtl::OUString::createFromAscii("pdfi_unittest_test.pdf"), - pSink, + pSink, uno::Reference< task::XInteractionHandler >(), rtl::OUString(), mxCtx ); @@ -536,11 +536,11 @@ namespace aAdaptor.setTreeVisitorFactory( createDrawTreeVisitorFactory() ); ::rtl::OUString aURL, aAbsURL, aBaseURL; - osl_getFileURLFromSystemPath( (msBaseDir + rtl::OUString::createFromAscii("pdfi_unittest_draw.xml")).pData, + osl_getFileURLFromSystemPath( (msBaseDir + rtl::OUString::createFromAscii("pdfi_unittest_draw.xml")).pData, &aURL.pData ); osl_getProcessWorkingDir(&aBaseURL.pData); osl_getAbsoluteFileURL(aBaseURL.pData,aURL.pData,&aAbsURL.pData); - CPPUNIT_ASSERT_MESSAGE("Exporting to ODF", + CPPUNIT_ASSERT_MESSAGE("Exporting to ODF", aAdaptor.odfConvert( msBaseDir + rtl::OUString::createFromAscii("pdfi_unittest_test.pdf"), new OutputWrap(aAbsURL), NULL )); @@ -552,11 +552,11 @@ namespace aAdaptor.setTreeVisitorFactory( createWriterTreeVisitorFactory() ); ::rtl::OUString aURL, aAbsURL, aBaseURL; - osl_getFileURLFromSystemPath( (msBaseDir + rtl::OUString::createFromAscii("pdfi_unittest_writer.xml")).pData, + osl_getFileURLFromSystemPath( (msBaseDir + rtl::OUString::createFromAscii("pdfi_unittest_writer.xml")).pData, &aURL.pData ); osl_getProcessWorkingDir(&aBaseURL.pData); osl_getAbsoluteFileURL(aBaseURL.pData,aURL.pData,&aAbsURL.pData); - CPPUNIT_ASSERT_MESSAGE("Exporting to ODF", + CPPUNIT_ASSERT_MESSAGE("Exporting to ODF", aAdaptor.odfConvert( msBaseDir + rtl::OUString::createFromAscii("pdfi_unittest_test.pdf"), new OutputWrap(aAbsURL), NULL )); @@ -568,7 +568,7 @@ namespace CPPUNIT_TEST(testOdfDrawExport); CPPUNIT_TEST_SUITE_END(); }; - + } // ======================================================================= diff --git a/sdext/source/pdfimport/tree/imagecontainer.cxx b/sdext/source/pdfimport/tree/imagecontainer.cxx index 9b9cc92..2543383 100644 --- a/sdext/source/pdfimport/tree/imagecontainer.cxx +++ b/sdext/source/pdfimport/tree/imagecontainer.cxx @@ -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 @@ -53,7 +53,7 @@ using namespace com::sun::star; namespace pdfi { -namespace +namespace { static const sal_Char aBase64EncodeTable[] = @@ -76,16 +76,16 @@ rtl::OUString encodeBase64( const sal_Int8* i_pBuffer, const sal_uInt32 i_nBuffe ((sal_uInt8)i_pBuffer[i + 2]); aBuf.appendAscii("===="); - + sal_uInt8 nIndex (static_cast<sal_uInt8>((nBinary & 0xFC0000) >> 18)); aBuf.setCharAt(nBufPos, aBase64EncodeTable [nIndex]); - + nIndex = static_cast<sal_uInt8>((nBinary & 0x3F000) >> 12); aBuf.setCharAt(nBufPos+1, aBase64EncodeTable [nIndex]); - + nIndex = static_cast<sal_uInt8>((nBinary & 0xFC0) >> 6); aBuf.setCharAt(nBufPos+2, aBase64EncodeTable [nIndex]); - + nIndex = static_cast<sal_uInt8>((nBinary & 0x3F)); aBuf.setCharAt(nBufPos+3, aBase64EncodeTable [nIndex]); } @@ -104,21 +104,21 @@ rtl::OUString encodeBase64( const sal_Int8* i_pBuffer, const sal_uInt32 i_nBuffe } sal_uInt8 nIndex (static_cast<sal_uInt8>((nBinary & 0xFC0000) >> 18)); aBuf.setCharAt(nBufPos, aBase64EncodeTable [nIndex]); - + nIndex = static_cast<sal_uInt8>((nBinary & 0x3F000) >> 12); aBuf.setCharAt(nBufPos+1, aBase64EncodeTable [nIndex]); - + if( nRemain == 2 ) { nIndex = static_cast<sal_uInt8>((nBinary & 0xFC0) >> 6); aBuf.setCharAt(nBufPos+2, aBase64EncodeTable [nIndex]); } } - + return aBuf.makeStringAndClear(); } -} // namespace +} // namespace ImageContainer::ImageContainer() : m_aImages() diff --git a/sdext/source/presenter/PresenterComponent.hxx b/sdext/source/presenter/PresenterComponent.hxx index 55e71bb..87758b2 100644 --- a/sdext/source/presenter/PresenterComponent.hxx +++ b/sdext/source/presenter/PresenterComponent.hxx @@ -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 diff --git a/swext/mediawiki/build.xml b/swext/mediawiki/build.xml index a43874b..85cee30 100644 --- a/swext/mediawiki/build.xml +++ b/swext/mediawiki/build.xml @@ -2,44 +2,44 @@ <!--*********************************************************************** * 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: build.xml,v $ - + $Revision: 1.20.8.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 <http://www.openoffice.org/license.html> for a copy of the LGPLv3 License. - + ************************************************************************ --> <project default="all"> <target name="init"> <property environment="env"/> <property name="ext" value="oxt"/> - <property name="officeroot" value="/export/home/mav/OFFICES/OOG680/m5_netbeans_pro"/> - <property name="office.home" value="${officeroot}"/> + <property name="officeroot" value="/export/home/mav/OFFICES/OOG680/m5_netbeans_pro"/> + <property name="office.home" value="${officeroot}"/> <!-- fallbacks for locations, when solenv is not used --> <condition property="target" value="wikiaddon"> <not><isset property="target"/></not> - </condition> + </condition> <condition property="out" value="./build"> <not><isset property="out"/></not> </condition> @@ -50,41 +50,41 @@ <!-- locations used throughout the build --> <property name="name" value="wiki-publisher"/> <property name="dist" value="${out}/bin"/> - <property name="classes" value="${out}/class"/> - <property name="classes.test" value="${out}/class-test"/> + <property name="classes" value="${out}/class"/> + <property name="classes.test" value="${out}/class-test"/> <property name="officeclasses" value="${solar.jar}"/> - + <!-- build options --> - <property name="sourcelevel" value="1.4"/> - <property name="verbose" value="false"/> + <property name="sourcelevel" value="1.4"/> + <property name="verbose" value="false"/> <property name="debug" value="true"/> - + <!-- build classpath --> - <path id="classpath"> + <path id="classpath"> <pathelement location="${officeclasses}/juh.jar"/> <pathelement location="${officeclasses}/jurt.jar"/> <pathelement location="${officeclasses}/ridl.jar"/> - <pathelement location="${officeclasses}/unoil.jar"/> + <pathelement location="${officeclasses}/unoil.jar"/> <!-- 3rd party libs --> <pathelement location="${commons-codec-jar}"/> <pathelement location="${commons-httpclient-jar}"/> <pathelement location="${commons-lang-jar}"/> <pathelement location="${commons-logging-jar}"/> </path> - + <!-- create output directories --> <mkdir dir="${classes}"/> <mkdir dir="${classes.test}"/> <mkdir dir="${dist}"/> </target> - + <target name="compile" depends="init"> <javac debug="${debug}" destdir="${classes}" classpathref="classpath" - source="${sourcelevel}" verbose="${verbose}"> + source="${sourcelevel}" verbose="${verbose}"> <src path="src"/> </javac> </target> - + <target name="xcucheck" depends="init"> <condition property="no.merge.present"> <not> @@ -96,19 +96,19 @@ <target name="xcumerge" depends="xcucheck, init" if="no.merge.present"> <copy todir="${out}/misc/${target}/merge"> <fileset dir="${out}/misc/${target}/registry/data" includes="**/*.xcu" casesensitive="yes"/> - </copy> + </copy> </target> <target name="jar" depends="compile, init"> <jar basedir="${classes}" compress="true" jarfile="${dist}/${target}.jar"> <manifest> - <!-- FIXME: Set Class-Path correctly for the system case !--> + <!-- FIXME: Set Class-Path correctly for the system case !--> <attribute name="Class-Path" value="commons-codec-1.3.jar commons-lang-2.3.jar commons-httpclient-3.1.jar commons-logging-1.1.1.jar"/> <attribute name="RegistrationClassName" value="com.sun.star.wiki.WikiEditorImpl"/> - </manifest> + </manifest> </jar> </target> - + <target name="tmpdir" depends="xcumerge, jar, init"> <copy todir="${out}/misc/${target}/package_tmp" overwrite="true" encoding="UTF-8"> <fileset dir="${out}/misc/${target}" includes="description.xml" casesensitive="yes"/> @@ -147,8 +147,8 @@ <file file="${commons-httpclient-jar}"/> <file file="${commons-lang-jar}"/> <file file="${commons-logging-jar}"/> - <zipfileset file="${solar.bin}/xslt/export/wiki/odt2mediawiki.xsl" casesensitive="yes" fullpath="filter/odt2mediawiki.xsl"/> - <zipfileset file="${solar.bin}/xslt/export/wiki/mediawiki.ott" casesensitive="yes" fullpath="templates/MediaWiki/mediawiki.ott"/> + <zipfileset file="src/filter/odt2mediawiki.xsl" casesensitive="yes" fullpath="filter/odt2mediawiki.xsl"/> + <zipfileset file="src/filter/mediawiki.ott" casesensitive="yes" fullpath="templates/MediaWiki/mediawiki.ott"/> <zipfileset dir="${solar.bin}/xslt/export/xsltml" casesensitive="yes" prefix="filter/math"/> <zipfileset dir="src" includes="uno-extension-manifest.xml" casesensitive="yes" fullpath="META-INF/manifest.xml"/> <zipfileset dir="dialogs" includes="**/*.xdl,**/*.xba,**/*.xlb" casesensitive="yes" prefix="WikiEditor"/> @@ -156,7 +156,7 @@ <zipfileset dir="src" includes="THIRDPARTYLICENSEREADME.html" casesensitive="yes" prefix="license"/> </zip> </target> - + <target name="development-package" depends="jar, init"> <delete file="${dist}/${target}_develop.zip"/> <zip destfile="${dist}/${target}_develop.zip"> @@ -170,6 +170,8 @@ <fileset dir="${out}/misc/${target}/merge/org/openoffice/TypeDetection" includes="*.xcu" casesensitive="yes"/> --> <fileset dir="src/registry/data/org/openoffice/TypeDetection" includes="*.xcu" casesensitive="yes"/> + <zipfileset file="src/filter/odt2mediawiki.xsl" casesensitive="yes" fullpath="filter/odt2mediawiki.xsl"/> + <zipfileset file="src/filter/mediawiki.ott" casesensitive="yes" fullpath="templates/MediaWiki/mediawiki.ott"/> <zipfileset dir="${out}/misc/${target}/help" includes="**/*.xhp,component.txt" casesensitive="yes" prefix="help"/> <zipfileset dir="dialogs" includes="**/*.xdl,**/*.xba,**/*.xlb" casesensitive="yes" prefix="WikiEditor"/> <zipfileset dir="src" includes="uno-extension-manifest.xml" casesensitive="yes" fullpath="META-INF/manifest.xml"/> @@ -190,8 +192,8 @@ <delete dir="${dist}/${target}_develop.zip"/> </target> - <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> - + <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + <target name="uno-deploy" description="Deploys UNO extension package" depends="uno-package"> <echo message="deploying UNO extension package ..."/> <echo message="${office.unopkg} add -f ${uno.package.name}"/> @@ -199,11 +201,11 @@ <arg value="add"/> <arg value="-f"/> <arg file="${uno.package.name}"/> - </exec> + </exec> </target> - <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> - + <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + <target name="uno-debug" description="Debugss UNO extension package in Target Office" depends="uno-package"> <!-- security fail for executing this without netbeans --> <fail unless="netbeans.home">This target can only run inside the NetBeans IDE.</fail> @@ -222,7 +224,7 @@ <arg value="-f"/> <arg file="${uno.package.name}"/> <env key="UserInstallation" value="${office.debug.user.directory}"/> - </exec> + </exec> <!-- start Office with debug Java and user installation --> <echo message=" starting the Office with ..."/> <echo message=" user installation: ${office.debug.user.directory}"/> @@ -232,6 +234,6 @@ <exec executable="${office.soffice}" dir="${office.program.dir}" failonerror="true"> <env key="UserInstallation" value="${office.debug.user.directory}"/> <env key="JAVA_TOOL_OPTIONS" value=""-Xdebug" "-Xrunjdwp:transport=dt_socket,address=${jpda.address}""/> - </exec> + </exec> </target> </project> diff --git a/swext/mediawiki/src/filter/mediawiki.ott b/swext/mediawiki/src/filter/mediawiki.ott Binary files differnew file mode 100644 index 0000000..eb94e96 --- /dev/null +++ b/swext/mediawiki/src/filter/mediawiki.ott diff --git a/swext/mediawiki/src/filter/odt2mediawiki.xsl b/swext/mediawiki/src/filter/odt2mediawiki.xsl new file mode 100755 index 0000000..8d21a1c --- /dev/null +++ b/swext/mediawiki/src/filter/odt2mediawiki.xsl @@ -0,0 +1,1567 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + odt2wiki: OpenDocument to WikiMedia transformation + Copyright (C) 2007 Bernhard Haumacher (haui at haumacher dot de) + + 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. +--> +<stylesheet version="1.0" + xmlns="http://www.w3.org/1999/XSL/Transform" + + xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" + xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" + xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" + xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" + xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" + xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" + xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" + xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" + xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:math="http://www.w3.org/1998/Math/MathML" + xmlns:dom="http://www.w3.org/2001/xml-events" + xmlns:xforms="http://www.w3.org/2002/xforms" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +> + + <!-- + == Customization options == + --> + + <!-- Constant defining the newline token. --> + <param name="NL" select="' '"/> + + <!-- String that a tabulator is expanded with in preformatted paragraphs. --> + + <variable name="codetabdocument-value" + select="/office:document/office:meta/meta:user-defined[@meta:name='CODE_TAB_REPLACEMENT']"/> + + <param name="CODE_TAB_REPLACEMENT"> + + <choose> + + <when test="boolean($codetabdocument-value)"> + <value-of select="$codetabdocument-value"/> + </when> + + <otherwise> + <value-of select="' '"/> + </otherwise> + </choose> + </param> + + <!-- + Switch that suppresses separation of paragraphs with empty lines. + (Set to 1 to activate) --> + <param name="CODE_JOIN_PARAGRAPHS" + select="boolean(string(/office:document/office:meta/meta:user-defined[@meta:name='CODE_JOIN_PARAGRAPHS']) != 'false')"/> + + <variable name="document-value" + select="/office:document/office:meta/meta:user-defined[@meta:name='CODE_STYLES']"/> + + <param name="CODE_STYLES"> + + <choose> + <when test="boolean($document-value)"> + <value-of select="$document-value"/> + </when> + + <otherwise> + <value-of select="''"/> + </otherwise> + </choose> + </param> + + <variable name="table-class" + select="/office:document/office:meta/meta:user-defined[@meta:name='TABLE_CLASS']"/> + + <param name="TABLE_CLASS"> + <choose> + <when test="boolean($table-class)"> + <value-of select="$table-class"/> + </when> + + <otherwise> + <value-of select="''"/> + </otherwise> + </choose> + </param> + + <variable name="USE_DEFAULT_TABLE_CLASS" select="string-length($TABLE_CLASS) > 0"/> + + + <!-- + == Wiki style constants == + --> + + <!-- Bold character style. --> + <variable name="BOLD_BIT" select="1"/> + + <!-- Italic character style. --> + <variable name="ITALIC_BIT" select="2"/> + + <!-- Subscript character style. --> + <variable name="SUBSCRIPT_BIT" select="4"/> + + <!-- Superscript character style. --> + <variable name="SUPERSCRIPT_BIT" select="8"/> + + <!-- Typewriter character style. --> + <variable name="TYPEWRITER_BIT" select="16"/> + + <!-- Preformatted text paragraph style. --> + <variable name="CODE_BIT" select="32"/> + + <!-- Centered paragraph style. --> + <variable name="CENTER_BIT" select="64"/> + + <!-- Right aligned paragraph style. --> + <variable name="RIGHT_BIT" select="128"/> + + <!-- Constant defining the empty style. --> + <variable name="NO_STYLE" select="0"/> + + + + <output + method="text" + media-type="text/plain" + encoding="UTF-8" + /> + + + <!-- + == Reference resolution == + --> + + <key + name="style-ref" + match="//style:style" + use="@style:name" + /> + + <key + name="list-style-ref" + match="//text:list-style" + use="@style:name" + /> + + <key + name="font-face-ref" + match="//style:font-face" + use="@style:name" + /> + + <key + name="reference-resolution" + match="//text:reference-mark | //text:reference-mark-start" + use="@text:name" + /> + + + <!-- + Multiple pages (draw only) + --> + + <template match="draw:page"> + <value-of select="concat(' <!-- Page ', @draw:name, '--> ')"/> + <apply-templates/> + <value-of select="' ---- '"/> + </template> + + + <!-- + == Lists == + --> + + <template match="text:list"> + <!-- + Check, whether this list is used to implement the outline numbering + for headings. Such list must not be exported, because within the wiki, + automatic outline numbering is performed. An outline list has a single + text:h element as its single leaf grandchild. + + This method of section numbering seems not to be used when creating new + documents with OpenOffice.org 2.2, but the document containing the + OpenDocument specification version 1.1 uses such numbering through nested + lists. + --> + <choose> + <when test="boolean(./descendant::node()[not(./self::text:list) and not(./self::text:list-item) and not(./ancestor-or-self::text:h)])"> + <apply-templates/> + </when> + + <otherwise> + <apply-templates select=".//text:h"/> + </otherwise> + </choose> + </template> + + <template match="text:list-item"> + <if test="position() > 1 or boolean(ancestor::text:list-item)"> + <value-of select="$NL"/> + </if> + <variable name="list-style" + select="key('list-style-ref',ancestor::text:list[boolean(@text:style-name)][1]/@text:style-name)"/> + <call-template name="mk-list-token"> + <with-param name="list-style" select="$list-style"/> + <with-param name="level" select="count(ancestor::text:list)"/> + </call-template> + <text> </text> + <apply-templates/> + <if test="position() = last() and not(boolean(ancestor::text:list-item))"> + <!-- End of (potentially nested) list is marked with a double newline. --> + <value-of select="$NL"/> + <value-of select="$NL"/> + </if> + </template> + + <template name="mk-list-token"> + <param name="list-style"/> + <param name="level"/> + + <if test="$level > 1"> + <call-template name="mk-list-token"> + <with-param name="list-style" select="$list-style"/> + <with-param name="level" select="$level - 1"/> + </call-template> + </if> + + <variable name="number-style" select="$list-style/text:list-level-style-number[@text:level=$level]"/> + <variable name="bullet-style" select="$list-style/text:list-level-style-bullet[@text:level=$level]"/> + <choose> + <when test="boolean($number-style)"> + <choose> + <when test="string-length($number-style/@style:num-format) > 0"> + <text>#</text> + </when> + <otherwise> + <text>:</text> + </otherwise> + </choose> + </when> + <when test="boolean($bullet-style)"> + <text>*</text> + </when> + </choose> + </template> + + + <!-- + == Headings == + --> + + <template match="text:h"> + <if test="string-length(.) > 0"> + <variable name="token"> + <call-template name="mk-heading-prefix"> + <with-param name="level" select="@text:outline-level"/> + </call-template> + </variable> + <value-of select="$token"/> + <text> </text> + <apply-templates/> + <text> </text> + <value-of select="$token"/> + <value-of select="$NL"/> + </if> + </template> + + <template match="text:index-title"> + <text>== </text> + <apply-templates/> + <text> ==</text> + <value-of select="$NL"/> + </template> + + <!-- + Function generating a wiki heading prefix. + + @param level + The heading level. The value must be between 1 and 5. + --> + <template name="mk-heading-prefix"> + <param name="level"/> + <choose> + <when test="$level > 5"> + <call-template name="mk-heading-prefix"> + <with-param name="level" select="5"/> + </call-template> + </when> + <when test="$level > 0"> + <text>=</text> + <call-template name="mk-heading-prefix"> + <with-param name="level" select="$level - 1"/> + </call-template> + </when> + </choose> + </template> + + <!-- + Funktion generating a token consisting of the given character + repeated 'level' times. + + @param level + The lengh of the result. + @param char + The character that should be repeated 'level' times. + --> + <template name="mk-token"> + <param name="level"/> + <param name="char"/> + <if test="$level > 0"> + <value-of select="$char"/> + <call-template name="mk-token"> + <with-param name="level" select="$level - 1"/> + <with-param name="char" select="$char"/> + </call-template> + </if> + </template> + + + <!-- + == Tables == + --> + + <template match="table:table"> + <text> </text> + <text>{|</text> + + <choose> + <when test="$USE_DEFAULT_TABLE_CLASS"> + <text> class="</text> + <value-of select="$TABLE_CLASS"/> + <text>"</text> + </when> + + <otherwise> + <!-- Default setting to translate detailed office table cell styles correctly. --> + <text> style="border-spacing:0;"</text> + </otherwise> + </choose> + + <text> </text> + <apply-templates/> + <text> </text> + <text>|}</text> + <text> </text> + </template> + + <template match="table:table-header-rows"> + <apply-templates/> + </template> + + <template match="table:table-row[position() < last()] | table:table-header-rows/table:table-row"> + <apply-templates/> + <text> </text> + <text>|-</text> + <text> </text> + </template> + + <template match="table:table-row"> + <apply-templates/> + </template> + + <template match="table:table-header-rows//table:table-cell"> + <text>! </text> + <if test="@table:number-columns-spanned"> + <text>colspan="</text> + <value-of select="@table:number-columns-spanned"/> + <text>" | </text> + </if> + <apply-templates/> + <value-of select="$NL"/> + </template> + + <template match="table:table-cell"> + <text>|</text> + <if test="@table:number-columns-spanned"> + <text> colspan="</text> + <value-of select="@table:number-columns-spanned"/> + <text>" </text> + </if> + <if test="not($USE_DEFAULT_TABLE_CLASS) and boolean(@table:style-name)"> + <variable name="style-element" select="key('style-ref', @table:style-name)"/> + + <variable name="style"> + <call-template name="translate-style-property"> + <with-param name="style-name" select="'background-color'"/> + <with-param name="style-property" select="$style-element/style:table-cell-properties/@fo:background-color"/> + </call-template> + + <call-template name="translate-style-property"> + <with-param name="style-name" select="'border'"/> + <with-param name="style-property" select="$style-element/style:table-cell-properties/@fo:border"/> + </call-template> + <call-template name="translate-style-property"> + <with-param name="style-name" select="'border-top'"/> + <with-param name="style-property" select="$style-element/style:table-cell-properties/@fo:border-top"/> + </call-template> + <call-template name="translate-style-property"> + <with-param name="style-name" select="'border-bottom'"/> + <with-param name="style-property" select="$style-element/style:table-cell-properties/@fo:border-bottom"/> + </call-template> + <call-template name="translate-style-property"> + <with-param name="style-name" select="'border-left'"/> + <with-param name="style-property" select="$style-element/style:table-cell-properties/@fo:border-left"/> + </call-template> + <call-template name="translate-style-property"> + <with-param name="style-name" select="'border-right'"/> + <with-param name="style-property" select="$style-element/style:table-cell-properties/@fo:border-right"/> + </call-template> + + <call-template name="translate-style-property"> + <with-param name="style-name" select="'padding'"/> + <with-param name="style-property" select="$style-element/style:table-cell-properties/@fo:padding"/> + </call-template> + <call-template name="translate-style-property"> + <with-param name="style-name" select="'padding-top'"/> + <with-param name="style-property" select="$style-element/style:table-cell-properties/@fo:padding-top"/> + </call-template> + <call-template name="translate-style-property"> + <with-param name="style-name" select="'padding-bottom'"/> + <with-param name="style-property" select="$style-element/style:table-cell-properties/@fo:padding-bottom"/> + </call-template> + <call-template name="translate-style-property"> + <with-param name="style-name" select="'padding-left'"/> + <with-param name="style-property" select="$style-element/style:table-cell-properties/@fo:padding-left"/> + </call-template> + <call-template name="translate-style-property"> + <with-param name="style-name" select="'padding-right'"/> + <with-param name="style-property" select="$style-element/style:table-cell-properties/@fo:padding-right"/> + </call-template> + </variable> + + <if test="string-length($style) > 0"> + <text> style="</text> + <value-of select="$style"/> + <text>"</text> + </if> + </if> + <text>| </text> + <apply-templates/> + <value-of select="$NL"/> + </template> + + <template name="translate-style-property"> + <param name="style-name"/> + <param name="style-property"/> + + <if test="boolean($style-property)"> + <value-of select="$style-name"/> + <text>:</text> + <value-of select="string($style-property)"/> + <text>;</text> + </if> + </template> + + <!-- + == WikiMath == + --> + + <template match="text:span[@text:style-name='WikiMath']"> + <value-of select="'<math>'"/> + <apply-templates/> + <value-of select="'</math>'"/> + </template> + + + <!-- + == Native links == + --> + + <template match="text:a"> + <variable name="link-ref" select="@xlink:href"/> + <choose> + <when test="string-length($link-ref) > 0"> + <variable name="link-label" select="string(.)"/> + <text>[</text> + <value-of select="$link-ref"/> + <text> </text> + <value-of select="$link-label"/> + <text>]</text> + </when> + + <otherwise> + <apply-templates/> + </otherwise> + </choose> + </template> + + + <!-- + == WikiLink == + --> + + <template match="text:span[@text:style-name='WikiLink']"> + <value-of select="'[['"/> + <variable name="link-def" select="string(.)"/> + <variable name="link-label" select="normalize-space(substring-before($link-def, '['))"/> + <variable name="link-ref" select="normalize-space(substring-before(substring-after($link-def, '['), ']'))"/> + <choose> + <when test="boolean($link-ref)"> + <value-of select="concat($link-ref, '|', $link-label)"/> + </when> + <otherwise> + <value-of select="$link-def"/> + </otherwise> + </choose> + <value-of select="']]'"/> + </template> + + + <!-- + == Paragraphs == + --> + + <template match="text:p[string-length(.) > 0]"> + <variable name="style"> + <call-template name="mk-style-set"> + <with-param name="node" select="."/> + </call-template> + </variable> + + <variable name="code" + select="($style mod (2 * $CODE_BIT)) - ($style mod ($CODE_BIT)) != 0"/> + <variable name="center" + select="($style mod (2 * $CENTER_BIT)) - ($style mod ($CENTER_BIT)) != 0"/> + <variable name="right" + select="($style mod (2 * $RIGHT_BIT)) - ($style mod ($RIGHT_BIT)) != 0"/> + + <choose> + <when test="$center"> + <text><center></text> + </when> + <when test="$right"> + <text><div align="right"></text> + </when> + <when test="$code"> + <value-of select="' '"/> + </when> + </choose> + + <apply-templates/> + + <choose> + <when test="$center"> + <text></center></text> + </when> + <when test="$right"> + <text></div></text> + </when> + </choose> + + <variable name="paragraph-right" + select="./following-sibling::*[1]/self::text:p"/> + + <choose> + <when test="boolean($paragraph-right)"> + <!-- + Insert end of line only if not within a list. Within wiki lists, + a line break leaves the current list item. + --> + <choose> + <when test="boolean(ancestor::text:list-item)"> + <text><br/> </text> + </when> + <when test="$code"> + <variable name="style-right"> + <call-template name="mk-style-set"> + <with-param name="node" select="$paragraph-right"/> + </call-template> + </variable> + + <variable name="code-right" + select="($style-right mod (2 * $CODE_BIT)) - ($style-right mod ($CODE_BIT)) != 0"/> + + <choose> + <when test="$code-right"> + <choose> + <when test="$CODE_JOIN_PARAGRAPHS"> + <value-of select="$NL"/> + </when> + + <otherwise> + <value-of select="$NL"/> + <value-of select="' '"/> + <value-of select="$NL"/> + </otherwise> + </choose> + </when> + <otherwise> + <value-of select="$NL"/> + <value-of select="$NL"/> + </otherwise> + </choose> + </when> + <otherwise> + <value-of select="$NL"/> + <value-of select="$NL"/> + </otherwise> + </choose> + </when> + <when test="boolean(./following-sibling::*[1]/self::text:h) or boolean(./following-sibling::*[1]/self::table:table) or boolean(./following-sibling::*[1]/self::text:bibliography)"> + <!-- Newline before following heading or table. --> + <value-of select="$NL"/> + <value-of select="$NL"/> + </when> + <when test="./following-sibling::*[1]/self::text:list and not(ancestor::text:list-item)"> + <value-of select="$NL"/> + <value-of select="$NL"/> + </when> + </choose> + </template> + + <template match="text:p[string-length(.) = 0 and string-length(preceding-sibling::*[1]/self::text:p) > 0]"> + <value-of select="$NL"/> + </template> + + + <!-- + == Preformatted text == + --> + + <template match="text:s"> + <variable name="style"> + <call-template name="mk-style-set"> + <with-param name="node" select="."/> + </call-template> + </variable> + + <variable name="code" + select="($style mod (2 * $CODE_BIT)) - ($style mod ($CODE_BIT)) != 0"/> + + <if test="$code"> + <choose> + <when test="@text:c"> + <call-template name="mk-token"> + <with-param name="level" select="@text:c"/> + <with-param name="char" select="' '"/> + </call-template> + </when> + <otherwise> + <value-of select="' '"/> + </otherwise> + </choose> + </if> + </template> + + <template match="text:tab"> + <variable name="style"> + <call-template name="mk-style-set"> + <with-param name="node" select="."/> + </call-template> + </variable> + + <variable name="code" + select="($style mod (2 * $CODE_BIT)) - ($style mod ($CODE_BIT)) != 0"/> + + <if test="$code"> + <value-of select="$CODE_TAB_REPLACEMENT"/> + </if> + </template> + + <template match="text:line-break"> + <variable name="style"> + <call-template name="mk-style-set"> + <with-param name="node" select="."/> + </call-template> + </variable> + + <variable name="code" + select="($style mod (2 * $CODE_BIT)) - ($style mod ($CODE_BIT)) != 0"/> + + <if test="$code"> + <value-of select="$NL"/> + <value-of select="' '"/> + </if> + </template> + + <!-- + Footnotes + --> + + <template match="text:note-body"> + <variable name="note" select="./parent::text:note"/> + + <if test="$note/@text:note-class = 'footnote'"> + <text><ref name="</text> + <value-of select="$note/@text:id"/> + <text>"></text> + <apply-templates/> + <text></ref></text> + </if> + </template> + + <template match="text:note-ref[@text:note-class='footnote']"> + <text><ref name="</text> + <value-of select="@text:ref-name"/> + <text>"/></text> + </template> + + + <!-- + == Images == + --> + + <template match="draw:text-box[boolean(.//draw:image)]"> + <variable name="image" select=".//draw:image[1]"/> + + <variable name="image-description"> + <apply-templates/> + </variable> + + <text>[[</text> + <call-template name="mk-image-name"> + <with-param name="image" select="$image"/> + </call-template> + <text>|thumb|</text> + <value-of select="normalize-space($image-description)"/> + <text>]]</text> + </template> + + <template match="draw:image[not(boolean(ancestor::draw:text-box))]"> + <text>[[</text> + <call-template name="mk-image-name"> + <with-param name="image" select="."/> + </call-template> + <text>]]</text> + </template> + + <template name="mk-image-name"> + <param name="image"/> + + <variable name="base-name"> + <call-template name="mk-base-name"> + <with-param name="href" select="$image/@xlink:href"/> + </call-template> + </variable> + + <if test="not(starts-with($base-name, 'Image:'))"> + <value-of select="'Image:'"/> + </if> + <value-of select="$base-name"/> + </template> + + <template name="mk-base-name"> + <param name="href"/> + + <variable name="result" select="substring-after($href, '/')"/> + <choose> + <when test="boolean($result)"> + <call-template name="mk-base-name"> + <with-param name="href" select="$result"/> + </call-template> + </when> + <otherwise> + <value-of select="$href"/> + </otherwise> + </choose> + </template> + + <!-- Frames --> + + <template match="draw:frame"> + <choose> + <when test="draw:object/math:math"> + <apply-templates select="draw:object/math:math[1]"/> + </when> + + <when test="draw:image"> + <apply-templates select="draw:image[1]"/> + </when> + + <otherwise> + <apply-templates select="./*[1]"/> + </otherwise> + </choose> + + </template> + + <!-- Formulas (Objects) --> + + <include href="math/mmltex.xsl"/> + + <template match="math:math" priority="1"> + <text><math></text> + <apply-templates/> + <text></math></text> + </template> + + + <!-- + References + --> + + <!-- TODO: text:bibliography-mark --> + + <template match="text:reference-ref"> + <variable name="reference-mark" select="key('reference-resolution', @text:ref-name)"/> + + <choose> + <when test="boolean($reference-mark)"> + <!-- + In wiki syntax, only a local reference to a heading can be inserted. + If the link target is a descendant of a heading element, a link can be + inserted in the result. --> + <variable name="header-anchor" select="$reference-mark/ancestor::text:h[1]"/> + <if test="boolean($header-anchor)"> + <text>[[#</text> + <value-of select="string($header-anchor)"/> + <text>|</text> + </if> + + <variable name="reference-text" select="string(.)"/> + + <choose> + <!-- Check, whether the reference text is cached in the document. --> + <when test="string-length($reference-text) > 0"> + <value-of select="$reference-text"/> + </when> + + <otherwise> + <!-- + TODO: Evaluate the @text:reference-format attribute and + generate the replacement text (difficult).--> + <text>(REFERENCE TEXT UNAVAILABLE: "</text> + <value-of select="@text:ref-name"/> + <text>")</text> + </otherwise> + </choose> + + <if test="boolean($header-anchor)"> + <text>]]</text> + </if> + </when> + + <otherwise> + <text>(UNDEFINED REFERENCE: "</text> + <value-of select="@text:ref-name"/> + <text>")</text> + </otherwise> + </choose> + </template> + + <template match="text:reference-mark"> + <!-- TODO: Output an anchor. --> + <apply-templates/> + </template> + + <template match="text:reference-mark-start"> + <!-- TODO: Output an anchor. --> + </template> + + <!-- + == Plain text == + --> + + <template match="text:p/text() | text:h/text() | text:span/text() | text:sequence/text() | text:sequence-ref/text() | text:a/text() | text:bookmark-ref/text() | text:reference-mark/text() | text:date/text() | text:time/text() | text:page-number/text() | text:sender-firstname/text() | text:sender-lastname/text() | text:sender-initials/text() | text:sender-title/text() | text:sender-position/text() | text:sender-email/text() | text:sender-phone-private/text() | text:sender-fax/text() | text:sender-company/text() | text:sender-phone-work/text() | text:sender-street/text() | text:sender-city/text() | text:sender-postal-code/text() | text:sender-country/text() | text:sender-state-or-province/text() | text:author-name/text() | text:author-initials/text() | text:chapter/text() | text:file-name/text() | text:template-name/text() | text:sheet-name/text() | text:variable-get/text() | text:variable-input/text() | text:user-field-get/text() | text:user-field-input/text() | text:expression/text() | text:text-input/text() | text:initial-creator/text() | text:creation-date/text() | text:creation-time/text() | text:description/text() | text:user-defined/text() | text:print-date/text() | text:printed-by/text() | text:title/text() | text:subject/text() | text:keywords/text() | text:editing-cycles/text() | text:editing-duration/text() | text:modification-date/text() | text:creator/text() | text:modification-time/text() | text:page-count/text() | text:paragraph-count/text() | text:word-count/text() | text:character-count/text() | text:table-count/text() | text:image-count/text() | text:object-count/text() | text:database-display/text() | text:database-row-number/text() | text:database-name/text() | text:page-variable-get/text() | text:placeholder/text() | text:conditional-text/text() | text:hidden-text/text() | text:execute-macro/text() | text:dde-connection/text() | text:measure/text() | text:table-formula/text()"> + <choose> + <when test="boolean(./ancestor::table:table-header-rows | ./ancestor::text:h)"> + <!-- + No explicit styles within table headings or section headings, + because those styles are consistently declared by the Wiki engine. --> + <value-of select="."/> + </when> + + <when test="string-length(.) > 0"> + <variable name="style"> + <call-template name="mk-style-set"> + <with-param name="node" select="."/> + </call-template> + </variable> + + <variable name="current-paragraph" + select="./ancestor::text:p[1]"/> + <variable name="paragraph-id" + select="generate-id($current-paragraph)"/> + <variable name="frames" + select="$current-paragraph/descendant::draw:frame"/> + <variable name="frame-count" + select="count($frames)"/> + + <!-- + The current style context consists of all text nodes that are + descendants of the paragraph ancestor of this text node but not + descendants of any frame nodes that are descendants of the current + text nodes paragraph. + --> + <variable name="context" + select="$current-paragraph//text()[not(boolean(./ancestor::draw:frame[1]) and count(./ancestor::draw:frame[1] | $frames) = $frame-count)]"/> + <variable name="context-size" select="count($context)"/> + + <variable name="context-index"> + <call-template name="mk-context-index"> + <with-param name="current-id" select="generate-id(.)"/> + <with-param name="context" select="$context"/> + <with-param name="test-index" select="1"/> + </call-template> + </variable> + + <variable name="style-left"> + <choose> + <when test="$context-index > 1"> + <variable name="left" select="$context[$context-index - 1]"/> + <!-- + The preceding text node is a child of this nodes topmost + styled ancestor. This means that the result of the + transformation will be directly concatenated. + --> + <call-template name="mk-style-set"> + <with-param name="node" select="$left"/> + </call-template> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + <variable name="style-right"> + <choose> + <when test="$context-index < count($context)"> + <variable name="right" select="$context[$context-index + 1]"/> + <!-- + The preceding text node is a child of this nodes topmost + styled ancestor. This means that the result of the + transformation will be directly concatenated. + --> + <call-template name="mk-style-set"> + <with-param name="node" select="$right"/> + </call-template> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + + <variable name="bold" + select="($style mod (2 * $BOLD_BIT)) != 0"/> + <variable name="italic" + select="($style mod (2 * $ITALIC_BIT)) - ($style mod ($ITALIC_BIT)) != 0"/> + <variable name="superscript" + select="($style mod (2 * $SUPERSCRIPT_BIT)) - ($style mod ($SUPERSCRIPT_BIT)) != 0"/> + <variable name="subscript" + select="($style mod (2 * $SUBSCRIPT_BIT)) - ($style mod ($SUBSCRIPT_BIT)) != 0"/> + <variable name="code" + select="($style mod (2 * $CODE_BIT)) - ($style mod ($CODE_BIT)) != 0"/> + <variable name="typewriter" + select="($style mod (2 * $TYPEWRITER_BIT)) - ($style mod ($TYPEWRITER_BIT)) != 0"/> + + <variable name="bold-left" + select="($style-left mod (2 * $BOLD_BIT)) != 0"/> + <variable name="italic-left" + select="($style-left mod (2 * $ITALIC_BIT)) - ($style-left mod ($ITALIC_BIT)) != 0"/> + <variable name="superscript-left" + select="($style-left mod (2 * $SUPERSCRIPT_BIT)) - ($style-left mod ($SUPERSCRIPT_BIT)) != 0"/> + <variable name="subscript-left" + select="($style-left mod (2 * $SUBSCRIPT_BIT)) - ($style-left mod ($SUBSCRIPT_BIT)) != 0"/> + <variable name="typewriter-left" + select="($style-left mod (2 * $TYPEWRITER_BIT)) - ($style-left mod ($TYPEWRITER_BIT)) != 0"/> + + <variable name="bold-right" + select="($style-right mod (2 * $BOLD_BIT)) != 0"/> + <variable name="italic-right" + select="($style-right mod (2 * $ITALIC_BIT)) - ($style-right mod ($ITALIC_BIT)) != 0"/> + <variable name="superscript-right" + select="($style-right mod (2 * $SUPERSCRIPT_BIT)) - ($style-right mod ($SUPERSCRIPT_BIT)) != 0"/> + <variable name="subscript-right" + select="($style-right mod (2 * $SUBSCRIPT_BIT)) - ($style-right mod ($SUBSCRIPT_BIT)) != 0"/> + <variable name="typewriter-right" + select="($style-right mod (2 * $TYPEWRITER_BIT)) - ($style-right mod ($TYPEWRITER_BIT)) != 0"/> + + <!-- Debugging: Add style infos to the output. --> + <!-- + <value-of select="'{'"/> + <value-of select="$style-left"/> + <value-of select="'-'"/> + <value-of select="$style"/> + <value-of select="','"/> + <value-of select="$context-size"/> + <value-of select="'}'"/> + --> + + <if test="$superscript and not($superscript-left)"> + <text><sup></text> + </if> + <if test="$subscript and not($subscript-left)"> + <text><sub></text> + </if> + <if test="not($code) and $typewriter and not($typewriter-left)"> + <text><tt></text> + </if> + <if test="$bold and not($bold-left)"> + <text>'''</text> + </if> + <if test="$italic and not($italic-left)"> + <text>''</text> + </if> + + <call-template name="render-quoted-text"> + <with-param name="text" select="."/> + </call-template> + + <if test="$italic and not($italic-right)"> + <text>''</text> + </if> + <if test="$bold and not($bold-right)"> + <text>'''</text> + </if> + <if test="not($code) and $typewriter and not($typewriter-right)"> + <text></tt></text> + </if> + <if test="$subscript and not($subscript-right)"> + <text></sub></text> + </if> + <if test="$superscript and not($superscript-right)"> + <text></sup></text> + </if> + + <!-- Debugging: Add style details to the output. --> + <!-- + <value-of select="'{'"/> + <value-of select="$style"/> + <value-of select="'-'"/> + <value-of select="$style-right"/> + <value-of select="'}'"/> + --> + + </when> + </choose> + </template> + + <!-- + Function for looking up the position of a node identified by the given + 'current-id' within a node set 'context'. + + The search starts with the the index 'test-index'. The search is recursive + in the 'test-index' argument. To save recursion depth, each recursive call + iteratively tests a fixed number of indexes (by loop unrolling). + --> + <template name="mk-context-index"> + <param name="current-id"/> + <param name="context"/> + <param name="test-index"/> + + <variable name="context-size" select="count($context)"/> + + <choose> + <when test="context-size < $test-index"> + </when> + <when test="$current-id = generate-id($context[$test-index])"> + <value-of select="$test-index"/> + </when> + <when test="context-size < ($test-index + 1)"> + </when> + <when test="$current-id = generate-id($context[$test-index + 1])"> + <value-of select="$test-index + 1"/> + </when> + <when test="context-size < ($test-index + 2)"> + </when> + <when test="$current-id = generate-id($context[$test-index + 2])"> + <value-of select="$test-index + 2"/> + </when> + <when test="context-size < ($test-index + 3)"> + </when> + <when test="$current-id = generate-id($context[$test-index + 3])"> + <value-of select="$test-index + 3"/> + </when> + <when test="context-size < ($test-index + 4)"> + </when> + <when test="$current-id = generate-id($context[$test-index + 4])"> + <value-of select="$test-index + 4"/> + </when> + <when test="context-size < ($test-index + 5)"> + </when> + <when test="$current-id = generate-id($context[$test-index + 5])"> + <value-of select="$test-index + 5"/> + </when> + <when test="context-size < ($test-index + 6)"> + </when> + <otherwise> + <call-template name="mk-context-index"> + <with-param name="current-id" select="$current-id"/> + <with-param name="context" select="$context"/> + <with-param name="test-index" select="$test-index + 6"/> + </call-template> + </otherwise> + </choose> + </template> + + <template name="render-quoted-text"> + <param name="text"/> + + <choose> + <when test="contains($text, '<') or contains($text, '[') or starts-with($text, '----') or starts-with($text, '=') or starts-with($text, '*') or starts-with($text, ';') or starts-with($text, '#')"> + <text><nowiki></text> + <choose> + <when test="contains($text, '</nowiki>')"> + <call-template name="render-escaped-text"> + <with-param name="text" select="$text"/> + </call-template> + </when> + <otherwise> + <call-template name="render-encoded-text"> + <with-param name="text" select="$text"/> + </call-template> + </otherwise> + </choose> + <text></nowiki></text> + </when> + <otherwise> + <call-template name="render-encoded-text"> + <with-param name="text" select="$text"/> + </call-template> + </otherwise> + </choose> + </template> + + <template name="render-escaped-text"> + <param name="text"/> + + <choose> + <when test="contains($text, '<')"> + <call-template name="render-encoded-text"> + <with-param name="text" select="substring-before($text, '<')"/> + </call-template> + <value-of select="'&lt;'"/> + <call-template name="render-escaped-text"> + <with-param name="text" select="substring-after($text, '<')"/> + </call-template> + </when> + <otherwise> + <call-template name="render-encoded-text"> + <with-param name="text" select="$text"/> + </call-template> + </otherwise> + </choose> + </template> + + <template name="render-encoded-text"> + <param name="text"/> + + <choose> + <when test="contains($text, ' ')"> + <value-of select="substring-before($text, ' ')"/> + <value-of select="'&nbsp;'"/> + <call-template name="render-encoded-text"> + <with-param name="text" select="substring-after($text, ' ')"/> + </call-template> + </when> + <otherwise> + <value-of select="$text"/> + </otherwise> + </choose> + </template> + + <!-- + == Wiki styles: bold, italics, ... == + --> + + <template name="mk-style-set"> + <param name="node"/> + + <variable + name="context" + select="$node/ancestor-or-self::*[@text:style-name][1]" + /> + + <choose> + <when test="boolean($context)"> + <variable + name="style" + select="key('style-ref', $context/@text:style-name)" + /> + + <!-- Debugging: Print inspected styles. --> + <!-- + <message> + <value-of select="'=== '"/> + <value-of select="$style/@style:name"/> + <value-of select="' ==='"/> + </message> + --> + + <call-template name="mk-style-set-internal"> + <with-param name="node" select="$context"/> + <with-param name="style" select="$style"/> + <with-param name="style-set" select="$NO_STYLE"/> + <with-param name="style-mask" select="$NO_STYLE"/> + </call-template> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </template> + + <!-- + Compute the wiki style set that corresponds + to the given office style at the given context node. + + @param node + A node in which context the style is computed. If neither the given style + nor one of its linked styles does specify a style of the given type, + ancestor nodes of the given context node are considered. + @param style + A style:style element node. The style of the requested type is searched + in the given style and its linked styles. + @style-set + A bit set of styles already defined by the context. + @style-mask + A bit set of styles that must not be taken from the currently inspected + style, because those styles are already defined by the context. + + @return A bit set composed of the wiki style constants. + --> + <template name="mk-style-set-internal"> + <param name="node"/> + <param name="style"/> + <param name="style-set"/> + <param name="style-mask"/> + + <variable name="text-properties" select="$style/style:text-properties"/> + + <!-- Decompose style-mask into individual bits. --> + <variable name="bold-requested" + select="($style-mask mod (2 * $BOLD_BIT)) = 0"/> + <variable name="italic-requested" + select="($style-mask mod (2 * $ITALIC_BIT)) - ($style-mask mod ($ITALIC_BIT)) = 0"/> + <variable name="superscript-requested" + select="($style-mask mod (2 * $SUPERSCRIPT_BIT)) - ($style-mask mod ($SUPERSCRIPT_BIT)) = 0"/> + <variable name="subscript-requested" + select="($style-mask mod (2 * $SUBSCRIPT_BIT)) - ($style-mask mod ($SUBSCRIPT_BIT)) = 0"/> + <variable name="typewriter-requested" + select="($style-mask mod (2 * $TYPEWRITER_BIT)) - ($style-mask mod ($TYPEWRITER_BIT)) = 0"/> + <variable name="code-requested" + select="($style-mask mod (2 * $CODE_BIT)) - ($style-mask mod ($CODE_BIT)) = 0"/> + <variable name="center-requested" + select="($style-mask mod (2 * $CENTER_BIT)) - ($style-mask mod ($CENTER_BIT)) = 0"/> + <variable name="right-requested" + select="($style-mask mod (2 * $RIGHT_BIT)) - ($style-mask mod ($RIGHT_BIT)) = 0"/> + + <!-- Extract styles that are not already defined by the context. --> + <variable name="bold-style"> + <choose> + <when test="$bold-requested and boolean($text-properties/@fo:font-weight='bold')"> + <!-- Bold found in current style. --> + <value-of select="$BOLD_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + <variable name="bold-mask"> + <choose> + <when test="$bold-requested and boolean($text-properties/@fo:font-weight)"> + <!-- + Other value than "bold" means that the character style is not + bold and no parent style must be considered. + --> + <value-of select="$BOLD_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + + <variable name="italic-style"> + <choose> + <when test="$italic-requested and boolean($text-properties/@fo:font-style='italic')"> + <!-- Italic found in current style. --> + <value-of select="$ITALIC_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + <variable name="italic-mask"> + <choose> + <when test="$italic-requested and boolean($text-properties/@fo:font-style)"> + <!-- + Other value than "italic" means that the character style is not + italic and no parent style must be considered. + --> + <value-of select="$ITALIC_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + + <variable name="superscript-style"> + <choose> + <when test="$superscript-requested and contains($text-properties/@style:text-position, 'super')"> + <value-of select="$SUPERSCRIPT_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + <variable name="superscript-mask"> + <choose> + <when test="$superscript-requested and boolean($text-properties/@style:text-position)"> + <value-of select="$SUPERSCRIPT_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + + <variable name="subscript-style"> + <choose> + <when test="$subscript-requested and contains($text-properties/@style:text-position, 'sub')"> + <value-of select="$SUBSCRIPT_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + <variable name="subscript-mask"> + <choose> + <when test="$subscript-requested and boolean($text-properties/@style:text-position)"> + <value-of select="$SUBSCRIPT_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + + <variable name="typewriter-style"> + <choose> + <when test="$typewriter-requested and ($style/@style:family='text') and boolean($text-properties/@style:font-name)"> + <variable name="font-face" + select="key('font-face-ref', $text-properties/@style:font-name)"/> + <choose> + <when test="$font-face/@style:font-pitch='fixed'"> + <value-of select="$TYPEWRITER_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + <variable name="typewriter-mask"> + <choose> + <!-- Note: Suppress the typewriter style on text within a code paragraph. --> + <when test="$typewriter-requested and boolean($text-properties/@style:font-name)"> + <value-of select="$TYPEWRITER_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + + <variable name="code-style"> + <choose> + <when test="$code-requested and ($style/@style:family='paragraph') and boolean($text-properties/@style:font-name)"> + <variable name="font-face" + select="key('font-face-ref', $text-properties/@style:font-name)"/> + <choose> + <when test="$font-face/@style:font-pitch='fixed' or (boolean(@style:display-name) and contains($CODE_STYLES, $style/@style:display-name))"> + <value-of select="$CODE_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + <variable name="code-mask"> + <choose> + <when test="$code-requested and ($style/@style:family='paragraph') and boolean($text-properties/@style:font-name)"> + <value-of select="$CODE_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + + <variable name="center-style"> + <choose> + <when test="$center-requested and ($style/@style:family='paragraph') and boolean($style/style:paragraph-properties/@fo:text-align='center')"> + <value-of select="$CENTER_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + <variable name="center-mask"> + <choose> + <when test="$center-requested and ($style/@style:family='paragraph') and boolean($style/style:paragraph-properties/@fo:text-align)"> + <value-of select="$CENTER_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + + <variable name="right-style"> + <choose> + <when test="$right-requested and ($style/@style:family='paragraph') and boolean($style/style:paragraph-properties/@fo:text-align='end')"> + <value-of select="$RIGHT_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + <variable name="right-mask"> + <choose> + <when test="$center-requested and ($style/@style:family='paragraph') and boolean($style/style:paragraph-properties/@fo:text-align)"> + <value-of select="$RIGHT_BIT"/> + </when> + <otherwise> + <value-of select="$NO_STYLE"/> + </otherwise> + </choose> + </variable> + + + <!-- Compute the updated styles and mask. --> + <!-- + Note: The bit masks style-mask, bold-style, italic-style,... are + guaranteed to be disjoint, therefore, addition can be use instead + of bitwise or (which is missing in XPath). --> + <variable name="updated-style" + select="$style-set + $bold-style + $italic-style + $superscript-style + $subscript-style + $code-style + $typewriter-style + $center-style + $right-style"/> + <variable name="updated-mask" + select="$style-mask + $bold-mask + $italic-mask + $superscript-mask + $subscript-mask + $code-mask + $typewriter-mask + $center-mask + $right-mask"/> + + <!-- Inspect linked and nested styles. --> + <choose> + <when test="boolean($style/@style:parent-style-name)"> + <!-- Look through the style, the current style is based on. --> + <call-template name="mk-style-set-internal"> + <with-param name="node" select="$node"/> + <with-param name="style" select="key('style-ref', $style/@style:parent-style-name)"/> + <with-param name="style-set" select="$updated-style"/> + <with-param name="style-mask" select="$updated-mask"/> + </call-template> + </when> + <otherwise> + <variable name="ancestors" select="$node/ancestor::*[@text:style-name][1]"/> + + <!-- Debugging: Print currently inspected style. --> + <!-- + <message> + <value-of select="'{'"/> + <value-of select="$style/@style:name"/> + <value-of select="','"/> + <value-of select="$updated-style"/> + <value-of select="','"/> + <value-of select="$updated-mask"/> + <value-of select="','"/> + <value-of select="local-name($ancestors)"/> + <value-of select="',('"/> + <value-of select="$node"/> + <value-of select="')'"/> + <value-of select="'}'"/> + </message> + --> + + <!-- + If there is an ancestor that has a style, use that style, + otherwise, a style is not found. --> + <choose> + <when test="boolean($ancestors)"> + <!-- Look through the style of the nearest ancestor that has a style. --> + <call-template name="mk-style-set-internal"> + <with-param name="node" select="$ancestors"/> + <with-param name="style" select="key('style-ref', $ancestors/@text:style-name)"/> + <with-param name="style-set" select="$updated-style"/> + <with-param name="style-mask" select="$updated-mask"/> + </call-template> + </when> + <otherwise> + <!-- No more styles to inspect. Return the result. --> + <value-of select="$updated-style"/> + </otherwise> + </choose> + </otherwise> + </choose> + </template> + + + <!-- + == Descending the tree == + --> + + <template match="/"> + <apply-templates/> + <value-of select="$NL"/> + <if test="boolean(//text:note[@text:note-class='footnote'])"> + <value-of select="$NL"/> + <text>----</text> + <value-of select="$NL"/> + <text><references/></text> + <value-of select="$NL"/> + </if> + </template> + + <template match="office:document-content"> + <apply-templates/> + </template> + + <template match="office:body"> + <apply-templates/> + </template> + + <template match="text:tracked-changes"> + <!-- Ignore change history. --> + </template> + + <template match="office:* | text:* | draw:text-box | draw:a"> + <apply-templates/> + </template> + + <template match="node()"> + </template> +</stylesheet> + +<!-- + Local Variables: + tab-width: 4 + sgml-indent-step: 4 + End: +--> diff --git a/swext/prj/build.lst b/swext/prj/build.lst index 6b8c4dd..eb1aaca 100644 --- a/swext/prj/build.lst +++ b/swext/prj/build.lst @@ -1,4 +1,4 @@ -swext swext : l10n javaunohelper ridljar unoil jurt APACHE_COMMONS:apache-commons officecfg readlicense_oo xsltml filter NULL +swext swext : officecfg l10n javaunohelper ridljar unoil jurt APACHE_COMMONS:apache-commons readlicense_oo xsltml NULL swext swext usr1 - all swext_mkout NULL swext swext\mediawiki\help nmake - all swext_mwhelp NULL swext swext\mediawiki\src\registry\schema\org\openoffice\Office\Custom nmake - all swext_mwschema NULL diff --git a/xpdf/prj/build.lst b/xpdf/prj/build.lst index 9d4b956..527985f 100644 --- a/xpdf/prj/build.lst +++ b/xpdf/prj/build.lst @@ -1,2 +1,2 @@ -xp xpdf : solenv sal soltools NULL +xp xpdf : solenv soltools NULL xp xpdf nmake - all xp_xpdf NULL |