summaryrefslogtreecommitdiff
path: root/quantum/dynamic_keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/dynamic_keymap.c')
-rw-r--r--quantum/dynamic_keymap.c14
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;
}
}