summaryrefslogtreecommitdiff
path: root/rsync/qrsync.cpp
Side-by-side diff
Diffstat (limited to 'rsync/qrsync.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--rsync/qrsync.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/rsync/qrsync.cpp b/rsync/qrsync.cpp
index fe5f1bc..a2dbafc 100644
--- a/rsync/qrsync.cpp
+++ b/rsync/qrsync.cpp
@@ -1,110 +1,115 @@
#include "qrsync.h"
#include <stdio.h>
extern "C" {
#include "rsync.h"
}
#include <stdlib.h>
+/* OPIE */
+#include <opie2/odebug.h>
+using namespace Opie::Core;
+
+/* QT */
#include <qfile.h>
static const char *rdiffNewFile = "/tmp/rdiff/result";
static size_t block_len = RS_DEFAULT_BLOCK_LEN;
static size_t strong_len = RS_DEFAULT_STRONG_LEN;
void QRsync::generateSignature( QString baseFile, QString sigFile )
{
if ( QFile::exists( baseFile ) ) {
FILE *basis_file, *sig_file;
rs_result result;
basis_file = fopen( baseFile.latin1(), "rb" );
sig_file = fopen( sigFile.latin1(), "wb" );
result = rs_sig_file(basis_file, sig_file, block_len, strong_len, 0);
fclose( basis_file );
fclose( sig_file );
if (result != RS_DONE)
printf("error in rdiffGenSig: %d", result );
}
}
void QRsync::generateDiff( QString baseFile, QString sigFile, QString deltaFile )
{
if ( QFile::exists( baseFile ) && QFile::exists( sigFile ) ) {
FILE *sig_file, *new_file, *delta_file;
rs_result result;
rs_signature_t *sumset;
sig_file = fopen(sigFile.latin1(), "rb");
new_file = fopen(baseFile.latin1(), "rb");
delta_file = fopen(deltaFile.latin1(), "wb");
result = rs_loadsig_file(sig_file, &sumset, 0);
if (result != RS_DONE) {
- qDebug( "rdiffGenDiff: loading of sig file failed, error=%d", result );
+ odebug << "rdiffGenDiff: loading of sig file failed, error=" << result << "" << oendl;
} else {
result = rs_build_hash_table(sumset);
if ( result != RS_DONE) {
- qDebug( "rdiffGenDiff: building of hash table failed, error=%d", result );
+ odebug << "rdiffGenDiff: building of hash table failed, error=" << result << "" << oendl;
} else {
result = rs_delta_file(sumset, new_file, delta_file, 0);
if ( result != RS_DONE) {
- qDebug( "rdiffGenDiff: writing of diff file failed, error=%d", result );
+ odebug << "rdiffGenDiff: writing of diff file failed, error=" << result << "" << oendl;
}
}
}
if ( sumset )
rs_free_sumset( sumset );
fclose( new_file );
fclose( delta_file );
fclose( sig_file );
}
}
void QRsync::applyDiff( QString baseFile, QString deltaFile )
{
if ( QFile::exists( baseFile ) && QFile::exists( deltaFile ) ) {
FILE *basis_file, *delta_file, *new_file;
rs_result result;
basis_file = fopen(baseFile.latin1(), "rb");
delta_file = fopen(deltaFile.latin1(), "rb");
#ifdef Q_WS_WIN
new_file = fopen( (baseFile + ".new").latin1(), "wb" );
#else
new_file = fopen(rdiffNewFile, "wb");
#endif
result = rs_patch_file(basis_file, delta_file, new_file, 0);
fclose( basis_file );
fclose( delta_file );
fclose( new_file );
if (result != RS_DONE) {
- qDebug( "rdiffApplyDiff failed with result %d", result );
+ odebug << "rdiffApplyDiff failed with result " << result << "" << oendl;
return;
}
#ifdef Q_WS_WIN
QDir dir;
QFile backup = baseFile + "~";
dir.rename( baseFile, backup );
dir.rename( (baseFile + ".new"), baseFile );
dir.remove( backup );
#else
QString cmd = "mv ";
cmd += rdiffNewFile;
cmd += " " + baseFile;
system( cmd.latin1() );
#endif
}
}