--- desktop/unx/splash/exports.map	1970-01-01 01:00:00.000000000 +0100
+++ desktop/unx/splash/exports.map	2006-08-04 15:20:29.000000000 +0200
@@ -0,0 +1,11 @@
+UDK_3_0_0 {
+	global:
+		GetVersionInfo;
+		component_getDescriptionFunc;
+		component_getImplementationEnvironment;
+		component_getFactory;
+		component_writeInfo;
+
+	local:
+		*;
+};
--- desktop/unx/splash/makefile.mk	1970-01-01 01:00:00.000000000 +0100
+++ desktop/unx/splash/makefile.mk	2006-08-04 15:20:29.000000000 +0200
@@ -0,0 +1,73 @@
+#*************************************************************************
+#
+#   OpenOffice.org - a multi-platform office productivity suite
+#
+#   $RCSfile: unxsplash-desktop-unx-splash.diff,v $
+#
+#   $Revision: 1.1 $
+#
+#   last change: $Author: jholesovsky $ $Date: 2006/08/04 14:35:41 $
+#
+#   The Contents of this file are made available subject to
+#   the terms of GNU Lesser General Public License Version 2.1.
+#
+#
+#     GNU Lesser General Public License Version 2.1
+#     =============================================
+#     Copyright 2005 by Sun Microsystems, Inc.
+#     901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+#     This library is free software; you can redistribute it and/or
+#     modify it under the terms of the GNU Lesser General Public
+#     License version 2.1, as published by the Free Software Foundation.
+#
+#     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
+#     Lesser General Public License for more details.
+#
+#     You should have received a copy of the GNU Lesser General Public
+#     License along with this library; if not, write to the Free Software
+#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+#     MA  02111-1307  USA
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=desktop
+TARGET=spl_unx
+LIBTARGET=NO
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE :  settings.mk
+
+# --- Files --------------------------------------------------------
+
+SLOFILES =  $(SLO)$/unxsplash.obj \
+            $(SLO)$/services_unxsplash.obj
+
+SHL1DEPN=   makefile.mk
+SHL1OBJS=   $(SLOFILES)
+
+
+SHL1TARGET=$(TARGET)$(UPD)$(DLLPOSTFIX)
+SHL1IMPLIB=i$(TARGET)
+
+SHL1VERSIONMAP=exports.map
+SHL1DEF=$(MISC)$/$(SHL1TARGET).def
+DEF1NAME=$(SHL1TARGET)
+
+SHL1STDLIBS= \
+	$(VOSLIB)			\
+	$(CPPUHELPERLIB)	\
+	$(CPPULIB)			\
+	$(SALLIB)
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE :  target.mk
+
--- desktop/unx/splash/services_unxsplash.cxx	1970-01-01 01:00:00.000000000 +0100
+++ desktop/unx/splash/services_unxsplash.cxx	2006-08-04 15:20:29.000000000 +0200
@@ -0,0 +1,170 @@
+/*************************************************************************
+ *
+ *  OpenOffice.org - a multi-platform office productivity suite
+ *
+ *  $RCSfile: unxsplash-desktop-unx-splash.diff,v $
+ *
+ *  $Revision: 1.1 $
+ *
+ *  last change: $Author: jholesovsky $ $Date: 2006/08/04 14:35:41 $
+ *
+ *  The Contents of this file are made available subject to
+ *  the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ *    GNU Lesser General Public License Version 2.1
+ *    =============================================
+ *    Copyright 2005 by Sun Microsystems, Inc.
+ *    901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License version 2.1, as published by the Free Software Foundation.
+ *
+ *    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
+ *    Lesser General Public License for more details.
+ *
+ *    You should have received a copy of the GNU Lesser General Public
+ *    License along with this library; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ *    MA  02111-1307  USA
+ *
+ ************************************************************************/
+
+#ifndef _COM_SUN_STAR_BEANS_NAMEDVALUE_HPP_
+#include <com/sun/star/beans/NamedValue.hpp>
+#endif
+#ifndef _COM_SUN_STAR_REGISTRY_XREGISTRYKEY_HPP_
+#include <com/sun/star/registry/XRegistryKey.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UTIL_DATE_HPP_
+#include <com/sun/star/util/Date.hpp>
+#endif
+
+#ifndef _UNO_ENVIRONMENT_H_
+#include <uno/environment.h>
+#endif
+#ifndef _CPPUHELPER_FACTORY_HXX_
+#include <cppuhelper/factory.hxx>
+#endif
+#ifndef _UTL_CONFIGMGR_HXX_
+#include <unotools/configmgr.hxx>
+#endif
+
+#include "unxsplash.hxx"
+
+using namespace rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::registry;
+using namespace ::desktop;
+
+static const char* pServices[] =
+{
+    UnxSplashScreen::serviceName,
+    NULL
+};
+
+static const char* pImplementations[] =
+{
+    UnxSplashScreen::implementationName,
+    NULL
+};
+
+typedef Reference<XInterface>(* fProvider)(const Reference<XMultiServiceFactory>&);
+
+static const fProvider pInstanceProviders[] =
+{
+    UnxSplashScreen::getInstance,
+    NULL
+};
+
+
+static const char** pSupportedServices[] =
+{
+    UnxSplashScreen::interfaces,
+    NULL
+};	
+
+static Sequence<OUString>
+getSupportedServiceNames(int p) {
+    const char **names = pSupportedServices[p];
+    Sequence<OUString> aSeq;
+    for(int i = 0; names[i] != NULL; i++) {
+        aSeq.realloc(i+1);
+        aSeq[i] = OUString::createFromAscii(names[i]);
+    }
+    return aSeq;
+}   
+
+extern "C"
+{
+void SAL_CALL 
+component_getImplementationEnvironment(
+    const sal_Char** ppEnvironmentTypeName, 
+    uno_Environment** ppEnvironment)
+{
+	*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
+}
+
+sal_Bool SAL_CALL 
+component_writeInfo(
+    void* pServiceManager, 
+    void* pRegistryKey)
+{
+    Reference<XMultiServiceFactory> xMan( 
+        reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
+    Reference<XRegistryKey> xKey( 
+        reinterpret_cast< XRegistryKey* >( pRegistryKey ) ) ;
+
+    // iterate over service names and register them...
+    OUString aImpl;
+    const char* pServiceName = NULL;
+    const char* pImplName = NULL;
+    for (int i = 0; (pServices[i]!=NULL)&&(pImplementations[i]!=NULL); i++) {
+        pServiceName= pServices[i];
+        pImplName = pImplementations[i];
+        aImpl = OUString::createFromAscii("/") 
+              + OUString::createFromAscii(pImplName)
+              + OUString::createFromAscii("/UNO/SERVICES");
+        Reference<XRegistryKey> xNewKey = xKey->createKey(aImpl);
+        xNewKey->createKey(OUString::createFromAscii(pServiceName));
+    }
+	return sal_True;
+}
+
+void* SAL_CALL 
+component_getFactory(
+    const sal_Char* pImplementationName,
+    void* pServiceManager,
+    void* pRegistryKey)
+{
+	// Set default return value for this operation - if it failed.
+    if  ( pImplementationName && pServiceManager )
+    {
+        Reference< XSingleServiceFactory > xFactory;
+        Reference< XMultiServiceFactory > xServiceManager( 
+            reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
+    
+        // search implementation
+        for (int i = 0; (pImplementations[i]!=NULL); i++) {            
+            if ( strcmp(pImplementations[i], pImplementationName ) == 0 ) {
+                // found implementation
+                xFactory = Reference<XSingleServiceFactory>(cppu::createSingleFactory(
+                    xServiceManager, OUString::createFromAscii(pImplementationName),
+                    pInstanceProviders[i], getSupportedServiceNames(i)));
+                if ( xFactory.is() ) {
+                    // Factory is valid - service was found.
+                    xFactory->acquire();
+                    return xFactory.get();
+                }
+            }
+        } // for()
+    }
+    // Return with result of this operation.
+    return NULL;
+}
+} // extern "C"
--- desktop/unx/splash/unxsplash.cxx	1970-01-01 01:00:00.000000000 +0100
+++ desktop/unx/splash/unxsplash.cxx	2006-08-04 15:20:29.000000000 +0200
@@ -0,0 +1,192 @@
+/*************************************************************************
+ *
+ *  OpenOffice.org - a multi-platform office productivity suite
+ *
+ *  $RCSfile: unxsplash-desktop-unx-splash.diff,v $
+ *
+ *  $Revision: 1.1 $
+ *
+ *  last change: $Author: jholesovsky $ $Date: 2006/08/04 14:35:41 $
+ *
+ *  The Contents of this file are made available subject to
+ *  the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ *    GNU Lesser General Public License Version 2.1
+ *    =============================================
+ *    Copyright 2005 by Sun Microsystems, Inc.
+ *    901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License version 2.1, as published by the Free Software Foundation.
+ *
+ *    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
+ *    Lesser General Public License for more details.
+ *
+ *    You should have received a copy of the GNU Lesser General Public
+ *    License along with this library; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ *    MA  02111-1307  USA
+ *
+ ************************************************************************/
+
+#include "unxsplash.hxx"
+#include <stdio.h>
+#ifndef _UTL_BOOTSTRAP_HXX
+#include <unotools/bootstrap.hxx>
+#endif
+#ifndef _VOS_PROCESS_HXX_
+#include <vos/process.hxx>
+#endif
+#ifndef _URLOBJ_HXX
+#include <tools/urlobj.hxx>
+#endif
+#ifndef _STREAM_HXX
+#include <tools/stream.hxx>
+#endif
+#ifndef _SFX_HRC
+#include <sfx2/sfx.hrc>
+#endif
+
+#include <com/sun/star/registry/XRegistryKey.hpp>
+#include <rtl/logfile.hxx>
+#include <rtl/ustrbuf.hxx>
+#include <rtl/math.hxx>
+
+#define PIPE_ARG "-splash-pipe="
+
+using namespace ::rtl;
+using namespace ::com::sun::star::registry;
+
+namespace desktop
+{
+
+UnxSplashScreen::UnxSplashScreen(const Reference< XMultiServiceFactory >& rSMgr)
+	: m_rFactory( rSMgr ),
+	  m_pOutFd(NULL)
+{
+}
+
+UnxSplashScreen::~UnxSplashScreen()
+{
+#if OSL_DEBUG_LEVEL > 1
+	fprintf (stderr, "UnxSplashScreen::~UnxSplashScreen()\n");
+#endif
+    
+	if ( m_pOutFd )
+	{
+		fclose( m_pOutFd );
+		m_pOutFd = NULL;
+	}
+}
+
+void SAL_CALL UnxSplashScreen::start( const OUString& /*aText*/, sal_Int32 /*nRange*/ )
+	throw (RuntimeException)
+{
+}
+
+void SAL_CALL UnxSplashScreen::end()
+	throw (RuntimeException)
+{
+#if OSL_DEBUG_LEVEL > 1
+	fprintf (stderr, "UnxSplashScreen::end()\n");
+#endif
+
+	fprintf( m_pOutFd, "end\n" );
+	fflush( m_pOutFd );
+}
+
+void SAL_CALL UnxSplashScreen::reset()
+	throw (RuntimeException)
+{
+	// TODO
+}
+
+void SAL_CALL UnxSplashScreen::setText(const OUString& /*aText*/)
+	throw (RuntimeException)
+{
+	// TODO
+}
+
+void SAL_CALL UnxSplashScreen::setValue(sal_Int32 nValue)
+	throw (RuntimeException)
+{
+	if ( m_pOutFd )
+	{
+		fprintf( m_pOutFd, "%d%%\n", nValue );
+		fflush( m_pOutFd );
+	}
+}
+
+// XInitialize
+void SAL_CALL
+UnxSplashScreen::initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any>& aArguments )
+	throw (RuntimeException)
+{
+	::vos::OStartupInfo aInfo;
+	for ( sal_uInt32 i = 0; i < aInfo.getCommandArgCount(); i++ )
+	{
+		rtl::OUString aArg;
+		if ( aInfo.getCommandArg( i, aArg ) )
+		    break;
+		if ( aArg.matchIgnoreAsciiCaseAsciiL( PIPE_ARG, sizeof( PIPE_ARG ) - 1, 0 ) )
+		{
+			OUString aNum = aArg.copy( sizeof( PIPE_ARG ) - 1 );
+			int fd = aNum.toInt32();
+			m_pOutFd = fdopen( fd, "w" );
+#if OSL_DEBUG_LEVEL > 1
+			fprintf( stderr, "Got argument '-splash-pipe=%d ('%s') (%p)\n",
+					 fd, (const sal_Char *)rtl::OUStringToOString( aNum, RTL_TEXTENCODING_UTF8 ),
+					 m_pOutFd );
+#endif
+		}
+	}
+}
+
+// get service instance...
+UnxSplashScreen *UnxSplashScreen::m_pINSTANCE = NULL;
+osl::Mutex UnxSplashScreen::m_aMutex;
+
+Reference< XInterface > UnxSplashScreen::getInstance( const Reference< XMultiServiceFactory >& rSMgr )
+{
+	if ( m_pINSTANCE == NULL )
+	{
+		osl::MutexGuard guard( m_aMutex );
+		if ( m_pINSTANCE == NULL )
+			return (XComponent*) new UnxSplashScreen( rSMgr );
+	}
+
+	return (XComponent*)NULL;
+}
+
+// static service info...
+const char* UnxSplashScreen::interfaces[] =
+{
+	"com.sun.star.task.XStartusIndicator",
+	"com.sun.star.lang.XInitialization",
+	NULL,
+};
+const sal_Char *UnxSplashScreen::serviceName = "com.sun.star.office.PipeSplashScreen";
+const sal_Char *UnxSplashScreen::implementationName = "com.sun.star.office.comp.PipeSplashScreen";
+const sal_Char *UnxSplashScreen::supportedServiceNames[] = { "com.sun.star.office.PipeSplashScreen", NULL };
+
+OUString UnxSplashScreen::impl_getImplementationName()
+{
+	return OUString::createFromAscii( implementationName );
+}
+
+Sequence<OUString> UnxSplashScreen::impl_getSupportedServiceNames()
+{
+	Sequence<OUString> aSequence;
+	for ( int i = 0; supportedServiceNames[i] != NULL; i++ )
+	{
+		aSequence.realloc( i+1 );
+		aSequence[i] = OUString::createFromAscii( supportedServiceNames[i] );
+	}
+	return aSequence;
+}
+
+}
--- desktop/unx/splash/unxsplash.hxx	1970-01-01 01:00:00.000000000 +0100
+++ desktop/unx/splash/unxsplash.hxx	2006-08-04 15:20:29.000000000 +0200
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ *  OpenOffice.org - a multi-platform office productivity suite
+ *
+ *  $RCSfile: unxsplash-desktop-unx-splash.diff,v $
+ *
+ *  $Revision: 1.1 $
+ *
+ *  last change: $Author: jholesovsky $ $Date: 2006/08/04 14:35:41 $
+ *
+ *  The Contents of this file are made available subject to
+ *  the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ *    GNU Lesser General Public License Version 2.1
+ *    =============================================
+ *    Copyright 2005 by Sun Microsystems, Inc.
+ *    901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License version 2.1, as published by the Free Software Foundation.
+ *
+ *    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
+ *    Lesser General Public License for more details.
+ *
+ *    You should have received a copy of the GNU Lesser General Public
+ *    License along with this library; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ *    MA  02111-1307  USA
+ *
+ ************************************************************************/
+
+#include <stdio.h>
+
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_EXCEPTION_HPP_
+#include <com/sun/star/uno/Exception.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_REFERENCE_H_
+#include <com/sun/star/uno/Reference.h>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XCOMPONENT_HPP_
+#include <com/sun/star/lang/XComponent.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TASK_XSTATUSINDICATOR_HPP_
+#include <com/sun/star/task/XStatusIndicator.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
+#include <com/sun/star/lang/XInitialization.hpp>
+#endif
+#ifndef _CPPUHELPER_IMPLBASE2_HXX_
+#include <cppuhelper/implbase2.hxx>
+#endif
+#ifndef _CPPUHELPER_INTERFACECONTAINER_H_
+#include <cppuhelper/interfacecontainer.h>
+#endif
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <osl/mutex.hxx>
+#ifndef _RTL_BOOTSTRAP_HXX_
+#include <rtl/bootstrap.hxx>
+#endif
+
+
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::task;
+
+namespace desktop {
+
+class  UnxSplashScreen : public ::cppu::WeakImplHelper2< XStatusIndicator, XInitialization >
+{
+private:
+	// don't allow anybody but ourselves to create instances of this class
+	UnxSplashScreen(const UnxSplashScreen&);
+	UnxSplashScreen(void);
+	UnxSplashScreen operator =(const UnxSplashScreen&);
+
+	UnxSplashScreen(const Reference< XMultiServiceFactory >& xFactory);
+
+	virtual ~UnxSplashScreen();
+
+	static  UnxSplashScreen *m_pINSTANCE;
+
+	static osl::Mutex m_aMutex;
+	Reference< XMultiServiceFactory > m_rFactory;
+
+	FILE *m_pOutFd;
+
+public:
+	static const char* interfaces[];
+	static const sal_Char *serviceName;
+	static const sal_Char *implementationName;
+	static const sal_Char *supportedServiceNames[];
+
+	static Reference< XInterface > getInstance(const Reference < XMultiServiceFactory >& xFactory);
+
+	// static service info
+	static OUString  impl_getImplementationName();
+	static Sequence<OUString> impl_getSupportedServiceNames();
+
+	// XStatusIndicator
+	virtual void SAL_CALL start(const OUString& aText, sal_Int32 nRange) throw ( RuntimeException );
+	virtual void SAL_CALL end() throw ( RuntimeException );
+	virtual void SAL_CALL reset() throw ( RuntimeException );
+	virtual void SAL_CALL setText(const OUString& aText) throw ( RuntimeException );
+	virtual void SAL_CALL setValue(sal_Int32 nValue) throw ( RuntimeException );
+
+	// XInitialize
+	virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any>& aArguments )
+		throw ( RuntimeException );
+};
+
+}
