Fixes #2456, controllermap's undo does not work correctly (by Bogdan Marinov)
authorGabriel Jacobo <gabomdq@gmail.com>
Mon, 24 Mar 2014 11:42:09 -0300
changeset 8677 ce3c968f7340
parent 8676 e217c66375e5
child 8678 7149b02f106b
Fixes #2456, controllermap's undo does not work correctly (by Bogdan Marinov)
test/controllermap.c
--- a/test/controllermap.c	Mon Mar 24 11:04:42 2014 -0300
+++ b/test/controllermap.c	Mon Mar 24 11:42:09 2014 -0300
@@ -111,7 +111,7 @@
     Uint8 alpha=200, alpha_step = -1;
     Uint32 alpha_ticks;
     char mapping[4096], temp[4096];
-    MappingStep *step;
+    MappingStep *step, *prev_step;
     MappingStep steps[] = {
         {342, 132,  0.0,  MARKER_BUTTON, "x", -1, -1, -1, -1, ""},
         {387, 167,  0.0,  MARKER_BUTTON, "a", -1, -1, -1, -1, ""},
@@ -296,8 +296,8 @@
                     if (event.key.keysym.sym == SDLK_BACKSPACE || event.key.keysym.sym == SDLK_AC_BACK) {
                         /* Undo! */
                         if (s > 0) {
-                            SDL_strlcpy(mapping, step->mapping, SDL_arraysize(step->mapping));
-                            s--;
+                            prev_step = &steps[--s];
+                            SDL_strlcpy(mapping, prev_step->mapping, SDL_arraysize(prev_step->mapping));
                             next = SDL_TRUE;
                         }
                         break;