summaryrefslogtreecommitdiffstats
path: root/filter
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2015-09-29 14:06:01 +0200
committerMichael Stahl <mstahl@redhat.com>2015-09-29 14:57:42 +0200
commite77981764a4b21e57ee8d2302715c8c1269c860c (patch)
treeafc3a44b1877792c01ffab1af7efe985f3d8f660 /filter
parentvcl: replace alloca() with std::unique_ptr (diff)
downloadcore-e77981764a4b21e57ee8d2302715c8c1269c860c.tar.gz
core-e77981764a4b21e57ee8d2302715c8c1269c860c.zip
filter: the placeware filter is not entitled to its own createTempFile
Change-Id: Id4f4c23eab4aaf4d0f42827a89ecf90364605d97
Diffstat (limited to 'filter')
-rw-r--r--filter/source/placeware/tempfile.cxx120
1 files changed, 3 insertions, 117 deletions
diff --git a/filter/source/placeware/tempfile.cxx b/filter/source/placeware/tempfile.cxx
index f573badaed37..6352418a1e42 100644
--- a/filter/source/placeware/tempfile.cxx
+++ b/filter/source/placeware/tempfile.cxx
@@ -17,95 +17,9 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <osl/file.h>
+#include <osl/file.hxx>
#include <sal/macros.h>
-#if defined( UNX)
-
-#include <stdio.h>
-#include <string.h>
-#include <osl/thread.h>
-
-oslFileError SAL_CALL my_getTempDirURL( rtl_uString** pustrTempDir )
-{
- const char *pValue = getenv( "TEMP" );
-
- if ( !pValue )
- {
- pValue = getenv( "TMP" );
- if ( !pValue )
- {
-#if defined(SOLARIS) || defined (LINUX)
- pValue = P_tmpdir;
-#else
- return osl_File_E_NOENT;
-#endif
- }
- }
-
- oslFileError error;
- rtl_uString *ustrTempPath = NULL;
-
- rtl_string2UString( &ustrTempPath, pValue, strlen( pValue ), osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
- error = osl_getFileURLFromSystemPath( ustrTempPath, pustrTempDir );
- rtl_uString_release( ustrTempPath );
-
- return error;
-}
-#else
-
-#if defined _MSC_VER
-#pragma warning(push, 1)
-#endif
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <malloc.h>
-
-#if defined _MSC_VER
-#pragma warning(pop)
-#endif
-
-oslFileError SAL_CALL my_getTempDirURL( rtl_uString** pustrTempDir )
-{
- WCHAR szBuffer[MAX_PATH];
- LPWSTR lpBuffer = szBuffer;
- DWORD nBufferLength = SAL_N_ELEMENTS(szBuffer) - 1;
-
- DWORD nLength;
- oslFileError error;
-
- do
- {
- nLength = GetTempPathW( SAL_N_ELEMENTS(szBuffer), lpBuffer );
- if ( nLength > nBufferLength )
- {
- nLength++;
- lpBuffer = (LPWSTR)alloca( sizeof(WCHAR) * nLength );
- nBufferLength = nLength - 1;
- }
- } while ( nLength > nBufferLength );
-
- if ( nLength )
- {
- rtl_uString *ustrTempPath = NULL;
-
- if ( '\\' == lpBuffer[nLength-1] )
- lpBuffer[nLength-1] = 0;
-
- rtl_uString_newFromStr( &ustrTempPath, reinterpret_cast<const sal_Unicode*>(lpBuffer) );
-
- error = osl_getFileURLFromSystemPath( ustrTempPath, pustrTempDir );
-
- rtl_uString_release( ustrTempPath );
- }
- else
- error = GetLastError() == ERROR_SUCCESS ? osl_File_E_None : osl_File_E_INVAL;
-
- return error;
-}
-#endif
-
#include "tempfile.hxx"
PlaceWareTempFile::PlaceWareTempFile( const OUString& rTempFileURL )
@@ -125,38 +39,10 @@ OUString PlaceWareTempFile::createTempFileURL()
{
OUString aTempFileURL;
- const sal_uInt32 nRadix = 26;
-
- OUString aTempDirURL;
- /* oslFileError nRC = */ my_getTempDirURL( &aTempDirURL.pData );
-
- static sal_uInt32 u = osl_getGlobalTimer();
- for ( sal_uInt32 nOld = u; ++u != nOld; )
- {
- u %= (nRadix*nRadix*nRadix);
- OUString aTmp( aTempDirURL );
- if( !aTmp.endsWith("/") )
- aTmp += "/";
- aTmp += OUString::number( (unsigned) u, nRadix );
- aTmp += ".tmp";
-
- osl::File aFile( aTmp );
- osl::FileBase::RC err = aFile.open(osl_File_OpenFlag_Create);
- if ( err == FileBase::E_None )
- {
- aTempFileURL = aTmp;
- aFile.close();
- break;
- }
- else if ( err != FileBase::E_EXIST )
- {
- // if f.e. name contains invalid chars stop trying to create files
- break;
- }
- }
+ ::osl::File::createTempFile(nullptr, nullptr, &aTempFileURL);
+ // TODO: there does not appear to be any way to report an error here?
return aTempFileURL;
}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */