From a07e982d243e16af2cd009881729740e1dad12d4 Mon Sep 17 00:00:00 2001 From: Alexey Gladkov Date: Wed, 25 Jun 2014 03:41:46 +0400 Subject: [PATCH] Add function to obtain items from the diacritical table Signed-off-by: Alexey Gladkov --- src/libkeymap/keymap/kmap.h | 1 + src/libkeymap/kmap.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/libkeymap/keymap/kmap.h b/src/libkeymap/keymap/kmap.h index fccaa0f..d6fa969 100644 --- a/src/libkeymap/keymap/kmap.h +++ b/src/libkeymap/keymap/kmap.h @@ -21,6 +21,7 @@ int lk_key_exists(struct lk_ctx *ctx, unsigned int k_table, unsigned int k_ind int lk_get_func(struct lk_ctx *ctx, struct kbsentry *kbs); int lk_add_func(struct lk_ctx *ctx, struct kbsentry kbs); +int lk_get_diacr(struct lk_ctx *ctx, unsigned int index, struct lk_kbdiacr *dcr); int lk_add_diacr(struct lk_ctx *ctx, struct lk_kbdiacr *dcr); int lk_add_compose(struct lk_ctx *ctx, struct lk_kbdiacr *dcr); diff --git a/src/libkeymap/kmap.c b/src/libkeymap/kmap.c index 8bfc3be..531e6ba 100644 --- a/src/libkeymap/kmap.c +++ b/src/libkeymap/kmap.c @@ -211,6 +211,24 @@ lk_add_func(struct lk_ctx *ctx, struct kbsentry kbs) } int +lk_get_diacr(struct lk_ctx *ctx, unsigned int index, struct lk_kbdiacr *dcr) +{ + struct lk_kbdiacr *ptr; + + ptr = lk_array_get_ptr(ctx->accent_table, index); + if (!ptr) { + ERR(ctx, _("Index %d in the accent table does not exist"), index); + return -1; + } + + dcr->diacr = ptr->diacr; + dcr->base = ptr->base; + dcr->result = ptr->result; + + return 0; +} + +int lk_add_diacr(struct lk_ctx *ctx, struct lk_kbdiacr *dcr) { struct lk_kbdiacr *ptr; -- 2.7.4