Windows rename() needs an unlink() first (reported by Steven
Edwards).

diff --git a/tools/bin2res.c b/tools/bin2res.c
index e1654a3..68e76cc 100644
--- a/tools/bin2res.c
+++ b/tools/bin2res.c
@@ -183,8 +183,18 @@
     if (inserting)
     {
 	fclose(ftmp);
-	if (c == EOF && rename(tmp_file_name, input_file_name) < 0)
-	    c = '.'; /* force an error */
+	if (c == EOF)
+        {
+            if (rename(tmp_file_name, input_file_name) < 0)
+            {
+                /* try unlinking first, Windows rename is brain-damaged */
+                if (unlink(input_file_name) < 0 || rename(tmp_file_name, input_file_name) < 0)
+                {
+                    unlink(tmp_file_name);
+                    return 0;
+                }
+            }
+        }
 	else unlink(tmp_file_name);
     }