Fixed tap/down/up handling in dynamic keymap macros

pull/5613/head
Wilba6582 6 years ago committed by Drashna Jaelre
parent 45207b079b
commit 7661468719
No known key found for this signature in database
GPG Key ID: 4C4221222CD5F9F0

@ -210,19 +210,27 @@ void dynamic_keymap_macro_send( uint8_t id )
++p; ++p;
} }
// Send the macro string one char at a time // Send the macro string one or two chars at a time
// by making temporary 1 char strings // by making temporary 1 or 2 char strings
char data[2] = { 0, 0 }; char data[3] = { 0, 0, 0 };
// We already checked there was a null at the end of // We already checked there was a null at the end of
// the buffer, so this cannot go past the end // the buffer, so this cannot go past the end
while ( 1 ) { while ( 1 ) {
data[0] = eeprom_read_byte(p); data[0] = eeprom_read_byte(p++);
data[1] = 0;
// Stop at the null terminator of this macro string // Stop at the null terminator of this macro string
if ( data[0] == 0 ) { if ( data[0] == 0 ) {
break; break;
} }
// If the char is magic (tap, down, up),
// add the next char (key to use) and send a 2 char string.
if ( data[0] == 1 || data[0] == 2 || data[0] == 3 ) {
data[1] = eeprom_read_byte(p++);
if ( data[1] == 0 ) {
break;
}
}
send_string(data); send_string(data);
++p;
} }
} }

Loading…
Cancel
Save