[Bf-blender-cvs] [a6cd20716e6] blender-v2.93-release: Fix T87562: Keymap preferences from 2.92x ignored

Campbell Barton noreply at git.blender.org
Wed Apr 21 09:43:28 CEST 2021


Commit: a6cd20716e61afe6116aa2e98ef0c3465e142659
Author: Campbell Barton
Date:   Wed Apr 21 17:39:02 2021 +1000
Branches: blender-v2.93-release
https://developer.blender.org/rBa6cd20716e61afe6116aa2e98ef0c3465e142659

Fix T87562: Keymap preferences from 2.92x ignored

Renaming presets in 01d49d1542cee0da2a7629443f9534bc5cec5a55
caused them to be treated as separate key-maps.

===================================================================

M	source/blender/blenloader/intern/versioning_userdef.c

===================================================================

diff --git a/source/blender/blenloader/intern/versioning_userdef.c b/source/blender/blenloader/intern/versioning_userdef.c
index 847b10192f8..be3834faa5a 100644
--- a/source/blender/blenloader/intern/versioning_userdef.c
+++ b/source/blender/blenloader/intern/versioning_userdef.c
@@ -24,6 +24,7 @@
 
 #include "BLI_listbase.h"
 #include "BLI_math.h"
+#include "BLI_string.h"
 #include "BLI_utildefines.h"
 
 #ifdef WITH_INTERNATIONAL
@@ -841,6 +842,23 @@ void blo_do_versions_userdef(UserDef *userdef)
     }
   }
 
+  if (!USER_VERSION_ATLEAST(293, 1)) {
+    /* This rename was made after 2.93.0, harmless to run when it's not needed. */
+    const char *replace_table[][2] = {
+        {"blender", "Blender"},
+        {"blender_27x", "Blender_27x"},
+        {"industry_compatible", "Industry_Compatible"},
+    };
+    const int replace_table_len = ARRAY_SIZE(replace_table);
+
+    BLI_str_replace_table_exact(
+        userdef->keyconfigstr, sizeof(userdef->keyconfigstr), replace_table, replace_table_len);
+    LISTBASE_FOREACH (wmKeyConfigPref *, kpt, &userdef->user_keyconfig_prefs) {
+      BLI_str_replace_table_exact(
+          kpt->idname, sizeof(kpt->idname), replace_table, replace_table_len);
+    }
+  }
+
   if (!USER_VERSION_ATLEAST(293, 2)) {
     /* Enable asset browser features by default for alpha testing.
      * BLO_sanitize_experimental_features_userpref_blend() will disable it again for non-alpha



More information about the Bf-blender-cvs mailing list