--- 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;