|
79502700
|
2023-11-14T10:10:50
|
|
Doc: fix malformed links and some typos
|
|
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.
|
|
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`.
|
|
ca7aa69c
|
2023-09-26T17:05:05
|
|
Disallow producing NULL character with escape sequences
NULL usually terminates the strings; allowing to produce it via escape
sequences may lead to undefined behaviour.
- Make NULL escape sequences (e.g. `\0` and `\x0`) invalid.
- Add corresponding test.
- Introduce the new message: XKB_WARNING_INVALID_ESCAPE_SEQUENCE.
|
|
a83d745b
|
2023-09-21T20:06:27
|
|
Messages: add new messages to registry
This commit is another step to identify and document the maximum number
of logging messages. Bulk changes:
- Rename `conflicting-key-type` to `conflicting-key-type-merging-groups`.
Giving more context in the name allow us to introduce
`conflicting-key-type-definitions` later.
- Add conflicting-key-type-definitions
- Add conflicting-key-type-map-entry
- Add undeclared-modifiers-in-key-type
Also improve the log messages.
- Add conflicting-key-type-preserve-entries
- Use XKB_ERROR_UNSUPPORTED_MODIFIER_MASK
- Add illegal-key-type-preserve-result
- Add conflicting-key-type-level-names
- Add duplicate-entry
- Add unsupported-symbols-field
- Add missing-symbols-group-name-index
- Use XKB_ERROR_WRONG_FIELD_TYPE
- Add conflicting-key-name
- Use XKB_WARNING_UNDEFINED_KEYCODE
- Add illegal-keycode-alias
- Add unsupported-geometry-section
- Add missing-default-section
- Add XKB_LOG_MESSAGE_NO_ID
- Rename log_vrb_with_code to log_vrb
- Use ERROR_WRONG_FIELD_TYPE & ERROR_INVALID_SYNTAX
- Add unknown-identifier
- Add invalid-expression-type
- Add invalid-operation + fixes
- Add unknown-operator
- Rename ERROR_UNKNOWN_IDENTIFIER to ERROR_INVALID_IDENTIFIER
- Add undeclared-virtual-modifier
- Add expected-array-entry
- Add invalid-include-statement
- Add included-file-not-found
- Add allocation-error
- Add invalid-included-file
- Process symbols.c
- Add invalid-value
- Add invalid-real-modifier
- Add unknown-field
- Add wrong-scope
- Add invalid-modmap-entry
- Add wrong-statement-type
- Add conflicting-key-symbols-entry
- Add invalid-set-default-statement
|
|
eafd3ace
|
2023-09-18T18:17:39
|
|
Add a new warning for numeric keysyms
Usually it is better to use the corresponding human-friendly keysym
names. If there is none, then the keysym is most probably not
supported in the ecosystem. The only use case I see is similar to the
PUA in Unicode (see: https://en.wikipedia.org/wiki/Private_Use_Areas).
I am not aware of examples of this kind of use.
|
|
ef81d04e
|
2023-09-18T18:17:34
|
|
Structured log messages with a message registry
Currently there is little structure in the log messages, making
difficult to use them for the following use cases:
- A user looking for help about a log message: the user probably
uses a search engine, thus the results will depend on the proper
indexing of our documentation and the various forums. It relies
only on the wording of the message, which may change with time.
- A user wants to filter the logs resulting of the use of one of the
components of xkbcommon. A typical example would be testing
xkeyboard-config against libxkbcommon. It requires the use of a
pattern (simple words detection or regex). The issue is that the
pattern may become silently out-of-sync with xkbcommon.
A common practice (e.g. in compilers) is to assign unique error codes
to reference theses messages, along with an error index for
documentation.
Thus this commit implements the following features:
- Create a message registry (message-registry.yaml) that defines the
log messages produced by xkbcommon. This is a simple YAML file that
provides, for each message:
- A unique numeric code as a short identifier. It is used in the
output message and thus can be easily be filtered to spot errors
or searched in the internet. It must not change: if the
semantics of message changes, it is better to introduce a new
message for clarity.
- A unique text identifier, meant for two uses:
1. Generate constants dealing with log information in our code
base.
2. Generate human-friendly names for the documentation.
- A type: currently warning or error. Used to prefix the constants
(see hereinabove) and for basic classification in documentation.
- A short description, used as concise and mandatory documentation.
- An optionnal detailed description.
- Optional examples, intended to help the user to fix issues
themself.
- Version of xkbcommon it was added. For old entries this often
unknown, so they will default to 1.0.0.
- Version of xkbcommon it was removed (optional)
No entry should ever be deleted from this index, even if the message
is not used anymore: it ensures we have unique identifiers along the
history of xkbcommon, and that users can refer to the documentation
even for older versions.
- Add the script update-message-registry.py to generate the following
files:
- messages.h: message code enumeration for the messages currently
used in the code base. Currently a private API.
- message.registry.md: the error index documentation page.
- Modify the logging functions to use structured messages. This is a
work in progress.
|
|
c1b6c79a
|
2023-07-31T22:35:16
|
|
doc: fix some Doxygen warnings
```
libxkbcommon/doc/introduction-to-xkb.md:67: warning: unable to resolve reference to 'rule-file-format' for \ref command
libxkbcommon/doc/introduction-to-xkb.md:181: warning: unable to resolve reference to 'keymap-text-format-v1' for \ref command
libxkbcommon/doc/rules-format.md:10: warning: unable to resolve reference to 'xkb-intro' for \ref command
```
Signed-off-by: Ran Benita <ran@unusedvar.com>
|
|
64aaa7cd
|
2023-05-14T15:11:15
|
|
Add support for stable doc URLs (#342)
Doc URLs may change with time because they depend on Doxygen machinery.
This is unfortunate because it is good practice to keep valid URLs
(see: https://www.w3.org/Provider/Style/URI.html).
I could not find a built-in solution in Doxygen, so the solution proposed
here is to maintain a registry of all URLs and manage legacy URLs as
redirections to their canonical page.
This commit adds a registry of URLs that has three functions:
- Check no previous URL is now invalid.
- Add aliases for moved pages.
- Generate redirection pages for aliases. The redirection works with
a simple <meta http-equiv="refresh"> HTML tag. See:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#http-equiv
This commit also initialize the URLs registry with current pages and some
redirections needed after recent documentation refactoring.
Finally, the CI is updated to catch any change that invalidate previous
URLs.
|
|
fc664cf1
|
2023-05-13T05:30:11
|
|
Improve documentation
- Add introduction to XKB
- Embrace Doxygen features
- More cross links
|
|
e4226011
|
2023-05-04T11:55:51
|
|
Use consistent indentation for map and CSS files
Signed-off-by: Ran Benita <ran@unusedvar.com>
|
|
0e9c2ec9
|
2023-04-30T21:30:36
|
|
Improve the doc of the XKB keymap text format, V1 (#321)
- Add table of contents
- Add terminology section
- (WIP) Add Introduction to the format
- Improve the keycode section
- Improve the interpret section
- Add guide to create and use modifiers
- (WIP) Add actions documentation
- Add cross-references
- Add keysyms header to documentation
|
|
09ac27f7
|
2021-05-22T19:51:02
|
|
ignore: remove no longer relevant gitignore files
These were relevant for the autoconf build but now we're meson only.
Signed-off-by: Ran Benita <ran@unusedvar.com>
|
|
8b603dbe
|
2021-04-10T23:28:06
|
|
doc: fix user-configuration sample file
Support copy-pasting from the docs to get something functional.
Signed-off-by: Jouke Witteveen <j.witteveen@gmail.com>
|
|
83e3a53d
|
2021-02-27T22:38:21
|
|
doc: add keymap-format-text-v1.md to the HTML documentation
It's incomplete but might be helpful for someone.
Signed-off-by: Ran Benita <ran@unusedvar.com>
|
|
44df69c9
|
2020-12-27T09:47:08
|
|
doc/keymap: some slight editing
Signed-off-by: Ran Benita <ran@unusedvar.com>
|
|
7420521f
|
2020-12-27T02:48:39
|
|
doc/keymap: add documentation for xkb_symbols (#205)
|
|
ae90a6a0
|
2020-08-26T15:47:51
|
|
doc: add some disclaimer regarding user-specific key types and compat entries
It's a niche use-case but basically the same as adding symbols, so let's go with
a general handwavy explanation.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
d7b39f6f
|
2020-07-10T08:50:02
|
|
Add /etc/xkb as extra lookup path for system data files
This completes the usual triplet of configuration locations available for most
processes:
- vendor-provided data files in /usr/share/X11/xkb
- system-specific data files in /etc/xkb
- user-specific data files in $XDG_CONFIG_HOME/xkb
The default lookup order user, system, vendor, just like everything else that
uses these conventions.
For include directives in rules files, the '%E' resolves to that path.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
81842f7f
|
2020-07-25T17:18:02
|
|
doc: ignore rxkb, RXBK prefixes in doxygen
Signed-off-by: Ran Benita <ran@unusedvar.com>
|
|
afb26e7d
|
2020-05-12T14:09:50
|
|
Add libxkbregistry to query available RMLVO
This library is the replacement for clients parsing evdev.xml directly.
Instead, they should use the API here so that in the future we may even
be able to swap evdev.xml for a more suitable data format.
The library parses through evdev.xml (using libxml2) and - if requested -
through evdev.extras.xml as well. The merge approach is optimised for
the default case where we have a system-installed rules XML and another file in
$XDG_CONFIG_DIR that adds a few entries. We load the system file first, then
append any custom ones to that. It's not possible to overwrite the MLVO list
provided by the system files - if you want to do that, get the change upstream.
XML validation is handled through the DTD itself which means we only need to
check for a nonempty name, everything else the DTD validation should complain
about.
The logging system is effectively identical to xkbcommon.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
3adbe54e
|
2020-06-23T16:20:08
|
|
tools: move the remaining tools from test to here
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
4e544e27
|
2020-06-16T10:44:48
|
|
doc: correct the include path list
XKB_CONFIG_ROOT (if defined) replaces the built-in system directories.
Fixes 5fb2c6769b7259ba647781bc800d6a46d90cf1a9
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
5fb2c676
|
2020-06-02T16:18:47
|
|
doc: add documentation for user configuration
Most of this is currently hidden in the commit message for ca033a29d2ca, let's
make it a bit more public so we have a link to point users to.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
a2657874
|
2020-06-02T16:11:33
|
|
doc: add the rules-format file (as markdown)
Useful to have this as part of the documentation. The rendering isn't great but
at least not any worse than pure text. Markdown escapes % so explaining our use
of %S and %H would require a double % - not idea. Let's just wrap it as a code
block and done.
Includes two typo fixes too, yay.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
517464eb
|
2020-01-18T23:06:58
|
|
doc/rules-format.txt: document include support
Signed-off-by: Ran Benita <ran@unusedvar.com>
|
|
41bea9ab
|
2017-08-01T22:19:48
|
|
build: make doxygen run from the source tree
I couldn't find any other way to make this work!
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
4983dbcf
|
2017-07-28T18:19:40
|
|
build: change doxygen target to be properly dependency-based
This hackery (thanks libinput) is clearer and more precise than the
previous hackery.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
148aec8b
|
2017-04-29T15:26:38
|
|
doc/compat: correct the XKB protocol version from 1.1 to 1.0
There is no XKB 1.1!
Thanks to Oded Arbel for catching this.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
599fd9ba
|
2016-09-01T21:17:43
|
|
doc/compat: (! MODIFIER) syntax is parsed but ignored
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
c29afcc3
|
2016-09-01T21:13:49
|
|
doc/compat.md: xkbcomp ignores multiple-keysyms these days
https://cgit.freedesktop.org/xorg/app/xkbcomp/commit/?id=e119cbec7e750ffc4d4bd08b577db2c697035a30
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
d58fc90a
|
2016-06-15T17:36:18
|
|
doc: Also mention the wayland test client in the quick guide
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
|
|
094c8dc5
|
2016-06-15T17:36:17
|
|
doc: Declare keymap for wayland example
keymap was defined in the X11 example, but also define it in the wayland
example just to make it a bit more standalone
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
|
|
832e32dc
|
2016-06-15T17:36:16
|
|
doc: Fix ctx type in example
xkb_context_new() returns a xkb_context pointer, so change the variable
definition to be consistent.
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
|
|
a2974d5f
|
2016-03-15T11:20:35
|
|
doc: Fix Doxygen include for srcdir != builddir
Instead of giving Doxygen a series of absolute paths to the source
files and a relative path to the output directory, run it from the
source directory with purely relative paths to the source files, and
give it an absolute path to the build directory.
This fixes the parsing of README.md with a separate build directory,
since the relative includes for doc/quick-guide.md and doc/compat.md
don't resolve otherwise. Doxygen's INCLUDE_PATH turns out not to fix
this either, since that's just a set of paths to open and parse, rather
than an analogue to cpp's -I.
Signed-off-by: Daniel Stone <daniels@collabora.com>
|
|
4aa50c9d
|
2016-01-20T22:48:10
|
|
doc: some notes about key names and aliases
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
7f3bb167
|
2015-11-23T00:07:15
|
|
doc/keymap-format-text-v1: add title and intro
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
cf337875
|
2015-11-21T23:17:55
|
|
doc/quick-guide: small improvements
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
42664023
|
2015-11-21T23:12:18
|
|
doc/keymap-format-text-v1: convert to markdown
Make it more readable for random browsing.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
88919535
|
2015-11-21T22:39:38
|
|
doc/keymap-format-text-v1: update info on preserve
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
7bb425c1
|
2015-09-08T09:22:20
|
|
doc/Doxyfile: explicitly set HTML_TIMESTAMP = NO
YES was the default in older version. Having a timestamp hurts
reproducible builds, and serves no purpose, so remove it.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=789071
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
7a15c0ef
|
2015-09-08T09:21:32
|
|
doc/Doxyfile: only keep non-default values
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
8c0d6c79
|
2015-09-08T09:17:16
|
|
doc/Doxyfile: sync with latest version
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
aa41d883
|
2014-10-18T16:03:41
|
|
doc/compat.md: add compose incompatibilities
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
0419f6e7
|
2014-10-18T14:50:49
|
|
docs: make html output have a fixed width, hide footer
It's hard to read text which stretches indefinitely.
The footer is not adding much.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
49dc91ce
|
2014-10-18T14:12:14
|
|
doc/quick-guide: some improvements
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
ab9cb11c
|
2014-10-18T13:53:25
|
|
doc/compat.md: we don't support more groups or mods yet
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
494a8fbf
|
2014-10-18T13:50:54
|
|
README: move compatibility notes to their own page
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
046c802e
|
2014-09-12T18:43:58
|
|
compose: add xkbcommon-compose - API
xkbcommon-compose is a Compose implementation for xkbcommon. It mostly
behaves like libX11's Compose, but the support is somewhat low-level and
is not transparent like in libX11. The user must add some supporting code
in order to utilize it.
The intended audience are users who use xkbcommon but not a full-blown
input method. With this they can add Compose support in a straightforward
manner, so they have a fairly complete keyboard input for Latin-like
languages at least.
See the header documentation for details.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
9c088df3
|
2014-09-22T15:45:26
|
|
doc: disable alphabetical data structure index
It is useless - we have very little data structures.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
805ed4e7
|
2014-09-22T15:31:51
|
|
doc: disable BRIEF_MEMBER_DESC
It's easier to quickly go through the functions in a module this way.
The names provide enough "brief description" to get someone to click for
the full description.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
08d05799
|
2014-09-22T15:27:13
|
|
doc: disable tree view
It is redundant with the header navigation.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
f0cd7abc
|
2014-09-21T00:59:11
|
|
quick-guide: fix xkb_state_key_get_syms() example
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
51ae4a17
|
2014-09-21T00:56:33
|
|
quick-guide: fix Java-esque array syntax
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
0aeb1095
|
2014-09-18T21:09:41
|
|
doc: order the modules better
Explicitly specify the files in INPUT so that "X11 Support" appears
after the main modules.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
770f3e4b
|
2014-04-25T01:21:09
|
|
doc: fix new doxygen version warnings
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
240fa418
|
2014-03-27T20:58:16
|
|
build: trim down generated doxygen docs
Remove the huge verbatim copies of the header files.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
806dbeac
|
2014-03-23T15:04:51
|
|
Reformat README markdown
So that github displays it as markdown, and correctly.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
aa3e8236
|
2014-03-23T14:32:12
|
|
doc: add a quick guide to the library
This is a nice intro to the documentation, and also preferably gently
pushes users to the "proper way" of using the library, which can be
confusing.
See also: http://fooishbar.org/tell-me-about/xkbcommon-intro/
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
3923aa71
|
2014-02-09T11:27:34
|
|
doc: move some file comments into txt files in doc/
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
6f06eb59
|
2013-06-19T21:13:52
|
|
doc: Update Doxyfile
It gives:
Warning: Tag `SYMBOL_CACHE_SIZE' at line 346 of file doc/Doxyfile has become obsolete.
To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
So run 'doxygen -u' as suggested.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
e8c0396f
|
2013-03-05T13:16:30
|
|
doc: use README as doxygen main page overview
The doxygen page looked a bit dead, the README fills it nicely, and is
already written in the markdown format which doxygen uses (I think?).
Unfortunately the USE_MDFILE_AS_MAINPAGE doxygen config doesn't seem to
do anything.. So we just add a {#mainpage} tag at the top of the README
which isn't so bad. BUT we still need some config option (the
no_extension=md part) so that doxygen will accept README instead of
README.md or somesuch. And that requires an even newer release, 1.8.3.1,
released 2013-01. But if an older version is used, it doesn't spew out
warnings but just skips the README, which is fine.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
40e5de9a
|
2013-03-05T12:01:48
|
|
doc: update Doxyfile template to one from newer version
We want to use the USE_MDFILE_AS_MAINPAGE option which was introduced in
doxygen 1.8.3 (released 2012-12).
Right now the new options are commented, otherwise older doxygen spews
these these warnings, which can be ignored:
warning: ignoring unsupported tag `USE_MDFILE_AS_MAINPAGE =' at line 794, file doc/Doxyfile
warning: ignoring unsupported tag `MATHJAX_FORMAT =' at line 1210, file doc/Doxyfile
warning: ignoring unsupported tag `EXTERNAL_SEARCH =' at line 1257, file doc/Doxyfile
warning: ignoring unsupported tag `SEARCHENGINE_URL =' at line 1265, file doc/Doxyfile
warning: ignoring unsupported tag `SEARCHDATA_FILE =' at line 1271, file doc/Doxyfile
warning: ignoring unsupported tag `EXTERNAL_SEARCH_ID =' at line 1278, file doc/Doxyfile
warning: ignoring unsupported tag `EXTRA_SEARCH_MAPPINGS =' at line 1287, file doc/Doxyfile
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
bde066b9
|
2012-10-11T18:13:56
|
|
doc: use JAVADOC_AUTOBRIEF
Don't have to type @brief all the time.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
108fa1c7
|
2012-09-22T15:02:54
|
|
Add support for building doxygen API documentation
Simple HTML docs generated from the doxygen comments.
After running 'make' or 'make doc', try firefox doc/html/index.html to
see it (if you have doxygen). It's also installed with 'make install'.
You can use --enable-docs or --disable-docs, or specifically
--with-doxygen or --without-doxygen (autodetected, default yes).
The docs are currently not distributed in the tarball, because I
couldn't make it work properly in all cases :/
Signed-off-by: Ran Benita <ran234@gmail.com>
|