|
d1a1a17a
|
2025-10-11T19:13:11
|
|
interactive-wayland: Prevent buffer use after free
The tool would crash on the second call to `buffer_create` calling
`wl_buffer_destroy` on a dangling `inter->buf`.
Fixes: e13faebb2a5a2b250a9c320515942edc1e652649
|
|
5e3011ce
|
2025-10-06T08:35:47
|
|
Fix invalid macro in xkbcli-how-to-type.1
`.Be` is not a valid macro. I believe the intent was to end the list
opened with `.Bl`. The macro for that is `.El`, as used elsewhere.
https://mandoc.bsd.lv/man/mdoc.7.html#Displays_and_lists
|
|
7c9f8668
|
2025-09-30T13:10:13
|
|
tools: Add option drop unused bits
|
|
6e45c83c
|
2025-09-24T20:30:40
|
|
tools: Add option to disable pretty-printing
|
|
3203a010
|
2025-08-13T17:06:20
|
|
tools: Add internal introspection
This tool enables simple analysis of XKB files with a YAML or DOT output:
- resolve XKB paths;
- list sections of a file;
- list the includes of each section;
- optionally process each include recursively.
Additionally, the RDF Turtle output enables to query using the powerful
SPARQL language.
The tool is for internal use only for now, so that we can test it in
various use cases before deciding if making it public.
|
|
4d396f6d
|
2025-09-16T21:05:27
|
|
tools: Added KcCGST output in YAML
|
|
934d4fd8
|
2025-08-21T19:33:28
|
|
logging: Improve tools & benches
|
|
3449f69f
|
2025-08-16T12:57:49
|
|
doc: Add new message XKB_ERROR_INVALID_COMPOSE_LOCALE
|
|
13ae4a26
|
2025-08-06T20:07:16
|
|
tools: Add Compose support to how-to-type
- Enable Compose support by default; disable it with `--disable-compose`
- Some filters are used to avoid combinatorial explosion
|
|
b5d969dd
|
2025-08-06T17:22:38
|
|
compose: Move constants to dedicated header
|
|
7394a3c7
|
2025-08-06T20:47:07
|
|
tools: Fix how-to-type modifier mask test
|
|
055c5362
|
2025-08-06T14:09:35
|
|
tools: Do not use a window for dump-keymap-wayland
Previously a window would appear for a very short time, which is
unpleasant and potentially dangerous for people sensitive to flashes.
|
|
6df45124
|
2025-08-05T10:19:48
|
|
tools: Add --keymap to xkbcli-how-to-type
It enables to load the keymap from a file or stdin instead of resolving
RMLVO names. Piping is also interesting for using with `dump-keymap-*`
tools.
|
|
09e93fa0
|
2025-08-06T10:12:39
|
|
tools: Enable custom keymap with interactive-{x11,wayland}
Added the `--keymap` option to enable providing the keymap to use
instead of the one from the display server. Implies `--local-state`.
Note that the other RMLVO options do not need to be implemented, since
one can simply pipe a keymap from `xkbcli compile-keymap`.
The `--keymap` option is also useful for users that do not have the
input permissions to access evdev API.
|
|
0aa54741
|
2025-08-04T22:46:36
|
|
tools: Add --local-state for interactive-{x11,wayland}
Enable to use a *local* state machine and ignore server updates for
modifiers/groups. Only key press/release and new keymap events are used.
|
|
885f8129
|
2025-08-05T23:17:29
|
|
tools: Fix memory leak in interactive-wayland
|
|
9cc19e4e
|
2025-08-04T22:42:34
|
|
tools: Fix missing --verbose doc + misc
|
|
9d4885df
|
2025-08-04T14:31:13
|
|
tools: Improve how-to-type keysym parsing
- Fixed incorrect numeric keysym parsing due to `errno` not being
reset.
- Added parsing keysym as fallback when `--keysym` is omitted.
- Added arguments tests.
- Fixed tools test Python types.
- Updated documentation.
|
|
29579ad4
|
2025-08-04T12:35:25
|
|
tools: Add --verbose to all tools
Added `--verbose` to:
- `xkbcli interactive-wayland`
- `xkbcli interactive-x11`
- `xkbcli compile-compose`
- `xkbcli how-to-type`
|
|
cce63b90
|
2025-08-04T09:48:32
|
|
tools: Print interactive state changes
`xkbcli interactive-*` tools: print detailed state change events.
|
|
d8caabf5
|
2025-08-04T09:30:48
|
|
tools: Print interactive key release event
`xkbcli interactive-*` tools:
- Print key release events. This is particularly useful when analyzing
the output sent by another person, in order to know the exact key
sequence.
|
|
f5d079f5
|
2025-08-04T09:58:42
|
|
tools: Improve interactive events output
Improved the output of events for `xkbcli interactive-*` tools:
- Added `--multiline` to enable multiline event output, which provides
more details and does not have formatting limitations.
- Added `--uniline` to enable uniline event output. While this is the
current default, future versions may switch to multiline display.
|
|
a83a482c
|
2025-07-18T11:27:52
|
|
tools: Add variants with automatic session type detection
Added:
- `xkbcli-interactive`
- `xkbcli-dump-keymap`
|
|
dc63e5f8
|
2025-07-07T12:28:24
|
|
Ensure config.h is always included first
While `config.h` may not be necessary in every file, it ensures
consistency and makes code refactoring safer.
|
|
56a32cc8
|
2025-06-18T11:37:19
|
|
xkbcli-interactive-wayland: xdg-decoration-unstable-v1
Use if available, to get window decoration.
Also resize the window bigger enough to make its title readable.
|
|
e13faebb
|
2025-06-18T11:36:07
|
|
xkbcli-interactive-wayland: Fix memory leak
|
|
c2896b32
|
2025-06-12T09:16:54
|
|
messages: Add new error "incompatible-keymap-text-format"
|
|
da2af4d3
|
2025-06-17T12:08:59
|
|
xkbcli-list: Added `layout-specific` field for options
|
|
52a4d9b0
|
2025-06-17T11:03:12
|
|
rules: Require layout or variant to enable %i expansion
Before this commit, the following rule would always match:
! model = symbols
* = s:%i
and set symbols to `s:1`, but the `:%i` is aimed to be used only when
the rules header specifies the layout or the variant.
Let’s be strict and disallow matching this kind of buggy rule. Emit
an error message so that we can detect it.
|
|
82ea2915
|
2025-05-06T17:22:22
|
|
tools: Add options to use explicit keymap format
The default output keymap format is `XKB_KEYMAP_USE_ORIGINAL_FORMAT`.
|
|
324984f1
|
2025-05-17T06:49:49
|
|
xkbcomp: Fix log for unknown default field
|
|
fb9fec18
|
2025-05-10T10:18:38
|
|
xkbcomp: Checked arithmetic
Use a polyfill for C23 checked arithmetic. This is a bit paranoid, as we
expect the user to use only 32 bit integers, so the signed 64 bit integer
we use to store the result should be more than enough.
Use jtckdint v1.0:
- repository: https://github.com/jart/jtckdint
- commit: 339450d13d8636f05dcb71ba36efddb226db481e
- removed all C++-specific code
|
|
06fbe1b2
|
2025-05-14T20:08:39
|
|
doc: Promote xkbcli tools
|
|
48a6faa7
|
2025-05-14T15:13:50
|
|
tools: Remove internal interactive-evdev
This *internal* tool is no longer necessary, as its single special
feature, `--print-modmaps`, is now available in the *public*
`compile-keymap` tool.
|
|
ae80b244
|
2025-05-14T15:08:37
|
|
tools: Add --modmaps option to compile-keymap
- Remove the `ENABLE_PRIVATE_APIS` guards on modmaps printing
functions, since we use no private symbols.
- Copy the `--print-modmaps` options from `interactive-evdev` into
`compile-keymap` and rename it to `--modmaps`. This enables a
feature similar to `xmodmap -pm`.
|
|
fb73f9f5
|
2025-05-14T15:02:24
|
|
tools: Refactor modmaps printing functions
Simplify and make them print valid YAML.
|
|
2e07790e
|
2025-05-14T14:55:55
|
|
tools: Remove modmaps fields in interactive entries
They are already printed before entering the interactive mode.
|
|
b421c2cf
|
2025-05-14T10:12:15
|
|
tools: Refactor compile-keymap
- Use explicit input and output format
- Perform more tests
|
|
61d8ec67
|
2025-05-12T18:20:47
|
|
misc: Fix string format specifiers
Ensure better portability.
|
|
b49a4409
|
2025-05-12T18:20:12
|
|
tools: Minor refactor of how-to-type
|
|
2617ebc5
|
2025-05-12T07:32:04
|
|
keymap: Ensure proper type for modifiers count
|
|
22d27277
|
2025-05-10T10:12:31
|
|
actions: Reject arguments if they are not expected
`NoAction`, `VoidAction` and `TerminateServer` do not accept arguments.
|
|
d239a3f0
|
2025-05-11T11:42:20
|
|
actions: Improve unsupported legacy X11 actions handling
- Display a warning
- Document drawbacks of degrading to `NoAction()`
|
|
137c5e90
|
2025-05-11T12:37:23
|
|
actions: Improve unknown action logging
|
|
3d79f459
|
2025-03-29T11:46:34
|
|
xkbcomp: Add Unicode code point escape sequence \u{NNNN}
Unicode code point escape sequences `\u{NNNN}` are replaced with the
UTF-8 encoding of their corresponding code point `U+NNNN`, if legal.
Supported Unicode code points are in the range `1‥0x10ffff`.
Note that we will reject the `U+0000` NULL code point, as we reject it
in the octal escape sequence `\0`.
This is intended mainly for the upcoming feature to write keysyms as
UTF-8 encoded strings. It can be used for various reasons:
- avoid encoding issues;
- avoid issue with font rendering (e.g. Asian scripts);
- make white space or zero-width characters more readable.
|
|
9b255d1e
|
2025-04-03T07:52:15
|
|
tools: Update bash completion
Handle positional argument as a path for the `compile-*` tools.
|
|
955eef14
|
2025-03-28T06:30:05
|
|
tools: Ensure to honor user locale
This is just good practice, but it is also necessary if we want to
facilitate the discovery of issues with locales in libxkbcommon.
|
|
275ffa66
|
2025-03-13T21:28:35
|
|
tools: Make --kccgst xkbcli-compile-keymap option public
The new public option `--kccgst` enables to display the result of RMLVO
resolution to KcCGST components.
This option has the same function than `setxkbmap -print`. This is particularly
useful for debugging issues with the rules.
Before this commit it was a private API. This commit enables us to remove
the *internal* version of `xkbcli-compile-keymap`.
|
|
8e92f25e
|
2025-03-13T21:26:59
|
|
rules: Added xkb_components_names_from_rules()
This is mainly for debugging purposes and to enable displaying KcCGST
values from RMLVO resolution in `xkbcli compile-keymap --kccgst`.
|
|
f3a4eeaa
|
2025-03-26T16:04:39
|
|
symbols: Improve keysym parsing
|
|
70d11abd
|
2025-03-26T07:38:05
|
|
messages: Add file encoding and invalid syntax entries
Added:
- `XKB_ERROR_INVALID_FILE_ENCODING`
- `XKB_ERROR_INVALID_RULES_SYNTAX`
- `XKB_ERROR_INVALID_COMPOSE_SYNTAX`
Changed:
- `XKB_ERROR_INVALID_SYNTAX` renamed to `XKB_ERROR_INVALID_XKB_SYNTAX`.
|
|
c9b0c527
|
2025-02-13T20:26:04
|
|
interactive-wayland: Fix int casts
|
|
5cfd36ab
|
2025-02-14T10:35:49
|
|
tools: Do not load names from the environment by default
Our tools are debugging tools and as such we need to have complete
control to be able to reproduce setups. This is not currently the case,
as we do not use `XKB_CONTEXT_NO_ENVIRONMENT_NAMES` by default nor can
we set it.
So it is very easy to forget about the various `XKB_DEFAULT_*`
environement variables for the default RMLVO values, then to get puzzled
by unexpected results.
Added to that, these environment variables do not work correctly in
`xkbcli-compile-xeymap`: calling the tool without RMLVO values will
use these variables only if the RMLVO values are set explicitly empty or
if the various *constants* `DEFAULT_XKB_*` are empty. This is unexpected,
as the environment variables should *always* be used unless:
- `XKB_CONTEXT_NO_ENVIRONMENT_NAMES` is used (not the case here);
- the variable is empty; in this case the constants `DEFAULT_XKB_*` are
used.
Fixed by the following *breaking change*: make the tools use
`XKB_CONTEXT_NO_ENVIRONMENT_NAMES` *by default*, unless the new
`--enable-environment-names` option is used.
We also make `rmlvo` incompatible with `--enable-environment-names` for
now in the public tool, as else it requires a private API.
|
|
2c10e50c
|
2025-02-07T12:15:39
|
|
tools: Fix compile-keymap default KcCGST values
Values may be read from the environment.
|
|
a4038a47
|
2025-02-12T09:50:36
|
|
Miscellaneous int types fixes
|
|
7e918f2e
|
2025-02-05T15:49:26
|
|
tools: add Windows compat for S_ISFIFO
Signed-off-by: Ran Benita <ran@unusedvar.com>
|
|
cfe53fe4
|
2025-02-05T15:37:49
|
|
tools: add Windows include for execv
Signed-off-by: Ran Benita <ran@unusedvar.com>
|
|
df2322d7
|
2025-02-05T14:41:21
|
|
Replace include guards by `#pragma once`
We currently have a mix of include headers, pragma once and some
missing.
pragma once is not standard but is widely supported, and we already use
it with no issues, so I'd say it's not a problem.
Let's convert all headers to pragma once to avoid the annoying include
guards.
The public headers are *not* converted.
Signed-off-by: Ran Benita <ran@unusedvar.com>
|
|
e120807b
|
2025-01-29T15:35:22
|
|
Update license notices to SDPX short identifiers + update LICENSE
Fix #628.
Signed-off-by: Ran Benita <ran@unusedvar.com>
|
|
848ecacf
|
2025-01-30T09:12:54
|
|
tools: Enable Compose file positional argument and piping
Also deprecate the `--file` flag as redundant.
|
|
bcb16d29
|
2025-01-28T13:19:06
|
|
tools: Miscellaneous enhancements
|
|
b168623c
|
2025-01-28T13:24:14
|
|
tools: Enable using keymap file as a positional argument
|
|
313001ce
|
2025-01-28T13:48:02
|
|
tools: Add --keymap alias and enable loading keymap files
Add `--keymap` as a more intuitive alias to `--from-xkb`; it also makes
it consistent with `interactive-evdev`. It optionally accepts a keymap
file path; if the argument is empty or `-` then the keymap is read from
`stdin`.
|
|
ae473f9f
|
2025-01-28T09:25:33
|
|
tools: Fix return code of compile-keymap
Previously when using `--keymap` we mistakenly returned a boolean so
that `true` (resp. false) translated to `EXIT_FAILURE` (resp.
`EXIT_SUCCESS`).
Fixed by returning the proper return code integer.
|
|
a5bdb954
|
2025-01-24T20:08:01
|
|
tools: Fix signed literal used as a mask
|
|
357ab0cb
|
2025-01-23T16:42:30
|
|
clang-tidy: Fix missing default case in switch statement
|
|
5389a31e
|
2025-01-22T17:33:03
|
|
clang-tidy: Use memcpy instead of the insecure strcpy
|
|
c7fdf506
|
2025-01-16T20:23:28
|
|
Use portable integer literal suffixes
|
|
e3e44998
|
2025-01-16T20:23:47
|
|
Fix missing or incorrect integer literal suffixes
The correct suffix is required in order to have the expected value
in a portable way.
|
|
420123fd
|
2024-11-29T07:34:07
|
|
export-keysyms: Enable all keysyms export + char names
This enable to check case mappings for Unicode keysyms.
|
|
628242b2
|
2024-11-14T18:09:03
|
|
tools: Add --test to compile-{keymap,compose}
The new flag `--test` enables to only test if compilation succeeds,
without printing the corresponding keymap or Compose file.
This is useful for quick feedback and to speedup some tests suites, e.g.
for `xkeyboard-config`.
|
|
b8888345
|
2024-09-20T09:17:23
|
|
tools: Add xkbcli dump-keymap-{wayland,x11}
There is currently no easy way to dump a keymap from a Wayland compositor,
such as `xkbcomp -xkb $DISPLAY -` could do for X servers.
As `xkbcomp` may not be intuitive, a corresponding tool for X servers
would also be useful.
Add the tools `xkbcli-dump-keymap-{wayland,x11}` by tweaking the existing
`xkbcli-interactive-{wayland,x11}` tools.
|
|
60228356
|
2024-10-07T10:42:27
|
|
symbols: Add message ID for incompatible keysyms and actions counts
|
|
7c4c718b
|
2024-09-30T06:13:38
|
|
Allow only the first group in symbols sections when using RMLVO
Currently `xkb_keymap_num_layouts` may return a greater number than the
number of layouts configured using RMLVO, because we allow symbols
sections to define various groups per key.
This is unintuitive and kind of buggy: groups should be added via rules
by setting an explicit `:n` modifier.
Fix: when parsing a keymap using RMLVO resolution:
- Get the expected layouts count from the resulting KcCGST.
- Drop the groups after the first one in included symbols sections. This
will ensure that a symbol section can only define one group per key.
Notes:
- Compiling a keymap string directly is unaffected.
- RMLVO resolution may still produce more groups than the input layouts.
Indeed, some legacy rules in xkeyboard-config rely on this to insert
automatically a US layout before the given non-Latin one, resulting
in two layouts while only one was given.
|
|
a898bc81
|
2024-09-25T06:47:23
|
|
logging: Added new error messages ID for keymap and rules
|
|
0cd1087a
|
2024-09-12T01:43:56
|
|
xkbcli how-to-type: Enhance arguments parsing & doc
Currently the positional parameter of the CLI is either a Unicode code
point or a keysym. However their respective format is not documented.
It turns out that there are multiple issues due to the use of `strtol`:
- Code points can be parsed as octal, decimal and hexadecimal, while
keysyms can only be parsed as hexadecimal. Some programs outputs
keysyms in their decimal form (e.g. `wev`) so it is worth to bring
symmetry with code points.
- Octal format is unusual for both and is triggered by leading zeros,
which is unintuitive in this context.
- `U+NNNN` format is the standard format for Unicode code points but is
not supported.
- Plain characters are not supported, e.g.: a, é, ß, Æ, γ, 🦆, etc.
Although this is probably the easiest format for most users.
Fixed the issues above:
- Allow the code point to be passed exactly in the following formats:
- Literal character (requires UTF-8 character encoding of the terminal);
- Decimal number;
- Hexadecimal number: either `0xNNNN` or `U+NNNN` (any digit count)
- Allow the keysym to be passed exactly in the following formats:
- Decimal number;
- Hexadecimal number: `0xNNNN` (any digit count);
- Name.
- Improve both `--help` message and manual page.
|
|
44df6eee
|
2024-09-23T07:27:48
|
|
Add new warnings for deprecated keysyms
Add 2 new warnings:
- Deprecated keysym name (typo, historical alias, etc.);
- Deprecated keysym (all names and forms).
Guard deprecated keysym tests with verbosity level ≥2, so they are
run only when actually needed.
|
|
652b03cc
|
2024-09-01T08:32:21
|
|
compose: Add Compose table dump internal API
- Move `print_compose_table_entry` to own file and add a `file`
argument to select output.
- Add `xkb_compose_table_dump` to dump a Compose table.
This change is needed in order to share the feature “dump a Compose
table” between tests and tools.
|
|
d85fc24d
|
2024-07-16T10:22:23
|
|
test: initialize two return values
../../../test/xvfb-wrapper.c:166:5: warning: Undefined or garbage value
returned to caller [core.uninitialized.UndefReturn]
166 | return rc;
../../../tools/interactive-wayland.c:820:14: warning: The left operand
of '>=' is a garbage value [core.UndefinedBinaryOperatorResult]
820 | exit(ret >= 0 ? EXIT_SUCCESS : EXIT_FAILURE);
|
|
a0a59d9f
|
2024-07-16T10:37:09
|
|
interactive-x11: initialize a variable
If xkb_compose_table_new_from_locale() fails we end up de-initializing
the keyboard state before it was ever initialized.
../../../tools/interactive-x11.c:196:5: warning: 1st function call
argument is an uninitialized value [core.CallAndMessage]
196 | xkb_state_unref(kbd->state);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
798b7b73
|
2024-02-23T17:10:15
|
|
keysyms: Export explicitly named keysyms
Added a tool to export explicitly named keysyms to a yaml file. This
includes the following keysyms properties:
- Value
- Name
- Corresponding Unicode code point, if relevant
- Corresponding case mapping, if relevant
This will allow us to check the case mappings easier and to refactor the
related functions.
|
|
addf73c5
|
2024-07-12T09:17:34
|
|
keysyms: Require only 5 bytes for UTF-8 encoding
Require only 5 bytes for the buffer of `xkb_keysym_to_utf8`, as UTF-8
encodes code points on up to 4 bytes + 1 byte for the NULL-terminating
byte.
Previous standard [RFC 2279] (1998) required up to 6 bytes per code
point, but has been superseded by [RFC 3629] (2003).
[RFC 2279]: https://datatracker.ietf.org/doc/html/rfc2279
[RFC 3629]: https://datatracker.ietf.org/doc/html/rfc3629
|
|
a4f62fcd
|
2024-06-04T07:03:10
|
|
doc (manuals): clean and expand apropos results
Previously on FreeBSD/mandoc (probably affecting others), everything
except xkbcli was being listed twice and wrapping on standard console
in apropos because mdoc(7) names should not have spaces or be different
than the title.
Further, xkb is already parsed in search results by being in the name,
so expand xkb to "X keyboard" so that they match for apropos keyboard.
We did this already in xkbutils, which matches setxkbmap.
These don't need to be quoted literals, and - doesn't need to be escaped,
but I left them because there may be environments which are not to spec,
but I'm happy to ammend this commit if that cleanup seems desirable.
Co-authored-by: Ran Benita <ran@unusedvar.com>
|
|
abb6e588
|
2023-12-30T13:18:18
|
|
tools: remove unused `#incldue <ctype.h>`
We avoid this header due to its locale dependence. This include seems
like a leftover in 44029221e8423f1ca93470952542a0517a208d42.
Signed-off-by: Ran Benita <ran@unusedvar.com>
|
|
13b36a76
|
2024-03-01T15:02:41
|
|
Global default statement: Improve code & error message
- Simplify error handling.
- Improve error message: add message ID and relevant
quotes and try to standardize a bit.
- Add proper doc for in the message registry.
Note: Instead of testing the value of `expr.op`, we test if the argument
`elem` of `ExprResolveLhs` is set: this allows us to catch also the
error with `x.y[z]` rather than just `x.y` as previously.
|
|
883bac60
|
2024-02-14T11:26:10
|
|
tools: constify the prefix in tools_print_keycode_state
|
|
89ceb351
|
2024-02-14T10:23:15
|
|
tools: add --verbose to interactive-evdev
|
|
dd3e2140
|
2024-02-08T20:15:22
|
|
interactive-evdev: reduce the space allocated for keysyms (#443)
* interactive-evdev: reduce the printed space used for keysyms
In commit 8cca3a7bfb185876994d6ec3d25cda88e5640a4d the buffer for the keysym
was extended to accommodate for up to XKB_COMPOSE_MAX_STRING_SIZE bytes. This
caused the printf to expand to the same width for the keysym alone, making the
output less useful. Drop this back down to the same width it was before.
|
|
8e26a8b2
|
2024-02-07T10:06:15
|
|
interactive-evdev: align Usage and or in the help output
|
|
8cca3a7b
|
2023-12-05T17:39:59
|
|
compose: Add XKB_COMPOSE_MAX_STRING_SIZE
Define the maximum size of a compose sequence result string explicit as
a constant and use it everywhere to improve the code readability.
|
|
c1b5da1d
|
2024-01-12T10:40:26
|
|
tools: Fix bash completion permissions
There is no need to give execution permission. It also creates an
unnecessary work for packaging.
Fixed by removing execution permission.
|
|
0074baf4
|
2023-12-19T07:28:52
|
|
keysyms: Add XKB_KEYSYM_NAME_MAX_SIZE for internal use
Currently there is no indication of the maximum length of keysym names.
This is statically known, so add the new *internal* following API:
`XKB_KEYSYM_NAME_MAX_SIZE`.
|
|
cfcc7922
|
2023-11-07T12:58:46
|
|
xkbcli-compose: Simplify locale options
Current options to set the locale are convoluted:
- An explicit locale *must* be given, while a sane default would be
to use the user environment.
- Then there are two options that were useful while testing locale
handling: read environment variables or use `setlocale`. But the
program has already called:
```
setlocale(LC_ALL, "");
```
so it turns out the two options lead to the same results.
Remove options `--locale-from-env` and `--locale-from-setlocale`
and make the locale default to the user environment.
|
|
0a577a09
|
2023-11-07T12:58:41
|
|
xkbcli-compile-compose: Fix string result escaping
Currently the result string is not escaped and may produce invalid
results.
Fixed by introducing an ad-hoc escape function and relative tests.
|
|
d826d70b
|
2023-11-07T12:58:36
|
|
xkbcli: Fix bash completion
`compgen` expect command options list formatted as a newline-separated
list. Add a missing newline when concatenating two lists.
|
|
bc330c00
|
2023-11-07T12:58:20
|
|
xkbcli: Promote compose to xkbcli-compile-compose
Previously this tool was only used for internal testing and thus
not installed. But it is useful for debugging, much like
xkbcli-compile-keymap.
|
|
00e3058e
|
2023-11-06T21:53:51
|
|
Prevent recursive includes of keymap components
- Add check for recursive includes of keymap components. It relies on
limiting the include depth. The threshold is currently to 15, which
seems reasonable with plenty of margin for keymaps in the wild.
- Add corresponding new log message `recursive-include`.
- Add tests for recursive includes.
|
|
4b58ff78
|
2023-10-25T20:59:36
|
|
Fix memory leak in print_keymap
The string buffer was not freed.
|
|
171e0170
|
2023-10-25T20:39:39
|
|
Fix memory leak in FindFileInXkbPath
The string `buf` was not freed after each call to `asprintf_safe`.
Avoid allocating and introduce the new message: `XKB_ERROR_INSUFFICIENT_BUFFER_SIZE`.
|
|
0f9c95df
|
2023-11-01T18:12:15
|
|
interactive-x11: Add support for Compose
|