kdelibs/kdelibs-4.0.5-kio-ftp-overw...

31 lines
949 B
Diff

--- kdelibs/kioslave/ftp/ftp.cpp 2008/06/09 12:31:52 818728
+++ kdelibs/kioslave/ftp/ftp.cpp 2008/06/09 12:41:22 818729
@@ -1041,12 +1041,23 @@
error( ERR_CANNOT_RENAME, src.path() );
}
-bool Ftp::ftpRename( const QString & src, const QString & dst, KIO::JobFlags )
+bool Ftp::ftpRename( const QString & src, const QString & dst, KIO::JobFlags jobFlags)
{
- // TODO honor overwrite
- assert( m_bLoggedOn );
+ assert( m_bLoggedOn );
+
+ // Must check if dst already exists, RNFR+RNTO overwrites by default (#127793).
+ if (!(jobFlags & KIO::Overwrite)) {
+ if (ftpSize(dst, 'I')) {
+ error(ERR_FILE_ALREADY_EXIST, dst);
+ return false;
+ }
+ }
+ if (ftpFolder(dst, false)) {
+ error(ERR_DIR_ALREADY_EXIST, dst);
+ return false;
+ }
- int pos = src.lastIndexOf("/");
+ int pos = src.lastIndexOf('/');
if( !ftpFolder(src.left(pos+1), false) )
return false;