diff options
author | Joachim Lingner <jl@openoffice.org> | 2010-05-06 17:19:12 +0200 |
---|---|---|
committer | Joachim Lingner <jl@openoffice.org> | 2010-05-06 17:19:12 +0200 |
commit | 718bfa6bd04b4ef2f23caa3ace38b6232c1705ad (patch) | |
tree | e4ceadc46cc8dd09b825817abb0cea93e4771054 /ucb/source | |
parent | 948cff1e2664101f584b8e70b28f7bcda080ab6d (diff) |
jl152 i111434 ucb failes when copying folders, which contain files containing percent signs
Diffstat (limited to 'ucb/source')
-rw-r--r-- | ucb/source/ucp/file/shell.cxx | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ucb/source/ucp/file/shell.cxx b/ucb/source/ucp/file/shell.cxx index dff5db9616..c0ce3bebad 100644 --- a/ucb/source/ucp/file/shell.cxx +++ b/ucb/source/ucp/file/shell.cxx @@ -33,6 +33,7 @@ #endif #include "osl/diagnose.h" +#include <rtl/uri.hxx> #include <rtl/ustrbuf.hxx> #include <osl/time.h> #include <osl/file.hxx> @@ -2053,10 +2054,15 @@ shell::copy_recursive( const rtl::OUString& srcUnqPath, rtl::OUString newDstUnqPath = dstUnqPath; rtl::OUString tit; - if( aFileStatus.isValid( FileStatusMask_FileName ) ) - tit = aFileStatus.getFileName(); + if( aFileStatus.isValid( FileStatusMask_FileName ) ) + tit = rtl::Uri::encode( aFileStatus.getFileName(), + rtl_UriCharClassPchar, + rtl_UriEncodeIgnoreEscapes, + RTL_TEXTENCODING_UTF8 ); + if( newDstUnqPath.lastIndexOf( sal_Unicode('/') ) != newDstUnqPath.getLength()-1 ) newDstUnqPath += rtl::OUString::createFromAscii( "/" ); + newDstUnqPath += tit; if ( newSrcUnqPath != dstUnqPath ) |