Hash :
4e90cb9c
Author :
Date :
2025-03-17T07:02:07
xkbcomp: Improve logging of virtual modifiers When logging about virtual modifier *explicit* mappings, we should always use only real modifiers or hexadecimal numbers to print the mask. Consider: ``` virtual_modifiers M1, M2=0x200, M2=0x400; ``` Before this commit we would get the following warning: ``` WARNING: Virtual modifier M2 defined multiple times; Using M2, ignoring M1 ``` while we would prefer the less confusing: ``` WARNING: Virtual modifier M2 defined multiple times; Using 0x400, ignoring 0x200 ```
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
/*
* Copyright © 2009 Dan Nicholson
* SPDX-License-Identifier: MIT
*/
#pragma once
#include <stdbool.h>
#include "xkbcommon/xkbcommon.h"
#include "atom.h"
#include "keymap.h"
typedef struct {
const char *name;
uint32_t value;
} LookupEntry;
bool
LookupString(const LookupEntry tab[], const char *string,
unsigned int *value_rtrn);
const char *
LookupValue(const LookupEntry tab[], unsigned int value);
extern const LookupEntry ctrlMaskNames[];
extern const LookupEntry modComponentMaskNames[];
extern const LookupEntry groupComponentMaskNames[];
extern const LookupEntry groupMaskNames[];
extern const LookupEntry groupNames[];
extern const LookupEntry levelNames[];
extern const LookupEntry buttonNames[];
extern const LookupEntry useModMapValueNames[];
extern const LookupEntry actionTypeNames[];
extern const LookupEntry symInterpretMatchMaskNames[];
const char *
ModMaskText(struct xkb_context *ctx, enum mod_type type,
const struct xkb_mod_set *mods, xkb_mod_mask_t mask);
const char *
ModIndexText(struct xkb_context *ctx, const struct xkb_mod_set *mods,
xkb_mod_index_t ndx);
const char *
ActionTypeText(enum xkb_action_type type);
const char *
KeysymText(struct xkb_context *ctx, xkb_keysym_t sym);
const char *
KeyNameText(struct xkb_context *ctx, xkb_atom_t name);
const char *
SIMatchText(enum xkb_match_operation type);
const char *
LedStateMaskText(struct xkb_context *ctx, enum xkb_state_component mask);
const char *
ControlMaskText(struct xkb_context *ctx, enum xkb_action_controls mask);