summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <cmc@openoffice.org>2010-02-03 15:42:20 +0000
committerCaolán McNamara <cmc@openoffice.org>2010-02-03 15:42:20 +0000
commit48b6b43693291d2bd4f90472d631dc1d8ccbcdfd (patch)
treed0bd1abefbf12278ed9301f86516e35cbbc79a55
parentfbf485ce60434bb948d5c00000e6a71063f89886 (diff)
parentcb6dc8c0cbadd25385d581c0dd3583afc10fd26a (diff)
cmcfixes71: merge with DEV300 m71
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390/except.cxx6
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx10
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx6
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx10
-rw-r--r--cppuhelper/inc/cppuhelper/weakref.hxx29
-rwxr-xr-xcppuhelper/source/cc5_solaris_sparc.map2
-rw-r--r--cppuhelper/source/gcc3.map2
-rw-r--r--cppuhelper/source/msvc_win32_intel.map1
-rw-r--r--cppuhelper/source/weak.cxx45
-rw-r--r--offapi/com/sun/star/presentation/XSlideShow.idl19
-rw-r--r--offapi/com/sun/star/sheet/MemberResultFlags.idl11
-rw-r--r--offapi/com/sun/star/task/PasswordContainerInteractionHandler.idl60
-rw-r--r--offapi/com/sun/star/task/XUrlContainer.idl4
-rw-r--r--offapi/com/sun/star/task/makefile.mk3
-rw-r--r--offapi/com/sun/star/ucb/CommandEnvironment.idl67
-rw-r--r--offapi/com/sun/star/ucb/Content.idl82
-rw-r--r--offapi/com/sun/star/ucb/InteractiveLockingException.idl61
-rw-r--r--offapi/com/sun/star/ucb/InteractiveLockingLockExpiredException.idl56
-rw-r--r--offapi/com/sun/star/ucb/InteractiveLockingLockedException.idl62
-rw-r--r--offapi/com/sun/star/ucb/InteractiveLockingNotLockedException.idl59
-rw-r--r--offapi/com/sun/star/ucb/URLAuthenticationRequest.idl2
-rw-r--r--offapi/com/sun/star/ucb/XContentCreator.idl13
-rw-r--r--offapi/com/sun/star/ucb/XInteractionSupplyAuthentication2.idl2
-rw-r--r--offapi/com/sun/star/ucb/makefile.mk11
-rw-r--r--remotebridges/source/bridge/bridge_connection.cxx4
-rw-r--r--sal/osl/unx/file_misc.cxx21
26 files changed, 580 insertions, 68 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx b/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx
index 0d49d0b95a74..eaf9566c54b9 100644
--- a/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx
@@ -137,8 +137,8 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
MutexGuard guard( m_mutex );
- t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) );
- if (iFind == m_rttis.end())
+ t_rtti_map::const_iterator iRttiFind( m_rttis.find( unoName ) );
+ if (iRttiFind == m_rttis.end())
{
// RTTI symbol
OStringBuffer buf( 64 );
@@ -202,7 +202,7 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
}
else
{
- rtti = iFind->second;
+ rtti = iRttiFind->second;
}
return rtti;
diff --git a/bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx
index e866e05f32c5..7e169993e905 100644
--- a/bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx
@@ -491,7 +491,7 @@ static typelib_TypeClass cpp_mediate(
long privateSnippetExecutor(long r2, long r3, long r4, long r5, long r6, long firstonstack)
{
register long r0 asm("r0");
- sal_uInt32 nOffsetAndIndex = r0;
+ sal_uInt64 nOffsetAndIndex = r0;
long sp = (long)&firstonstack;
@@ -522,15 +522,21 @@ long privateSnippetExecutor(long r2, long r3, long r4, long r5, long r6, long fi
switch( aType )
{
- case typelib_TypeClass_VOID:
case typelib_TypeClass_BOOLEAN:
case typelib_TypeClass_BYTE:
+ nRegReturn[0] = (unsigned long)(*(unsigned char *)nRegReturn);
+ break;
case typelib_TypeClass_CHAR:
case typelib_TypeClass_UNSIGNED_SHORT:
case typelib_TypeClass_SHORT:
+ nRegReturn[0] = (unsigned long)(*(unsigned short *)nRegReturn);
+ break;
case typelib_TypeClass_ENUM:
case typelib_TypeClass_UNSIGNED_LONG:
case typelib_TypeClass_LONG:
+ nRegReturn[0] = (unsigned long)(*(unsigned int *)nRegReturn);
+ break;
+ case typelib_TypeClass_VOID:
default:
break;
case typelib_TypeClass_FLOAT:
diff --git a/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx b/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx
index e474dce7268c..11ddfbb424e2 100644
--- a/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx
@@ -138,8 +138,8 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
MutexGuard guard( m_mutex );
- t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) );
- if (iFind == m_rttis.end())
+ t_rtti_map::const_iterator iRttiFind( m_rttis.find( unoName ) );
+ if (iRttiFind == m_rttis.end())
{
// RTTI symbol
OStringBuffer buf( 64 );
@@ -203,7 +203,7 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
}
else
{
- rtti = iFind->second;
+ rtti = iRttiFind->second;
}
return rtti;
diff --git a/bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx
index 5940f566f9ca..2b85eb125d59 100644
--- a/bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx
@@ -60,19 +60,21 @@ void MapReturn(long r2, double f0, typelib_TypeClass eTypeClass, sal_uInt64* pRe
{
case typelib_TypeClass_HYPER:
case typelib_TypeClass_UNSIGNED_HYPER:
+ *pRegisterReturn = r2;
+ break;
case typelib_TypeClass_LONG:
case typelib_TypeClass_UNSIGNED_LONG:
case typelib_TypeClass_ENUM:
- *pRegisterReturn = r2;
+ *(unsigned int*)pRegisterReturn = (unsigned int)r2;
break;
case typelib_TypeClass_CHAR:
case typelib_TypeClass_SHORT:
case typelib_TypeClass_UNSIGNED_SHORT:
- *pRegisterReturn = (unsigned short)r2;
+ *(unsigned short*)pRegisterReturn = (unsigned short)r2;
break;
case typelib_TypeClass_BOOLEAN:
case typelib_TypeClass_BYTE:
- *pRegisterReturn = (unsigned char)r2;
+ *(unsigned char*)pRegisterReturn = (unsigned char)r2;
break;
case typelib_TypeClass_FLOAT:
*reinterpret_cast<float *>( pRegisterReturn ) = f0;
@@ -90,7 +92,6 @@ void MapReturn(long r2, double f0, typelib_TypeClass eTypeClass, sal_uInt64* pRe
#define INSERT_FLOAT( pSV, nr, pFPR, pDS ) \
{ \
- float tmp = *reinterpret_cast<float *>( pSV ); \
if ( nr < s390x::MAX_SSE_REGS ) \
{ \
pFPR[nr++] = *reinterpret_cast<float *>( pSV ); \
@@ -421,7 +422,6 @@ void unoInterfaceProxyDispatch(
// is my surrogate
bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
= static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy *> (pUnoI);
- typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
switch (pMemberDescr->eTypeClass)
{
diff --git a/cppuhelper/inc/cppuhelper/weakref.hxx b/cppuhelper/inc/cppuhelper/weakref.hxx
index 01a4c7c6e0df..5ed14743a520 100644
--- a/cppuhelper/inc/cppuhelper/weakref.hxx
+++ b/cppuhelper/inc/cppuhelper/weakref.hxx
@@ -79,13 +79,15 @@ public:
*/
WeakReferenceHelper & SAL_CALL operator = ( const WeakReferenceHelper & rWeakRef ) SAL_THROW( () );
- /** Releases this reference and takes over hard reference xInt. If the implementation behind
- xInt does not support XWeak or XInt is null, than this reference is null.
+ /** Releases this reference and takes over hard reference xInt.
+ If the implementation behind xInt does not support XWeak
+ or XInt is null, then this reference is null.
@param xInt another hard reference
*/
- inline WeakReferenceHelper & SAL_CALL operator = ( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & xInt ) SAL_THROW( () )
- { return operator = ( WeakReferenceHelper( xInt ) ); }
+ WeakReferenceHelper & SAL_CALL operator = (
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::uno::XInterface > & xInt ) SAL_THROW( () );
/** Returns true if both weak refs reference to the same object.
@@ -107,6 +109,12 @@ public:
inline SAL_CALL operator Reference< XInterface > () const SAL_THROW( () )
{ return get(); }
+ /** Releases this reference.
+
+ @since UDK 3.2.12
+ */
+ void SAL_CALL clear() SAL_THROW( () );
+
protected:
/** @internal */
OWeakRefListener * m_pImpl;
@@ -135,6 +143,19 @@ public:
: WeakReferenceHelper( rRef )
{}
+ /** Releases this reference and takes over hard reference xInt.
+ If the implementation behind xInt does not support XWeak
+ or XInt is null, then this reference is null.
+
+ @param xInt another hard reference
+
+ @since UDK 3.2.12
+ */
+ WeakReference & SAL_CALL operator = (
+ const ::com::sun::star::uno::Reference< interface_type > & xInt )
+ SAL_THROW( () )
+ { WeakReferenceHelper::operator=(xInt); return *this; }
+
/** Gets a hard reference to the object.
@return hard reference or null, if the weakly referenced interface has gone
diff --git a/cppuhelper/source/cc5_solaris_sparc.map b/cppuhelper/source/cc5_solaris_sparc.map
index 0961c6830d1f..941465519a08 100755
--- a/cppuhelper/source/cc5_solaris_sparc.map
+++ b/cppuhelper/source/cc5_solaris_sparc.map
@@ -383,4 +383,6 @@ UDK_3.6 { # OOo 3.0
UDK_3.7 { # OOo 3.3
global:
__1cEcppuLOWeakObjectbAdisposeWeakConnectionPoint6M_v_;
+ __1cDcomDsunEstarDunoTWeakReferenceHelper2G6Mrkn0DJReference4n0DKXInterface____r4_;
+ __1cDcomDsunEstarDunoTWeakReferenceHelperFclear6M_v_;
} UDK_3.6;
diff --git a/cppuhelper/source/gcc3.map b/cppuhelper/source/gcc3.map
index 9348e91525c0..099373b2e220 100644
--- a/cppuhelper/source/gcc3.map
+++ b/cppuhelper/source/gcc3.map
@@ -377,5 +377,7 @@ UDK_3.5 { # OOo 3.0
UDK_3.6 { # OOo 3.3
global:
_ZN4cppu11OWeakObject26disposeWeakConnectionPointEv;
+ _ZN3com3sun4star3uno19WeakReferenceHelperaSERKNS2_9ReferenceINS2_10XInterfaceEEE;
+ _ZN3com3sun4star3uno19WeakReferenceHelper5clearEv;
} UDK_3.5;
diff --git a/cppuhelper/source/msvc_win32_intel.map b/cppuhelper/source/msvc_win32_intel.map
index c999ae200ac2..6bc10cb175c2 100644
--- a/cppuhelper/source/msvc_win32_intel.map
+++ b/cppuhelper/source/msvc_win32_intel.map
@@ -275,4 +275,5 @@ UDK_3.5 { # OOo 3.0
UDK_3.6 { # OOo 3.3
global:
?disposeWeakConnectionPoint@OWeakObject@cppu@@IAEXXZ;
+ ?clear@WeakReferenceHelper@uno@star@sun@com@@QAAXXZ;
} UDK_3.5;
diff --git a/cppuhelper/source/weak.cxx b/cppuhelper/source/weak.cxx
index b518d2526e3b..1fbfb3fa96ad 100644
--- a/cppuhelper/source/weak.cxx
+++ b/cppuhelper/source/weak.cxx
@@ -479,50 +479,55 @@ WeakReferenceHelper::WeakReferenceHelper(const WeakReferenceHelper& rWeakRef) SA
}
}
-WeakReferenceHelper& WeakReferenceHelper::operator=(const WeakReferenceHelper& rWeakRef) SAL_THROW( () )
+void WeakReferenceHelper::clear() SAL_THROW( () )
{
try
{
- if (this != &rWeakRef)
- {
- Reference< XInterface > xInt( rWeakRef.get() );
if (m_pImpl)
{
if (m_pImpl->m_XWeakConnectionPoint.is())
{
- m_pImpl->m_XWeakConnectionPoint->removeReference((XReference*)m_pImpl);
+ m_pImpl->m_XWeakConnectionPoint->removeReference(
+ (XReference*)m_pImpl);
m_pImpl->m_XWeakConnectionPoint.clear();
}
m_pImpl->release();
m_pImpl = 0;
}
+ }
+ catch (RuntimeException &) { OSL_ASSERT( 0 ); } // assert here, but no unexpected()
+}
+
+WeakReferenceHelper& WeakReferenceHelper::operator=(const WeakReferenceHelper& rWeakRef) SAL_THROW( () )
+{
+ if (this == &rWeakRef)
+ {
+ return *this;
+ }
+ Reference< XInterface > xInt( rWeakRef.get() );
+ return operator = ( xInt );
+}
+
+WeakReferenceHelper & SAL_CALL
+WeakReferenceHelper::operator= (const Reference< XInterface > & xInt)
+SAL_THROW( () )
+{
+ try
+ {
+ clear();
if (xInt.is())
{
m_pImpl = new OWeakRefListener(xInt);
m_pImpl->acquire();
}
}
- }
catch (RuntimeException &) { OSL_ASSERT( 0 ); } // assert here, but no unexpected()
return *this;
}
WeakReferenceHelper::~WeakReferenceHelper() SAL_THROW( () )
{
- try
- {
- if (m_pImpl)
- {
- if (m_pImpl->m_XWeakConnectionPoint.is())
- {
- m_pImpl->m_XWeakConnectionPoint->removeReference((XReference*)m_pImpl);
- m_pImpl->m_XWeakConnectionPoint.clear();
- }
- m_pImpl->release();
- m_pImpl = 0; // for safety
- }
- }
- catch (RuntimeException &) { OSL_ASSERT( 0 ); } // assert here, but no unexpected()
+ clear();
}
Reference< XInterface > WeakReferenceHelper::get() const SAL_THROW( () )
diff --git a/offapi/com/sun/star/presentation/XSlideShow.idl b/offapi/com/sun/star/presentation/XSlideShow.idl
index 88bbef3b16fb..29e74e91797c 100644
--- a/offapi/com/sun/star/presentation/XSlideShow.idl
+++ b/offapi/com/sun/star/presentation/XSlideShow.idl
@@ -46,9 +46,15 @@
#ifndef __com_sun_star_animations_XAnimationNode_idl__
#include <com/sun/star/animations/XAnimationNode.idl>
#endif
+#endif
+#ifndef __com_sun_star_lang_XMultiServiceFactory_idl__
+#include <com/sun/star/lang/XMultiServiceFactory.idl>
#ifndef __com_sun_star_drawing_XDrawPage_idl__
#include <com/sun/star/drawing/XDrawPage.idl>
#endif
+#ifndef __com_sun_star_drawing_XDrawPagesSupplier_idl__
+#include <com/sun/star/drawing/XDrawPagesSupplier.idl>
+#endif
#ifndef __com_sun_star_drawing_XShape_idl__
#include <com/sun/star/drawing/XShape.idl>
#endif
@@ -149,6 +155,10 @@ interface XSlideShow : ::com::sun::star::uno::XInterface
@param xPage
The slide to display.
+ @param xDrawPages
+ For future use.
+ This parameter can be NULL when the ENABLE_PRESENTER_EXTRA_UI feature is disabled.
+
@param xAnimationNode
The animation node determine the animations to display.
@@ -185,6 +195,7 @@ interface XSlideShow : ::com::sun::star::uno::XInterface
*/
void displaySlide(
[in] ::com::sun::star::drawing::XDrawPage xSlide,
+ [in] ::com::sun::star::drawing::XDrawPagesSupplier xDrawPages,
[in] ::com::sun::star::animations::XAnimationNode aAnimationNode,
[in] sequence< ::com::sun::star::beans::PropertyValue > aProperties );
@@ -211,6 +222,14 @@ interface XSlideShow : ::com::sun::star::uno::XInterface
*/
::com::sun::star::drawing::XDrawPage getCurrentSlide();
+ /** Register drawn polygons in presentation mode
+
+ @param xDocFactory
+
+ */
+
+ void registerUserPaintPolygons([in] ::com::sun::star::lang::XMultiServiceFactory xDocFactory);
+
/** Change a property of the slideshow.<p>
@param aShowProperty
diff --git a/offapi/com/sun/star/sheet/MemberResultFlags.idl b/offapi/com/sun/star/sheet/MemberResultFlags.idl
index f2157e7724ca..a00bea878999 100644
--- a/offapi/com/sun/star/sheet/MemberResultFlags.idl
+++ b/offapi/com/sun/star/sheet/MemberResultFlags.idl
@@ -59,6 +59,17 @@ published constants MemberResultFlags
*/
const long CONTINUE = 4;
+ //-------------------------------------------------------------------------
+
+ /** The element contains a grand total.
+ */
+ const long GRANDTOTAL = 8;
+
+ //-------------------------------------------------------------------------
+
+ /** The element is a numeric value.
+ */
+ const long NUMERIC = 16;
};
//=============================================================================
diff --git a/offapi/com/sun/star/task/PasswordContainerInteractionHandler.idl b/offapi/com/sun/star/task/PasswordContainerInteractionHandler.idl
new file mode 100644
index 000000000000..ded6c6c23f77
--- /dev/null
+++ b/offapi/com/sun/star/task/PasswordContainerInteractionHandler.idl
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * 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: $
+ * $Revision: $
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_task_PasswordContainerInteractionHandler_idl__
+#define __com_sun_star_task_PasswordContainerInteractionHandler_idl__
+
+module com { module sun { module star {
+ module task { published interface XInteractionHandler; };
+}; }; };
+
+module com { module sun { module star { module task {
+
+//============================================================================
+/** An interaction request handler that uses the
+ <type scope="com::sun::star::task">PasswordContainer</type> service to
+ handle <type scope="com::sun::star::ucb">AuthenticationRequest</type>s.
+
+ If the password container contains credentials matching the authentication
+ request, the service implementation selects the
+ <type scope="com::sun::star::ucb">XInteractionSupplyAuthentication</type>
+ continuation, that should be supplied with the interaction request.
+
+ If the password container does not contain credentials matching the
+ authentication request, the service implementation selects no continuation.
+
+ @since OOo 3.3
+ */
+published service PasswordContainerInteractionHandler
+ : com::sun::star::task::XInteractionHandler;
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/task/XUrlContainer.idl b/offapi/com/sun/star/task/XUrlContainer.idl
index 93839e68fb07..9ac704c56ba0 100644
--- a/offapi/com/sun/star/task/XUrlContainer.idl
+++ b/offapi/com/sun/star/task/XUrlContainer.idl
@@ -46,6 +46,8 @@ module com { module sun { module star { module task {
//=============================================================================
/** Allows to store and retrieve URLs. URLs can be stored persistently or
until end of OOo session.
+
+ @since OOo 3.2
*/
/*published*/ interface XUrlContainer : com::sun::star::uno::XInterface
{
@@ -63,7 +65,7 @@ module com { module sun { module star { module task {
/** Lookup a URL in the container.
@param Url URL to lookup.
- @returns Best matched URL or empty string.
+ @returns Best matched URL or empty string.
*/
string findUrl( [in] string Url );
diff --git a/offapi/com/sun/star/task/makefile.mk b/offapi/com/sun/star/task/makefile.mk
index dc54f6fd3883..d77b1d6022e7 100644
--- a/offapi/com/sun/star/task/makefile.mk
+++ b/offapi/com/sun/star/task/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2008 by Sun Microsystems, Inc.
# Copyright IBM Corporation 2009.
#
@@ -59,6 +59,7 @@ IDLFILES=\
MasterPasswordRequest.idl\
NoMasterException.idl\
PasswordContainer.idl\
+ PasswordContainerInteractionHandler.idl\
PasswordRequest.idl\
PasswordRequestMode.idl\
UnsupportedOverwriteRequest.idl\
diff --git a/offapi/com/sun/star/ucb/CommandEnvironment.idl b/offapi/com/sun/star/ucb/CommandEnvironment.idl
new file mode 100644
index 000000000000..a1ca2aa72fc4
--- /dev/null
+++ b/offapi/com/sun/star/ucb/CommandEnvironment.idl
@@ -0,0 +1,67 @@
+/*************************************************************************
+ *
+ * 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: SmoketestCommandEnvironment.idl,v $
+ * $Revision: 1.3 $
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#ifndef _com_sun_star_ucb_CommandEnvironment_idl_
+#define _com_sun_star_ucb_CommandEnvironment_idl_
+
+#include <com/sun/star/ucb/XCommandEnvironment.idl>
+#include <com/sun/star/task/XInteractionHandler.idl>
+#include <com/sun/star/ucb/XProgressHandler.idl>
+
+module com { module sun { module star { module ucb {
+
+ /* This service implements an <type>XCommandEnvironment</type> that can be
+ initialized with any implementation of
+ <type scope="com::sun::star::task">XInteractionHandler</type> and
+ <type scope="com::sun::star::ucb">XProgressHandler</type>. The respective
+ get methods will simply return these handlers.
+
+ @since OOo 3.3
+ */
+ published service CommandEnvironment : ::com::sun::star::ucb::XCommandEnvironment
+ {
+ //-------------------------------------------------------------------------
+ /** Constructor.
+
+ @param InteractionHandler the interaction handler instance that will be
+ returned by this service' implementation of
+ <method>XCommandEnvironemt::getInteractionHandler</method>
+
+ @param ProgressHandler the progress handler instance that will be
+ returned by this service' implementation of
+ <method>XCommandEnvironemt::getProgressHandler</method>
+ */
+ create( [in] com::sun::star::task::XInteractionHandler InteractionHandler,
+ [in] com::sun::star::ucb::XProgressHandler ProgressHandler );
+ };
+
+};};};};
+
+#endif
diff --git a/offapi/com/sun/star/ucb/Content.idl b/offapi/com/sun/star/ucb/Content.idl
index 2e8f68067883..eef4f474e527 100644
--- a/offapi/com/sun/star/ucb/Content.idl
+++ b/offapi/com/sun/star/ucb/Content.idl
@@ -137,7 +137,7 @@ published service Content
[parameter type and name]
-----------------------------------------------------------------------
- Requiered commands:
+ Mandatory commands:
-----------------------------------------------------------------------
// This command obtains an interface which allows to query
@@ -218,7 +218,7 @@ published service Content
// sequence is the same as the order of result set
// columns. First element of sequence will be row
// number one, second will be row number two, ...
- // SortingInfo : contains sort criteria, if result set shall
+ // SortingInfo : contains sort criteria, if result set shall
// be sorted, otherwise it can be left empty.
//
// The exceution must be aborted by the implementation of this command
@@ -236,12 +236,12 @@ published service Content
//
// Mode : DOCUMENT or DOCUMENT_SHARE_DENY_NONE or
// DOCUMENT_SHARE_DENY_WRITE. Support for DOCUMENT
- // is mandatory, all others are optional.
+ // is mandatory, all others are optional.
// Priority : can be set, but implementation may ignore the value
// Sink : a sink, where the implementation can put the
// document data into.
// Properties : empty ( ignored )
- // SortingInfo : empty ( ignored )
+ // SortingInfo : empty ( ignored )
//
// The exceution must be aborted by the implementation of this command
// (by throwing a <type>CommandAbortedException</type>), if an
@@ -296,8 +296,8 @@ published service Content
void
// (1) This command inserts a new content. It commits the process of
- // creating a new content via calling another content's method
- // <member>XContentCreator::createNewContent</member>
+ // creating a new content via executing the command "createNewContent"
+ // and initializing it via setting properties, afterwards.
// The command is not called on the content which created the new
// content, because the new object already knows where it is to be
// inserted (i.e. Calling createNewContent with the content type for a
@@ -350,7 +350,7 @@ published service Content
// Transfers without the transfer command can be done as follows:
//
// 1) Create a new content at the target folder
- // --> targetContent = target.XContentCreator::createNewContent(...)
+ // --> targetContent = target.execute( "createNewContent", type )
// 2) Transfer data from source to target content
// --> props = sourceContent.execute( "getPropertyValues", ... )
// --> dataStream = sourceContent.execute( "open", ... )
@@ -366,12 +366,57 @@ published service Content
<B>transfer</B>
<type>TransferInfo</type> aTransferInfo
+ // This command obtains an exlusive write lock for the resource. The
+ // lock is active until command "unlock" is executed or the OOo
+ // session that obtained the lock ends or until the lock is released by
+ // a third party (e.g. a system administrator).
+ void
+ <B>lock</B>
+ void
+ Exceptions: <type>InteractiveLockingLockedException</type>
+ <type>InteractiveLockingLockExpiredException</type>
+
+ // This command removes a lock obtained by executing the command "lock"
+ // from the resource.
+ void
+ <B>unlock</B>
+ void
+ Exceptions: <type>InteractiveLockingNotLockedException</type>
+ <type>InteractiveLockingLockExpiredException</type>
+
+ // Note that <type>InteractiveLockingLockExpiredException</type> might
+ // be raised by any command that requires a previously obtained lock.
+
+ // This command creates a new non-persistent content of a given type.
+ //
+ // <p>Creation of a new (persistent) content:
+ // <ol>
+ // <li>creatabletypes = obtain "CreatableContentsInfo" property<br>
+ // from creator
+ // <li>choose a suitable type from creatabletypes
+ // <li>newObject = execute command "createNewContent(type)" at<br>
+ // creator
+ // <li>initialize the new object (i.e. newObject.Property1 = ...)
+ // <li>execute command "insert" at new content. This command
+ // commits the data and makes the new content persistent.
+ // </ol>
+ //
+ // This command must be supported by every Content that supports the
+ // property "CreatableContentsInfo" if the returned property value
+ // contains a non-empty sequence of creatable types.
+ //
+ // Note: This command is part of the replacement for the deprecated
+ // interface <type>XContentCreator</type>.
+ <type>XContent</type> >
+ <B>createNewContent</B>
+ <type>ContentInfo<type> contentinfo
+
=======================================================================
Properties:
=======================================================================
-----------------------------------------------------------------------
- Requiered properties:
+ Mandatory properties:
-----------------------------------------------------------------------
// contains a unique(!) type string for the content ( i.e.
@@ -380,8 +425,8 @@ published service Content
// content. Media types may be provided through the optional property
// "MediaType".
// The value of this property should match the information on creatable
- // contents given by UCB contents that implement the interface
- // <type>XContentCreator</type>.
+ // contents given by UCB contents that implement the property
+ // "CreatableContentsInfo".
string ContentType
// indicates, whether a content can contain other contents.
@@ -570,7 +615,6 @@ published service Content
</dt><dd>Show in new task
</dd></dl>
</p>
-
string TargetFrames
// for contents that are links to other contents, contains the URL of
@@ -586,6 +630,17 @@ published service Content
// describes a verification policy.
<type>VerificationMode</type> VerificationMode
+
+ // contains the types of Contents a Content object can create via
+ // command "createNewContent".
+ //
+ // If the property value can be a non-empty sequence, the Content must
+ // also support command "createNewContent".
+ //
+ // Note: This property is part of the replacement for the deprecated
+ // interface <type>XContentCreator</type>.
+ sequence <type>ContentInfo</type> CreatableContentsInfo
+
</pre>
*/
interface com::sun::star::ucb::XCommandProcessor;
@@ -675,6 +730,11 @@ published service Content
<p>This interface is optional. It should be implemented by contents
which shall be able to create new objects.
+
+ @deprecated
+
+ <p>This interface is <b>deprecated</b>. Use property
+ "CreatableContentsInfo" and command "createNewContent" instead.
*/
[optional] interface com::sun::star::ucb::XContentCreator;
diff --git a/offapi/com/sun/star/ucb/InteractiveLockingException.idl b/offapi/com/sun/star/ucb/InteractiveLockingException.idl
new file mode 100644
index 000000000000..8d96358566fa
--- /dev/null
+++ b/offapi/com/sun/star/ucb/InteractiveLockingException.idl
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * 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: $
+ * $Revision: $
+ *
+ * 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.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_ucb_InteractiveLockingException_idl__
+#define __com_sun_star_ucb_InteractiveLockingException_idl__
+
+#ifndef __com_sun_star_task_ClassifiedInteractionRequest_idl__
+#include <com/sun/star/task/ClassifiedInteractionRequest.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module ucb {
+
+//=============================================================================
+/** An error related to locking operations.
+
+ <p> Various meaningful errors are derived from this exception. </p>
+
+ @since OOo 3.3
+*/
+/*published*/ exception InteractiveLockingException : com::sun::star::task::ClassifiedInteractionRequest
+{
+ //-------------------------------------------------------------------------
+ /** The Url of the resource this exception is related to.
+ */
+ string Url;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/ucb/InteractiveLockingLockExpiredException.idl b/offapi/com/sun/star/ucb/InteractiveLockingLockExpiredException.idl
new file mode 100644
index 000000000000..63ddfa58bf2f
--- /dev/null
+++ b/offapi/com/sun/star/ucb/InteractiveLockingLockExpiredException.idl
@@ -0,0 +1,56 @@
+/*************************************************************************
+ *
+ * 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: $
+ * $Revision: $
+ *
+ * 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.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_ucb_InteractiveLockingLockExpiredException_idl__
+#define __com_sun_star_ucb_InteractiveLockingLockExpiredException_idl__
+
+#ifndef __com_sun_star_ucb_InteractiveLockingException_idl__
+#include <com/sun/star/ucb/InteractiveLockingException.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module ucb {
+
+//=============================================================================
+/** An error indicating that a lock that has been previously obtained by this
+ OOo session has expired.
+
+ @since OOo 3.3
+*/
+/*published*/ exception InteractiveLockingLockExpiredException : com::sun::star::ucb::InteractiveLockingException
+{
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/ucb/InteractiveLockingLockedException.idl b/offapi/com/sun/star/ucb/InteractiveLockingLockedException.idl
new file mode 100644
index 000000000000..33f309ec0b81
--- /dev/null
+++ b/offapi/com/sun/star/ucb/InteractiveLockingLockedException.idl
@@ -0,0 +1,62 @@
+/*************************************************************************
+ *
+ * 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: $
+ * $Revision: $
+ *
+ * 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.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_ucb_InteractiveLockingLockedException_idl__
+#define __com_sun_star_ucb_InteractiveLockingLockedException_idl__
+
+#ifndef __com_sun_star_ucb_InteractiveLockingException_idl__
+#include <com/sun/star/ucb/InteractiveLockingException.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module ucb {
+
+//=============================================================================
+/** An error indicating that the resource is locked.
+
+ @since OOo 3.3
+*/
+/*published*/ exception InteractiveLockingLockedException : com::sun::star::ucb::InteractiveLockingException
+{
+ //-------------------------------------------------------------------------
+ /** The owner of the lock.
+
+ <true/>, the lock has been obtained by this OOo session.
+ <false/> the lock has been obtained by another principal.
+ */
+ boolean SelfOwned;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/ucb/InteractiveLockingNotLockedException.idl b/offapi/com/sun/star/ucb/InteractiveLockingNotLockedException.idl
new file mode 100644
index 000000000000..88d587b4cb24
--- /dev/null
+++ b/offapi/com/sun/star/ucb/InteractiveLockingNotLockedException.idl
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * 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: $
+ * $Revision: $
+ *
+ * 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.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_ucb_InteractiveLockingNotLockedException_idl__
+#define __com_sun_star_ucb_InteractiveLockingNotLockedException_idl__
+
+#ifndef __com_sun_star_ucb_InteractiveLockingException_idl__
+#include <com/sun/star/ucb/InteractiveLockingException.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module ucb {
+
+//=============================================================================
+/** An error indicating that the resource is not locked.
+
+ <p>This error for instance can occure when trying to unlock a resource
+ that is not locked.
+ </p>
+
+ @since OOo 3.3
+*/
+/*published*/ exception InteractiveLockingNotLockedException : com::sun::star::ucb::InteractiveLockingException
+{
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/offapi/com/sun/star/ucb/URLAuthenticationRequest.idl b/offapi/com/sun/star/ucb/URLAuthenticationRequest.idl
index 1b19830df81e..84d5f7d6cb7c 100644
--- a/offapi/com/sun/star/ucb/URLAuthenticationRequest.idl
+++ b/offapi/com/sun/star/ucb/URLAuthenticationRequest.idl
@@ -42,6 +42,8 @@ module com { module sun { module star { module ucb {
//=============================================================================
/** An error specifing lack of correct authentication data (e.g., to log into
an account).
+
+ @since OOo 3.2
*/
/*published*/ exception URLAuthenticationRequest : AuthenticationRequest
{
diff --git a/offapi/com/sun/star/ucb/XContentCreator.idl b/offapi/com/sun/star/ucb/XContentCreator.idl
index 72b2dd02f6b5..df0c89a1b398 100644
--- a/offapi/com/sun/star/ucb/XContentCreator.idl
+++ b/offapi/com/sun/star/ucb/XContentCreator.idl
@@ -52,12 +52,19 @@ module com { module sun { module star { module ucb {
<p>Creation of a new (persistent) content:
<ol>
- <li>newObject = creator.createNewContent( ... )
+ <li>creatabletypes = creator.queryCreatableContentsInfo()
+ <li>choose a suitable type from creatabletypes
+ <li>newObject = creator.createNewContent( type )
<li>initialize the new object (i.e. newObject.Property1 = ...)
<li>let the new content execute the command "insert". That command
commits the data and makes the new content persistent.
</ol>
+ @deprecated
+
+ <p>This interface is deprecated. Use <type>Content</type> property
+ "CreatableContentsInfo" and command "createNewContent" instead.
+
@version 1.0
@author Kai Sommerfeld
@see XContent
@@ -74,13 +81,13 @@ published interface XContentCreator: com::sun::star::uno::XInterface
sequence<com::sun::star::ucb::ContentInfo> queryCreatableContentsInfo();
//-------------------------------------------------------------------------
- /** creates a new content of given type..
+ /** creates a new content of given type.
@param Info
the content information.
@returns
- the new content, if operation was succesful.
+ the new content, if operation was successful.
*/
com::sun::star::ucb::XContent createNewContent(
[in] com::sun::star::ucb::ContentInfo Info );
diff --git a/offapi/com/sun/star/ucb/XInteractionSupplyAuthentication2.idl b/offapi/com/sun/star/ucb/XInteractionSupplyAuthentication2.idl
index a3c4bdb3d5f3..01241f108950 100644
--- a/offapi/com/sun/star/ucb/XInteractionSupplyAuthentication2.idl
+++ b/offapi/com/sun/star/ucb/XInteractionSupplyAuthentication2.idl
@@ -45,6 +45,8 @@ module com { module sun { module star { module ucb {
<p> This continuation is typically used in conjunction with
<type>AuthenticationRequest</type>. </p>
+
+ @since OOo 3.2
*/
/*published*/ interface XInteractionSupplyAuthentication2 : XInteractionSupplyAuthentication
{
diff --git a/offapi/com/sun/star/ucb/makefile.mk b/offapi/com/sun/star/ucb/makefile.mk
index 19320b716634..573453e554e5 100644
--- a/offapi/com/sun/star/ucb/makefile.mk
+++ b/offapi/com/sun/star/ucb/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
@@ -55,8 +55,10 @@ IDLFILES=\
CachedDynamicResultSetStub.idl\
CachedDynamicResultSetStubFactory.idl\
CHAOSProgressStart.idl\
+ CertificateValidationRequest.idl\
Command.idl\
CommandAbortedException.idl\
+ CommandEnvironment.idl\
CommandFailedException.idl\
CommandInfo.idl\
CommandInfoChange.idl\
@@ -122,6 +124,10 @@ IDLFILES=\
InteractiveCHAOSException.idl\
InteractiveFileIOException.idl\
InteractiveIOException.idl\
+ InteractiveLockingException.idl\
+ InteractiveLockingLockedException.idl\
+ InteractiveLockingLockExpiredException.idl\
+ InteractiveLockingNotLockedException.idl\
InteractiveNetworkConnectException.idl\
InteractiveNetworkException.idl\
InteractiveNetworkGeneralException.idl\
@@ -264,8 +270,7 @@ IDLFILES=\
XSimpleFileAccess3.idl\
XSortedDynamicResultSetFactory.idl\
XSourceInitialization.idl\
- XWebDAVCommandEnvironment.idl \
- CertificateValidationRequest.idl
+ XWebDAVCommandEnvironment.idl
# ------------------------------------------------------------------
diff --git a/remotebridges/source/bridge/bridge_connection.cxx b/remotebridges/source/bridge/bridge_connection.cxx
index ebb49dba1874..8da07ab246b7 100644
--- a/remotebridges/source/bridge/bridge_connection.cxx
+++ b/remotebridges/source/bridge/bridge_connection.cxx
@@ -77,8 +77,8 @@ namespace remotebridges_bridge
try
{
// TODO possible optimization : give
- ::rtl::ByteSequence seq( nSize , ::rtl::BYTESEQ_NODEFAULT );
- sal_Int32 nRead = m->m_r->read( *(Sequence<sal_Int8>*)&seq , nSize );
+ Sequence<sal_Int8> seq = toUnoSequence( ::rtl::ByteSequence(nSize, ::rtl::BYTESEQ_NODEFAULT) );
+ sal_Int32 nRead = m->m_r->read( seq , nSize );
memcpy( pDest , seq.getConstArray() , nRead );
return nRead;
}
diff --git a/sal/osl/unx/file_misc.cxx b/sal/osl/unx/file_misc.cxx
index 0bde1616f6ae..7d797c2be226 100644
--- a/sal/osl/unx/file_misc.cxx
+++ b/sal/osl/unx/file_misc.cxx
@@ -1013,6 +1013,15 @@ static int oslDoCopyFile(const sal_Char* pszSourceFileName, const sal_Char* pszD
return nRet;
}
+ DestFileFD=open(pszDestFileName, O_WRONLY | O_CREAT, mode);
+
+ if ( DestFileFD < 0 )
+ {
+ nRet=errno;
+ close(SourceFileFD);
+ return nRet;
+ }
+
/* HACK: because memory mapping fails on various
platforms if the size of the source file is 0 byte */
if (0 == nSourceSize)
@@ -1030,16 +1039,8 @@ static int oslDoCopyFile(const sal_Char* pszSourceFileName, const sal_Char* pszD
|| -1 == lseek( SourceFileFD, 0, SEEK_SET ) )
{
nRet = errno;
- (void) close( SourceFileFD );
- return nRet;
- }
-
- DestFileFD=open(pszDestFileName, O_WRONLY | O_CREAT, mode);
-
- if ( DestFileFD < 0 )
- {
- nRet=errno;
- close(SourceFileFD);
+ close( SourceFileFD );
+ close( DestFileFD );
return nRet;
}