mirror of
https://gitlab.freedesktop.org/libinput/libei.git
synced 2026-05-09 07:28:25 +02:00
parent
6ea468c823
commit
a924888f0f
1 changed files with 8 additions and 6 deletions
|
|
@ -55,7 +55,7 @@
|
|||
|
||||
#include "src/util-macros.h"
|
||||
#include "src/util-mem.h"
|
||||
#include "src/util-memfile.h"
|
||||
#include "src/util-memmap.h"
|
||||
#include "src/util-color.h"
|
||||
#include "src/util-strings.h"
|
||||
#include "src/util-time.h"
|
||||
|
|
@ -84,6 +84,7 @@ colorprint(const char *format, ...)
|
|||
DEFINE_UNREF_CLEANUP_FUNC(xkb_context);
|
||||
DEFINE_UNREF_CLEANUP_FUNC(xkb_keymap);
|
||||
DEFINE_UNREF_CLEANUP_FUNC(xkb_state);
|
||||
DEFINE_UNREF_CLEANUP_FUNC(memmap);
|
||||
#endif
|
||||
|
||||
static void
|
||||
|
|
@ -97,12 +98,13 @@ setup_xkb_keymap(struct ei_keymap *keymap)
|
|||
if (!ctx)
|
||||
return;
|
||||
|
||||
size_t sz = ei_keymap_get_size(keymap);
|
||||
_cleanup_free_ char *buf = xalloc(sz + 1);
|
||||
read(ei_keymap_get_fd(keymap), buf, sz);
|
||||
buf[sz] = '\0';
|
||||
_unref_(memmap) *memmap = memmap_new(ei_keymap_get_fd(keymap), ei_keymap_get_size(keymap));
|
||||
if (!memmap) {
|
||||
colorprint("Failed to mmap XKB keymap: %m\n");
|
||||
return;
|
||||
}
|
||||
|
||||
_unref_(xkb_keymap) *xkbmap = xkb_keymap_new_from_string(ctx, buf,
|
||||
_unref_(xkb_keymap) *xkbmap = xkb_keymap_new_from_string(ctx, memmap_get_data(memmap),
|
||||
XKB_KEYMAP_FORMAT_TEXT_V1,
|
||||
XKB_KEYMAP_COMPILE_NO_FLAGS);
|
||||
if (!xkbmap)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue