Avoid autosave name collisions
authorJacques Lucke <mail@jlucke.com>
Wed, 17 Apr 2019 14:54:28 +0000 (16:54 +0200)
committerJacques Lucke <mail@jlucke.com>
Wed, 17 Apr 2019 14:54:28 +0000 (16:54 +0200)
When the same .blend file was open in two instances of Blender,
the autosaved files would overwrite each other.

The solution is to put the pid into the filename.

The exact pattern is the result of a discussion with @pablovazquez.

source/blender/windowmanager/intern/wm_files.c

index a4e059e..2ac488f 100644 (file)
@@ -1409,10 +1409,10 @@ void wm_autosave_location(char *filepath)
   if (G_MAIN && G.relbase_valid) {
     const char *basename = BLI_path_basename(BKE_main_blendfile_path_from_global());
     int len = strlen(basename) - 6;
-    BLI_snprintf(path, sizeof(path), "%.*s (autosave).blend", len, basename);
+    BLI_snprintf(path, sizeof(path), "%.*s_%d_autosave.blend", len, basename, pid);
   }
   else {
-    BLI_snprintf(path, sizeof(path), "%d (autosave).blend", pid);
+    BLI_snprintf(path, sizeof(path), "%d_autosave.blend", pid);
   }
 
 #ifdef WIN32