diff options
Diffstat (limited to 'quantum')
| -rw-r--r-- | quantum/dynamic_keymap.c | 14 | 
1 files changed, 8 insertions, 6 deletions
| diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index f4120b1184..3bb84cbdea 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -210,9 +210,9 @@ void dynamic_keymap_macro_send(uint8_t id) {          ++p;      } -    // Send the macro string one or two chars at a time -    // by making temporary 1 or 2 char strings -    char data[3] = {0, 0, 0}; +    // Send the macro string one or three chars at a time +    // by making temporary 1 or 3 char strings +    char data[4] = {0, 0, 0, 0};      // We already checked there was a null at the end of      // the buffer, so this cannot go past the end      while (1) { @@ -223,10 +223,12 @@ void dynamic_keymap_macro_send(uint8_t id) {              break;          }          // If the char is magic (tap, down, up), -        // add the next char (key to use) and send a 2 char string. +        // add the next char (key to use) and send a 3 char string.          if (data[0] == SS_TAP_CODE || data[0] == SS_DOWN_CODE || data[0] == SS_UP_CODE) { -            data[1] = eeprom_read_byte(p++); -            if (data[1] == 0) { +            data[1] = data[0]; +            data[0] = SS_QMK_PREFIX; +            data[2] = eeprom_read_byte(p++); +            if (data[2] == 0) {                  break;              }          } | 
