Author :
Pierre Le Marre
Date :
2025-01-16 23:22:40
Hash :4ac22263 Message :keysyms: Check clashes between keysyms names and keywords
Due to how our parser is implemented, keysyms names that are also valid
keywords require special handling.
Added a check for these clashes in the keysym generator. The only
current clash, `section`, is already handled. Note that it means that
e.g. `section`, `Section` and `sEcTiOn` all parse to the same keysym.
This side effect is fine here, because *currently* there is no other
keysym that clashes with any possible of the case variation of `section`.
But in order to be extra cautious, we now test thoses clashes too.
Hopefully we will never have a clash again, but while it is unlikely
that we modify the keywords, the keysyms are not a frozen set.
scripts/update-keysyms
#!/bin/sh
# Run this to regenerate xkbcommon-keysyms.h from the X11 headers
# defining the keysyms and update the name <-> keysym mapping.
export LC_CTYPE=C.UTF-8
export LC_COLLATE=C.UTF-8
scripts/makeheader > include/xkbcommon/xkbcommon-keysyms.h
scripts/makekeys include/xkbcommon/xkbcommon-keysyms.h \
src/xkbcomp/keywords.gperf > src/ks_tables.h
scripts/update-headers.py