Disallow producing NULL character with escape sequences
[platform/upstream/libxkbcommon.git] / doc / message-registry.md
1 # Error index {#error-index}
2
3 <!--
4 NOTE: This file has been generated automatically by “update-message-registry.py”.
5       Do not edit manually!
6 -->
7
8 This page lists the warnings and errors generated by xkbcommon.
9 There are currently 53 entries.
10
11 @todo The documentation of the log messages is a work in progress.
12
13 ## Index
14
15 | Code      | Identifier                   | Description | Type |
16 | --------- | ---------------------------- | ----------- | ---- |
17 | [XKB-034] | `malformed-number-literal` | Warn on malformed number literals | Error |
18 | [XKB-043] | `conflicting-key-type-preserve-entries` | Conflicting “preserve” entries in a key type | Warning |
19 | [XKB-060] | `unsupported-modifier-mask` | Warn on unsupported modifier mask | Error |
20 | [XKB-077] | `expected-array-entry` | Expected an array entry, but the index is missing | Error |
21 | [XKB-101] | `illegal-keycode-alias` | Illegal keycode alias with the name of a real key | Warning |
22 | [XKB-107] | `unrecognized-keysym` | Warn on unrecognized keysyms | Warning |
23 | [XKB-123] | `undeclared-virtual-modifier` | A virtual modifier is used before being declared | Error |
24 | [XKB-150] | `wrong-statement-type` | The type of the statement is not allowed in the context | Error |
25 | [XKB-172] | `unsupported-geometry-section` | Geometry sections are not supported | Warning |
26 | [XKB-183] | `cannot-infer-key-type` | Warn if no key type can be inferred | Warning |
27 | [XKB-193] | `invalid-escape-sequence` | Invalid escape sequence in a string | Warning |
28 | [XKB-195] | `illegal-key-type-preserve-result` | The result of a key type “preserve” entry must be a subset of its input modifiers. | Warning |
29 | [XKB-203] | `invalid-include-statement` | Syntax error in the include statement | Error |
30 | [XKB-206] | `invalid-modmap-entry` | A modmap entry is invalid | Error |
31 | [XKB-237] | `unsupported-group-index` | Warn when a group index is not supported | Error |
32 | [XKB-239] | `conflicting-key-type-level-names` | The name of a key type level is defined multiple times. | Warning |
33 | [XKB-254] | `invalid-set-default-statement` | Invalid statement setting default values | Error |
34 | [XKB-266] | `conflicting-key-type-map-entry` | Conflicting “map” entries in type definition | Warning |
35 | [XKB-286] | `undefined-key-type` | Warn if using an undefined key type | Warning |
36 | [XKB-305] | `non-base-group-name` | Warn if a group name was defined for group other than the first one | Warning |
37 | [XKB-312] | `unsupported-shift-level` | Warn when a shift level is not supported | Error |
38 | [XKB-338] | `included-file-not-found` | Could not find a file used in an include statement | Error |
39 | [XKB-345] | `unknown-operator` | Use of an operator that is unknown and thus unsupported | Error |
40 | [XKB-378] | `duplicate-entry` | An entry is duplicated and will be ignored | Warning |
41 | [XKB-407] | `conflicting-key-type-definitions` | Conflicting definitions of a key type | Warning |
42 | [XKB-428] | `wrong-scope` | A statement is in a wrong scope and should be moved | Error |
43 | [XKB-433] | `missing-default-section` | Missing default section in included file | Warning |
44 | [XKB-461] | `conflicting-key-symbol` | Warn if there are conflicting keysyms while merging keys | Warning |
45 | [XKB-478] | `invalid-operation` | The operation is invalid in the context | Error |
46 | [XKB-489] | `numeric-keysym` | Warn on numeric keysym (other than 0-9) | Warning |
47 | [XKB-516] | `extra-symbols-ignored` | <span class="todo">TODO:</span> add description | Warning |
48 | [XKB-523] | `conflicting-key-name` | Conflicting definitions of a key name or alias | Warning |
49 | [XKB-550] | `allocation-error` | Cannot allocate memory | Error |
50 | [XKB-578] | `wrong-field-type` | Warn when a field has not the expected type | Error |
51 | [XKB-623] | `invalid-real-modifier` | Invalid _real_ modifier | Error |
52 | [XKB-645] | `unknown-char-escape-sequence` | Warn on unknown escape sequence in string literal | Warning |
53 | [XKB-661] | `invalid-included-file` | The target file of an include statement could not be processed | Error |
54 | [XKB-700] | `multiple-groups-at-once` | Warn if a key defines multiple groups at once | Warning |
55 | [XKB-711] | `unsupported-symbols-field` | A legacy X11 symbol field is not supported | Warning |
56 | [XKB-769] | `invalid-syntax` | The syntax is invalid and the file cannot be parsed | Error |
57 | [XKB-770] | `undefined-keycode` | Reference to an undefined keycode | Warning |
58 | [XKB-784] | `invalid-expression-type` | An expression has not the expected type | Error |
59 | [XKB-796] | `invalid-value` | A value is invalid and will be ignored | Error |
60 | [XKB-800] | `conflicting-modmap` | Warn if there are conflicting modmap definitions | Warning |
61 | [XKB-812] | `unknown-field` | A field is unknown and will be ignored | Error |
62 | [XKB-883] | `conflicting-key-action` | Warn if there are conflicting actions while merging keys | Warning |
63 | [XKB-893] | `conflicting-key-type-merging-groups` | Warn if there are conflicting key types while merging groups | Warning |
64 | [XKB-901] | `conflicting-key-symbols-entry` | Conflicting symbols entry for a key | Error |
65 | [XKB-903] | `missing-symbols-group-name-index` | Missing group index in a group name entry | Warning |
66 | [XKB-935] | `conflicting-key-fields` | Warn if there are conflicting fields while merging keys | Warning |
67 | [XKB-949] | `invalid-identifier` | An identifier is used but is not built-in | Error |
68 | [XKB-965] | `unresolved-keymap-symbol` | Warn if using a symbol not defined in the keymap | Warning |
69 | [XKB-971] | `undeclared-modifiers-in-key-type` | Some modifiers used in a key type “map” or “preserve” entry are not declared | Warning |
70
71 ## Details
72
73 ### XKB-034 – Malformed number literal {#XKB-034}
74
75 <dl>
76   <dt>Since</dt><dd>1.0.0</dd>
77   <dt>Type</dt><dd>Error</dd>
78   <dt>Summary</dt><dd>Warn on malformed number literals</dd>
79 </dl>
80
81 xkbcommon can parse the following number literal formats:
82
83 - *decimal integer:* 1, 123, etc.
84 - *decimal floating-point number:* 1.23, etc.
85 - *hexadecimal integer:* prefixed with “0x”: 0x123, 0xff, 0xAB, etc.
86
87
88 ### XKB-043 – Conflicting key type preserve entries {#XKB-043}
89
90 <dl>
91   <dt>Since</dt><dd>1.0.0</dd>
92   <dt>Type</dt><dd>Warning</dd>
93   <dt>Summary</dt><dd>Conflicting “preserve” entries in a key type</dd>
94 </dl>
95
96 ### XKB-060 – Unsupported modifier mask {#XKB-060}
97
98 <dl>
99   <dt>Since</dt><dd>1.0.0</dd>
100   <dt>Type</dt><dd>Error</dd>
101   <dt>Summary</dt><dd>Warn on unsupported modifier mask</dd>
102 </dl>
103
104 ### XKB-077 – Expected array entry {#XKB-077}
105
106 <dl>
107   <dt>Since</dt><dd>1.0.0</dd>
108   <dt>Type</dt><dd>Error</dd>
109   <dt>Summary</dt><dd>Expected an array entry, but the index is missing</dd>
110 </dl>
111
112 ### XKB-101 – Illegal keycode alias {#XKB-101}
113
114 <dl>
115   <dt>Since</dt><dd>1.0.0</dd>
116   <dt>Type</dt><dd>Warning</dd>
117   <dt>Summary</dt><dd>Illegal keycode alias with the name of a real key</dd>
118 </dl>
119
120 ### XKB-107 – Unrecognized keysym {#XKB-107}
121
122 <dl>
123   <dt>Since</dt><dd>1.0.0</dd>
124   <dt>Type</dt><dd>Warning</dd>
125   <dt>Summary</dt><dd>Warn on unrecognized keysyms</dd>
126 </dl>
127
128 xkbcommon replaces keysyms it does not recognize by the keysym `NoSymbol`.
129
130 You may find the list of supported keysyms in
131 `include/xkbcommon/xkbcommon-keysyms.h`.
132
133
134 #### Examples
135
136 <details>
137   <summary>Unrecognized keysym “`coma`”</summary>
138
139 **Error message:**
140
141 ```
142 xkbcommon: WARNING: [XKB-107] de:31:20: unrecognized keysym "coma"
143 ```
144
145 xkbcommon does not recognize the keysym “`coma`”. It is most probably
146 a typo for “<code>com<em>m</em>a</code>”.
147 See: `XKB_KEY_comma` in `include/xkbcommon/xkbcommon-keysyms.h`.
148
149 **Fix:**
150   <div class="example-container">
151     <div class="example">
152       <div class="example-inner">
153         <div class="example-title">Before</div>
154 ```c
155 key <AB08> {[ coma, semicolon, periodcentered, multiply ]};
156 ```
157 </div>
158     </div>
159     <div class="example">
160       <div class="example-inner">
161         <div class="example-title">After</div>
162 ```c
163 key <AB08> {[ comma, semicolon, periodcentered, multiply ]};
164 ```
165 </div>
166     </div>
167   </div>
168 </details>
169
170 ### XKB-123 – Undeclared virtual modifier {#XKB-123}
171
172 <dl>
173   <dt>Since</dt><dd>1.0.0</dd>
174   <dt>Type</dt><dd>Error</dd>
175   <dt>Summary</dt><dd>A virtual modifier is used before being declared</dd>
176 </dl>
177
178 ### XKB-150 – Wrong statement type {#XKB-150}
179
180 <dl>
181   <dt>Since</dt><dd>1.0.0</dd>
182   <dt>Type</dt><dd>Error</dd>
183   <dt>Summary</dt><dd>The type of the statement is not allowed in the context</dd>
184 </dl>
185
186 ### XKB-172 – Unsupported geometry section {#XKB-172}
187
188 <dl>
189   <dt>Since</dt><dd>1.0.0</dd>
190   <dt>Type</dt><dd>Warning</dd>
191   <dt>Summary</dt><dd>Geometry sections are not supported</dd>
192 </dl>
193
194 ### XKB-183 – Cannot infer key type {#XKB-183}
195
196 <dl>
197   <dt>Since</dt><dd>1.0.0</dd>
198   <dt>Type</dt><dd>Warning</dd>
199   <dt>Summary</dt><dd>Warn if no key type can be inferred</dd>
200 </dl>
201
202 ### XKB-193 – Invalid escape sequence {#XKB-193}
203
204 <dl>
205   <dt>Since</dt><dd>1.0.0</dd>
206   <dt>Type</dt><dd>Warning</dd>
207   <dt>Summary</dt><dd>Invalid escape sequence in a string</dd>
208 </dl>
209
210 ### XKB-195 – Illegal key type preserve result {#XKB-195}
211
212 <dl>
213   <dt>Since</dt><dd>1.0.0</dd>
214   <dt>Type</dt><dd>Warning</dd>
215   <dt>Summary</dt><dd>The result of a key type “preserve” entry must be a subset of its input modifiers.</dd>
216 </dl>
217
218 ### XKB-203 – Invalid include statement {#XKB-203}
219
220 <dl>
221   <dt>Since</dt><dd>1.0.0</dd>
222   <dt>Type</dt><dd>Error</dd>
223   <dt>Summary</dt><dd>Syntax error in the include statement</dd>
224 </dl>
225
226 ### XKB-206 – Invalid modmap entry {#XKB-206}
227
228 <dl>
229   <dt>Since</dt><dd>1.0.0</dd>
230   <dt>Type</dt><dd>Error</dd>
231   <dt>Summary</dt><dd>A modmap entry is invalid</dd>
232 </dl>
233
234 ### XKB-237 – Unsupported group index {#XKB-237}
235
236 <dl>
237   <dt>Since</dt><dd>1.0.0</dd>
238   <dt>Type</dt><dd>Error</dd>
239   <dt>Summary</dt><dd>Warn when a group index is not supported</dd>
240 </dl>
241
242 xkbcommon supports group index in the range (1..4).
243
244
245 ### XKB-239 – Conflicting key type level names {#XKB-239}
246
247 <dl>
248   <dt>Since</dt><dd>1.0.0</dd>
249   <dt>Type</dt><dd>Warning</dd>
250   <dt>Summary</dt><dd>The name of a key type level is defined multiple times.</dd>
251 </dl>
252
253 ### XKB-254 – Invalid set default statement {#XKB-254}
254
255 <dl>
256   <dt>Since</dt><dd>1.0.0</dd>
257   <dt>Type</dt><dd>Error</dd>
258   <dt>Summary</dt><dd>Invalid statement setting default values</dd>
259 </dl>
260
261 ### XKB-266 – Conflicting key type map entry {#XKB-266}
262
263 <dl>
264   <dt>Since</dt><dd>1.0.0</dd>
265   <dt>Type</dt><dd>Warning</dd>
266   <dt>Summary</dt><dd>Conflicting “map” entries in type definition</dd>
267 </dl>
268
269 ### XKB-286 – Undefined key type {#XKB-286}
270
271 <dl>
272   <dt>Since</dt><dd>1.0.0</dd>
273   <dt>Type</dt><dd>Warning</dd>
274   <dt>Summary</dt><dd>Warn if using an undefined key type</dd>
275 </dl>
276
277 ### XKB-305 – Non base group name {#XKB-305}
278
279 <dl>
280   <dt>Since</dt><dd>1.0.0</dd>
281   <dt>Type</dt><dd>Warning</dd>
282   <dt>Summary</dt><dd>Warn if a group name was defined for group other than the first one</dd>
283 </dl>
284
285 ### XKB-312 – Unsupported shift level {#XKB-312}
286
287 <dl>
288   <dt>Since</dt><dd>1.0.0</dd>
289   <dt>Type</dt><dd>Error</dd>
290   <dt>Summary</dt><dd>Warn when a shift level is not supported</dd>
291 </dl>
292
293 Shift levels are _one_-indexed. xkbcommon supports two formats of shift levels:
294 as numbers and as identifiers `LevelN`, where `N` is in the range (1..8).
295
296
297 ### XKB-338 – Included file not found {#XKB-338}
298
299 <dl>
300   <dt>Since</dt><dd>1.0.0</dd>
301   <dt>Type</dt><dd>Error</dd>
302   <dt>Summary</dt><dd>Could not find a file used in an include statement</dd>
303 </dl>
304
305 ### XKB-345 – Unknown operator {#XKB-345}
306
307 <dl>
308   <dt>Since</dt><dd>1.0.0</dd>
309   <dt>Type</dt><dd>Error</dd>
310   <dt>Summary</dt><dd>Use of an operator that is unknown and thus unsupported</dd>
311 </dl>
312
313 ### XKB-378 – Duplicate entry {#XKB-378}
314
315 <dl>
316   <dt>Since</dt><dd>1.0.0</dd>
317   <dt>Type</dt><dd>Warning</dd>
318   <dt>Summary</dt><dd>An entry is duplicated and will be ignored</dd>
319 </dl>
320
321 ### XKB-407 – Conflicting key type definitions {#XKB-407}
322
323 <dl>
324   <dt>Since</dt><dd>1.0.0</dd>
325   <dt>Type</dt><dd>Warning</dd>
326   <dt>Summary</dt><dd>Conflicting definitions of a key type</dd>
327 </dl>
328
329 The given key type is defined multiple times, but only one definition is kept.
330
331
332 ### XKB-428 – Wrong scope {#XKB-428}
333
334 <dl>
335   <dt>Since</dt><dd>1.0.0</dd>
336   <dt>Type</dt><dd>Error</dd>
337   <dt>Summary</dt><dd>A statement is in a wrong scope and should be moved</dd>
338 </dl>
339
340 ### XKB-433 – Missing default section {#XKB-433}
341
342 <dl>
343   <dt>Since</dt><dd>1.0.0</dd>
344   <dt>Type</dt><dd>Warning</dd>
345   <dt>Summary</dt><dd>Missing default section in included file</dd>
346 </dl>
347
348 When using an include statement, the included file may contains multiple sections.
349 The include statement may specify the name of the section to include, or leave it
350 unspecified. In the latter case, the included file must then define a *default* section.
351 The present warning is shown when no default section is defined.
352
353 To solve this, either fix the include statement by specifying the exact section to
354 include, or declare a default section in the included file.
355
356
357 ### XKB-461 – Conflicting key symbol {#XKB-461}
358
359 <dl>
360   <dt>Since</dt><dd>1.0.0</dd>
361   <dt>Type</dt><dd>Warning</dd>
362   <dt>Summary</dt><dd>Warn if there are conflicting keysyms while merging keys</dd>
363 </dl>
364
365 ### XKB-478 – Invalid operation {#XKB-478}
366
367 <dl>
368   <dt>Since</dt><dd>1.0.0</dd>
369   <dt>Type</dt><dd>Error</dd>
370   <dt>Summary</dt><dd>The operation is invalid in the context</dd>
371 </dl>
372
373 ### XKB-489 – Numeric keysym {#XKB-489}
374
375 <dl>
376   <dt>Since</dt><dd>1.6.0</dd>
377   <dt>Type</dt><dd>Warning</dd>
378   <dt>Summary</dt><dd>Warn on numeric keysym (other than 0-9)</dd>
379 </dl>
380
381 Numeric keysyms are not human-friendly. Use the corresponding named keysym
382 or Unicode keysym, if available.
383
384
385 #### Examples
386
387 <details>
388   <summary>Hexadecimal keysym `0x1001ed0`</summary>
389
390 **Error message:**
391
392 ```
393 xkbcommon: WARNING: [XKB-489] numeric keysym "0x1001ed0"
394 ```
395
396 **Fix:**
397   <div class="example-container">
398     <div class="example">
399       <div class="example-inner">
400         <div class="example-title">Before</div>
401 ```c
402 key <AE01> { [ 0x1001ed0] };
403 ```
404 </div>
405     </div>
406     <div class="example">
407       <div class="example-inner">
408         <div class="example-title">After</div>
409 ```c
410 // Preferred form: human-friendly
411 key <AE01> { [ Ocircumflexacute ] };
412 // or
413 key <AE01> { [ U1ED0 ] };
414 ```
415 </div>
416     </div>
417   </div>
418 </details>
419
420 ### XKB-516 – Extra symbols ignored {#XKB-516}
421
422 <dl>
423   <dt>Since</dt><dd>1.0.0</dd>
424   <dt>Type</dt><dd>Warning</dd>
425   <dt>Summary</dt><dd><span class="todo">TODO:</span> add description</dd>
426 </dl>
427
428 ### XKB-523 – Conflicting key name {#XKB-523}
429
430 <dl>
431   <dt>Since</dt><dd>1.0.0</dd>
432   <dt>Type</dt><dd>Warning</dd>
433   <dt>Summary</dt><dd>Conflicting definitions of a key name or alias</dd>
434 </dl>
435
436 ### XKB-550 – Allocation error {#XKB-550}
437
438 <dl>
439   <dt>Since</dt><dd>1.0.0</dd>
440   <dt>Type</dt><dd>Error</dd>
441   <dt>Summary</dt><dd>Cannot allocate memory</dd>
442 </dl>
443
444 ### XKB-578 – Wrong field type {#XKB-578}
445
446 <dl>
447   <dt>Since</dt><dd>1.0.0</dd>
448   <dt>Type</dt><dd>Error</dd>
449   <dt>Summary</dt><dd>Warn when a field has not the expected type</dd>
450 </dl>
451
452 ### XKB-623 – Invalid real modifier {#XKB-623}
453
454 <dl>
455   <dt>Since</dt><dd>1.0.0</dd>
456   <dt>Type</dt><dd>Error</dd>
457   <dt>Summary</dt><dd>Invalid _real_ modifier</dd>
458 </dl>
459
460 ### XKB-645 – Unknown char escape sequence {#XKB-645}
461
462 <dl>
463   <dt>Since</dt><dd>1.0.0</dd>
464   <dt>Type</dt><dd>Warning</dd>
465   <dt>Summary</dt><dd>Warn on unknown escape sequence in string literal</dd>
466 </dl>
467
468 xkbcommon support the following escape sequences in string literals:
469
470 | Escape sequence | Corresponding character             |
471 | --------------- | ----------------------------------- |
472 | `\b`            | `U+0008` Backspace                  |
473 | `\t`            | `U+0009` Character tabulation       |
474 | `\n`            | `U+000A` Line feed                  |
475 | `\v`            | `U+000B` Vertical tabulation        |
476 | `\f`            | `U+000C` Form feed                  |
477 | `\r`            | `U+000D` Carriage return            |
478 | `\e`            | `U+001B` Escape                     |
479 | `\\`            | `U+005C` Backslash                  |
480 | `\NNN`          | _Octal_ escape, from `\0` to `\777` |
481
482
483 ### XKB-661 – Invalid included file {#XKB-661}
484
485 <dl>
486   <dt>Since</dt><dd>1.0.0</dd>
487   <dt>Type</dt><dd>Error</dd>
488   <dt>Summary</dt><dd>The target file of an include statement could not be processed</dd>
489 </dl>
490
491 ### XKB-700 – Multiple groups at once {#XKB-700}
492
493 <dl>
494   <dt>Since</dt><dd>1.0.0</dd>
495   <dt>Type</dt><dd>Warning</dd>
496   <dt>Summary</dt><dd>Warn if a key defines multiple groups at once</dd>
497 </dl>
498
499 ### XKB-711 – Unsupported symbols field {#XKB-711}
500
501 <dl>
502   <dt>Since</dt><dd>1.0.0</dd>
503   <dt>Type</dt><dd>Warning</dd>
504   <dt>Summary</dt><dd>A legacy X11 symbol field is not supported</dd>
505 </dl>
506
507 ### XKB-769 – Invalid syntax {#XKB-769}
508
509 <dl>
510   <dt>Since</dt><dd>1.0.0</dd>
511   <dt>Type</dt><dd>Error</dd>
512   <dt>Summary</dt><dd>The syntax is invalid and the file cannot be parsed</dd>
513 </dl>
514
515 ### XKB-770 – Undefined keycode {#XKB-770}
516
517 <dl>
518   <dt>Since</dt><dd>1.0.0</dd>
519   <dt>Type</dt><dd>Warning</dd>
520   <dt>Summary</dt><dd>Reference to an undefined keycode</dd>
521 </dl>
522
523 ### XKB-784 – Invalid expression type {#XKB-784}
524
525 <dl>
526   <dt>Since</dt><dd>1.0.0</dd>
527   <dt>Type</dt><dd>Error</dd>
528   <dt>Summary</dt><dd>An expression has not the expected type</dd>
529 </dl>
530
531 ### XKB-796 – Invalid value {#XKB-796}
532
533 <dl>
534   <dt>Since</dt><dd>1.0.0</dd>
535   <dt>Type</dt><dd>Error</dd>
536   <dt>Summary</dt><dd>A value is invalid and will be ignored</dd>
537 </dl>
538
539 ### XKB-800 – Conflicting modmap {#XKB-800}
540
541 <dl>
542   <dt>Since</dt><dd>1.0.0</dd>
543   <dt>Type</dt><dd>Warning</dd>
544   <dt>Summary</dt><dd>Warn if there are conflicting modmap definitions</dd>
545 </dl>
546
547 @todo detailed explanation and examples
548
549
550 ### XKB-812 – Unknown field {#XKB-812}
551
552 <dl>
553   <dt>Since</dt><dd>1.0.0</dd>
554   <dt>Type</dt><dd>Error</dd>
555   <dt>Summary</dt><dd>A field is unknown and will be ignored</dd>
556 </dl>
557
558 ### XKB-883 – Conflicting key action {#XKB-883}
559
560 <dl>
561   <dt>Since</dt><dd>1.0.0</dd>
562   <dt>Type</dt><dd>Warning</dd>
563   <dt>Summary</dt><dd>Warn if there are conflicting actions while merging keys</dd>
564 </dl>
565
566 ### XKB-893 – Conflicting key type merging groups {#XKB-893}
567
568 <dl>
569   <dt>Since</dt><dd>1.0.0</dd>
570   <dt>Type</dt><dd>Warning</dd>
571   <dt>Summary</dt><dd>Warn if there are conflicting key types while merging groups</dd>
572 </dl>
573
574 ### XKB-901 – Conflicting key symbols entry {#XKB-901}
575
576 <dl>
577   <dt>Since</dt><dd>1.0.0</dd>
578   <dt>Type</dt><dd>Error</dd>
579   <dt>Summary</dt><dd>Conflicting symbols entry for a key</dd>
580 </dl>
581
582 ### XKB-903 – Missing symbols group name index {#XKB-903}
583
584 <dl>
585   <dt>Since</dt><dd>1.0.0</dd>
586   <dt>Type</dt><dd>Warning</dd>
587   <dt>Summary</dt><dd>Missing group index in a group name entry</dd>
588 </dl>
589
590 ### XKB-935 – Conflicting key fields {#XKB-935}
591
592 <dl>
593   <dt>Since</dt><dd>1.0.0</dd>
594   <dt>Type</dt><dd>Warning</dd>
595   <dt>Summary</dt><dd>Warn if there are conflicting fields while merging keys</dd>
596 </dl>
597
598 ### XKB-949 – Invalid identifier {#XKB-949}
599
600 <dl>
601   <dt>Since</dt><dd>1.0.0</dd>
602   <dt>Type</dt><dd>Error</dd>
603   <dt>Summary</dt><dd>An identifier is used but is not built-in</dd>
604 </dl>
605
606 ### XKB-965 – Unresolved keymap symbol {#XKB-965}
607
608 <dl>
609   <dt>Since</dt><dd>1.0.0</dd>
610   <dt>Type</dt><dd>Warning</dd>
611   <dt>Summary</dt><dd>Warn if using a symbol not defined in the keymap</dd>
612 </dl>
613
614 ### XKB-971 – Undeclared modifiers in key type {#XKB-971}
615
616 <dl>
617   <dt>Since</dt><dd>1.0.0</dd>
618   <dt>Type</dt><dd>Warning</dd>
619   <dt>Summary</dt><dd>Some modifiers used in a key type “map” or “preserve” entry are not declared</dd>
620 </dl>
621
622 The modifiers used in `map` or `preserve` entries should be declared using the entry
623 `modifiers` in the key type.
624
625
626 [XKB-034]: @ref XKB-034
627 [XKB-043]: @ref XKB-043
628 [XKB-060]: @ref XKB-060
629 [XKB-077]: @ref XKB-077
630 [XKB-101]: @ref XKB-101
631 [XKB-107]: @ref XKB-107
632 [XKB-123]: @ref XKB-123
633 [XKB-150]: @ref XKB-150
634 [XKB-172]: @ref XKB-172
635 [XKB-183]: @ref XKB-183
636 [XKB-193]: @ref XKB-193
637 [XKB-195]: @ref XKB-195
638 [XKB-203]: @ref XKB-203
639 [XKB-206]: @ref XKB-206
640 [XKB-237]: @ref XKB-237
641 [XKB-239]: @ref XKB-239
642 [XKB-254]: @ref XKB-254
643 [XKB-266]: @ref XKB-266
644 [XKB-286]: @ref XKB-286
645 [XKB-305]: @ref XKB-305
646 [XKB-312]: @ref XKB-312
647 [XKB-338]: @ref XKB-338
648 [XKB-345]: @ref XKB-345
649 [XKB-378]: @ref XKB-378
650 [XKB-407]: @ref XKB-407
651 [XKB-428]: @ref XKB-428
652 [XKB-433]: @ref XKB-433
653 [XKB-461]: @ref XKB-461
654 [XKB-478]: @ref XKB-478
655 [XKB-489]: @ref XKB-489
656 [XKB-516]: @ref XKB-516
657 [XKB-523]: @ref XKB-523
658 [XKB-550]: @ref XKB-550
659 [XKB-578]: @ref XKB-578
660 [XKB-623]: @ref XKB-623
661 [XKB-645]: @ref XKB-645
662 [XKB-661]: @ref XKB-661
663 [XKB-700]: @ref XKB-700
664 [XKB-711]: @ref XKB-711
665 [XKB-769]: @ref XKB-769
666 [XKB-770]: @ref XKB-770
667 [XKB-784]: @ref XKB-784
668 [XKB-796]: @ref XKB-796
669 [XKB-800]: @ref XKB-800
670 [XKB-812]: @ref XKB-812
671 [XKB-883]: @ref XKB-883
672 [XKB-893]: @ref XKB-893
673 [XKB-901]: @ref XKB-901
674 [XKB-903]: @ref XKB-903
675 [XKB-935]: @ref XKB-935
676 [XKB-949]: @ref XKB-949
677 [XKB-965]: @ref XKB-965
678 [XKB-971]: @ref XKB-971