Hash :
6881fb32
Author :
Date :
2025-04-01T08:28:02
xkbcomp: Drop trailing NoSymbol and NoAction()
This brings us closer to what `xkbcomp` outputs. One should use
the explicit `VoidSymbol` instead of `NoSymbol`, in order to avoid
dropping empty levels.
This may affect keys that rely on an *implicit* key type. Example:
- Input:
```c
key <> { [a, A, NoSymbol] };
```
- Compilation with xkbcommon \< 1.9.0:
```c
key <> {
type= "FOUR_LEVEL_SEMIALPHABETIC",
[a, A, NoSymbol, NoSymbol]
};
```
- Compilation with xkbcommon ≥ 1.9.0:
```c
key <> {
type= "ALPHABETIC",
[a, A]
};
```
Trailing NoSymbol and NoAction() are now dropped. This may affect
keys that rely on an implicit key type.
Example:
Input:
key <> { [a, A, NoSymbol] };
Compilation with xkbcommon \< 1.9.0:
key <> {
type= "FOUR_LEVEL_SEMIALPHABETIC",
[a, A, NoSymbol, NoSymbol]
};
Compilation with xkbcommon ≥ 1.9.0:
key <> {
type= "ALPHABETIC",
[a, A]
};
Trailing `NoSymbol` and `NoAction()` are now dropped. This may affect
keys that rely on an *implicit* key type.
Example:
- Input:
```c
key <> { [a, A, NoSymbol] };
```
- Compilation with xkbcommon \< 1.9.0:
```c
key <> {
type= "FOUR_LEVEL_SEMIALPHABETIC",
[a, A, NoSymbol, NoSymbol]
};
```
- Compilation with xkbcommon ≥ 1.9.0:
```c
key <> {
type= "ALPHABETIC",
[a, A]
};
```