From 3fee922949fe9342760ad846a1c0dcefb9b48b96 Mon Sep 17 00:00:00 2001 From: Xun Li Date: Tue, 7 Mar 2017 18:47:21 -0600 Subject: [PATCH] fix issue 644 --- DialogTools/AutoUpdateDlg.cpp | 52 ++++++++++++++++++++++------------- version.h | 2 +- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/DialogTools/AutoUpdateDlg.cpp b/DialogTools/AutoUpdateDlg.cpp index 0bfcdb288..61dad3336 100644 --- a/DialogTools/AutoUpdateDlg.cpp +++ b/DialogTools/AutoUpdateDlg.cpp @@ -429,29 +429,43 @@ void AutoUpdateDlg::OnOkClick( wxCommandEvent& event ) } else { file_name = exeDir + file_name; - wxString update_file_name = file_name + ".update"; - wxString backup_file_name = file_name + ".backup"; - wxRemoveFile(backup_file_name); - wxRemoveFile(update_file_name); - - file_url.Replace(" ", "%20"); - if (DownloadUrl(file_url.mb_str(), update_file_name.mb_str())){ - // check file size - wxFileName updateFile(update_file_name); - wxULongLong update_size = updateFile.GetSize(); - - if (update_size != size ) - throw GdaException(""); + wxStructStat strucStat; + wxStat(file_name, &strucStat); + wxFileOffset filelen=strucStat.st_size; + + // should skip unless some criticle file + if (filelen == size && + file_name.EndsWith("cache.sqlite") ) + { + success = true; - // replace the old file - wxRenameFile(file_name, backup_file_name); - wxRenameFile(update_file_name, file_name); + } else { + + wxString update_file_name = file_name + ".update"; + wxString backup_file_name = file_name + ".backup"; - wxRemoveFile(backup_file_name); - wxRemoveFile(update_file_name); + wxRemoveFile(backup_file_name); + wxRemoveFile(update_file_name); + + file_url.Replace(" ", "%20"); + if (DownloadUrl(file_url.mb_str(), update_file_name.mb_str())){ + // check file size + wxFileName updateFile(update_file_name); + wxULongLong update_size = updateFile.GetSize(); + + if (update_size != size ) + throw GdaException(""); + + // replace the old file + wxRenameFile(file_name, backup_file_name); + wxRenameFile(update_file_name, file_name); + + wxRemoveFile(backup_file_name); + wxRemoveFile(update_file_name); - success = true; + success = true; + } } progressDlg.Update(current_job++); } diff --git a/version.h b/version.h index 68983942d..2fab6614d 100644 --- a/version.h +++ b/version.h @@ -2,7 +2,7 @@ namespace Gda { const int version_major = 1; const int version_minor = 8; const int version_build = 16; - const int version_subbuild = 2; + const int version_subbuild = 4; const int version_year = 2017; const int version_month = 3; const int version_day = 1;