summaryrefslogtreecommitdiff
path: root/src/Update.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-08-18 11:44:07 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-08-18 11:44:07 (GMT)
commit97a819c79c5d89eca3a3227c88efe6b2c9e99b77 (patch)
tree8aa9772a5ef60afc12ee36192590e4d9da97acd2 /src/Update.cpp
parent5b51e670447ea175fb9b0b7035403b274e16972e (diff)
downloadpowder-97a819c79c5d89eca3a3227c88efe6b2c9e99b77.zip
powder-97a819c79c5d89eca3a3227c88efe6b2c9e99b77.tar.gz
Fix autoupdate issue where temp file is not deleted, fixes #128
Diffstat (limited to 'src/Update.cpp')
-rw-r--r--src/Update.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/Update.cpp b/src/Update.cpp
index 290b5df..4ba2362 100644
--- a/src/Update.cpp
+++ b/src/Update.cpp
@@ -150,6 +150,10 @@ int update_finish(void)
char *temp, *self=exe_name(), *p;
int timeout = 60, err;
+#ifdef DEBUG
+ printf("Update: Current EXE name: %s\n", self);
+#endif
+
temp = (char*)malloc(strlen(self)+12);
strcpy(temp, self);
p = temp + strlen(temp) - 4;
@@ -157,12 +161,18 @@ int update_finish(void)
p += 4;
strcpy(p, "_update.exe");
+#ifdef DEBUG
+ printf("Update: Temp EXE name: %s\n", temp);
+#endif
+
while (!DeleteFile(temp))
{
err = GetLastError();
if (err == ERROR_FILE_NOT_FOUND)
{
- // just as well, then
+#ifdef DEBUG
+ printf("Update: Temp file deleted\n");
+#endif
free(temp);
return 0;
}
@@ -170,6 +180,9 @@ int update_finish(void)
timeout--;
if (timeout <= 0)
{
+#ifdef DEBUG
+ printf("Update: Delete timeout\n");
+#endif
free(temp);
return 1;
}