mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-16 12:51:47 +00:00
Fix linking error with custom names.
This commit is contained in:
parent
bee18247f5
commit
45f573f335
@ -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:
|
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
|
```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(MYMACRO1),
|
||||||
KEYCODE_STRING_NAME(MYMACRO2),
|
KEYCODE_STRING_NAME(MYMACRO2),
|
||||||
KEYCODE_STRING_NAMES_END // End of table sentinel.
|
KEYCODE_STRING_NAMES_END // End of table sentinel.
|
||||||
|
@ -92,10 +92,13 @@ static const keycode_string_name_t keycode_names[] = {
|
|||||||
KEYCODE_STRING_NAMES_END
|
KEYCODE_STRING_NAMES_END
|
||||||
};
|
};
|
||||||
// clang-format on
|
// 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. */
|
/** 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. */
|
/** 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. */
|
/** Names of the 4 mods on each hand. */
|
||||||
static const char* mod_names[4] = {PSTR("CTL"), PSTR("SFT"), PSTR("ALT"), PSTR("GUI")};
|
static const char* mod_names[4] = {PSTR("CTL"), PSTR("SFT"), PSTR("ALT"), PSTR("GUI")};
|
||||||
/** Internal buffer for holding a stringified keycode. */
|
/** Internal buffer for holding a stringified keycode. */
|
||||||
|
@ -90,9 +90,9 @@ typedef struct {
|
|||||||
* The above defines names for `MYMACRO1` and `MYMACRO2`, and overrides
|
* The above defines names for `MYMACRO1` and `MYMACRO2`, and overrides
|
||||||
* `KC_EXLM` to format as "KC_EXLM" instead of the default "S(KC_1)".
|
* `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. */
|
/** 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. */
|
/** Helper to define a keycode_string_name_t. */
|
||||||
# define KEYCODE_STRING_NAME(kc) \
|
# define KEYCODE_STRING_NAME(kc) \
|
||||||
|
@ -22,11 +22,11 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// clang-format off
|
// 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_NAME(MYMACRO1),
|
||||||
KEYCODE_STRING_NAMES_END // End of table sentinel.
|
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(MYMACRO2),
|
||||||
KEYCODE_STRING_NAME(KC_EXLM),
|
KEYCODE_STRING_NAME(KC_EXLM),
|
||||||
KEYCODE_STRING_NAMES_END // End of table sentinel.
|
KEYCODE_STRING_NAMES_END // End of table sentinel.
|
||||||
|
Loading…
Reference in New Issue
Block a user