-rw-r--r-- | library/filemanager.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/library/filemanager.cpp b/library/filemanager.cpp index 99837fe..adfe590 100644 --- a/library/filemanager.cpp +++ b/library/filemanager.cpp @@ -253,50 +253,50 @@ bool FileManager::copyFile( const QString & src, const QString & dest ) { * Author: Chris Evans * sysdeputil.c */ /* XXX - start_pos will truncate on 32-bit machines - can we * say "start from current pos"? */ off_t written = 0; int retval = 0; retval = sendfile(read_fd, write_fd, offset, stat_buf.st_size, NULL, &written, 0); /* Translate to Linux-like retval */ if (written > 0) { err = (int) written; } #else /* SENDFILE */ err == -1; msg = "FAILURE: Using unsupported function \"sendfile()\" Need Workaround !!"; success = false; # warning "Need workaround for sendfile!!(eilers)" #endif /* SENDFILE */ #else err = sendfile(write_fd, read_fd, &offset, stat_buf.st_size); - if( err != -1) { - switch(err) { + if( err == -1) { + switch(errno) { case EBADF : msg = "The input file was not opened for reading or the output file was not opened for writing. "; case EINVAL: msg = "Descriptor is not valid or locked. "; case ENOMEM: msg = "Insufficient memory to read from in_fd."; case EIO: msg = "Unspecified error while reading from in_fd."; }; success = false; } #endif /* Q_OS_MACX */ if( !success ) qWarning( msg ); } else { qWarning("open write failed %s, %s",src.latin1(), dest.latin1()); success = false; } } else { qWarning("open read failed %s, %s",src.latin1(), dest.latin1()); success = false; } srcFile.close(); destFile.close(); // Set file permissions if( stat( (const char *) src, &status ) == 0 ) { chmod( (const char *) dest, status.st_mode ); } |