Fix linking error with custom names.

This commit is contained in:
Pascal Getreuer 2025-01-21 16:33:30 -08:00
parent bee18247f5
commit 45f573f335
4 changed files with 11 additions and 7 deletions

View File

@ -78,7 +78,8 @@ Many common QMK keycodes are recognized by `get_keycode_string()`, but not all.
Optionally, `keycode_string_names_user` may be defined to add names for additional keycodes. For example, supposing keymap.c defines `MYMACRO1` and `MYMACRO2` as custom keycodes, the following adds their names:
```c
const keycode_string_name_t keycode_string_names_user[] = {
const keycode_string_name_t *keycode_string_names_user =
(keycode_string_name_t []){
KEYCODE_STRING_NAME(MYMACRO1),
KEYCODE_STRING_NAME(MYMACRO2),
KEYCODE_STRING_NAMES_END // End of table sentinel.

View File

@ -92,10 +92,13 @@ static const keycode_string_name_t keycode_names[] = {
KEYCODE_STRING_NAMES_END
};
// clang-format on
__attribute__((weak)) const keycode_string_name_t empty_table[] = {KEYCODE_STRING_NAMES_END};
/** Users can override this to define names of additional keycodes. */
__attribute__((weak)) const keycode_string_name_t keycode_string_names_user[] = {KEYCODE_STRING_NAMES_END};
__attribute__((weak)) const keycode_string_name_t* keycode_string_names_user = empty_table;
/** Keyboard vendors can override this to define names of additional keycodes. */
__attribute__((weak)) const keycode_string_name_t keycode_string_names_kb[] = {KEYCODE_STRING_NAMES_END};
__attribute__((weak)) const keycode_string_name_t* keycode_string_names_kb = empty_table;
/** Names of the 4 mods on each hand. */
static const char* mod_names[4] = {PSTR("CTL"), PSTR("SFT"), PSTR("ALT"), PSTR("GUI")};
/** Internal buffer for holding a stringified keycode. */

View File

@ -90,9 +90,9 @@ typedef struct {
* The above defines names for `MYMACRO1` and `MYMACRO2`, and overrides
* `KC_EXLM` to format as "KC_EXLM" instead of the default "S(KC_1)".
*/
extern const keycode_string_name_t keycode_string_names_user[];
extern const keycode_string_name_t* keycode_string_names_user;
/** Same as `keycode_string_names_user`, but for use at the keyboard level. */
extern const keycode_string_name_t keycode_string_names_kb[];
extern const keycode_string_name_t* keycode_string_names_kb;
/** Helper to define a keycode_string_name_t. */
# define KEYCODE_STRING_NAME(kc) \

View File

@ -22,11 +22,11 @@ enum {
};
// clang-format off
extern "C" const keycode_string_name_t keycode_string_names_kb[] = {
extern "C" const keycode_string_name_t *keycode_string_names_kb = (keycode_string_name_t []){
KEYCODE_STRING_NAME(MYMACRO1),
KEYCODE_STRING_NAMES_END // End of table sentinel.
};
extern "C" const keycode_string_name_t keycode_string_names_user[] = {
extern "C" const keycode_string_name_t *keycode_string_names_user = (keycode_string_name_t []){
KEYCODE_STRING_NAME(MYMACRO2),
KEYCODE_STRING_NAME(KC_EXLM),
KEYCODE_STRING_NAMES_END // End of table sentinel.