4d25bf7dbbcc2d264dc403acb62a087d15f3a4c2
[platform/upstream/kbd.git] / tests / libkeymap-dumpkeys.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <keymap.h>
5
6 int main(int argc, char **argv)
7 {
8         lk_table_shape table;
9         char numeric;
10         struct lk_ctx *ctx;
11         lkfile_t f;
12
13         if (argc == 1) {
14                 printf("Usage: %s <keymap> <table_shape> <numeric>\n", argv[0]);
15                 return 1;
16         }
17
18         if (!strcasecmp(argv[2], "FULL_TABLE"))
19                 table = LK_SHAPE_FULL_TABLE;
20         else if (!strcasecmp(argv[2], "SEPARATE_LINES"))
21                 table = LK_SHAPE_SEPARATE_LINES;
22         else if (!strcasecmp(argv[2], "UNTIL_HOLE"))
23                 table = LK_SHAPE_UNTIL_HOLE;
24         else
25                 table = LK_SHAPE_DEFAULT;
26
27         numeric = (!strcasecmp(argv[3], "TRUE")) ? 1 : 0;
28
29         ctx = lk_init();
30         lk_set_parser_flags(ctx, LK_FLAG_PREFER_UNICODE);
31
32         f.pipe = 0;
33         strcpy(f.pathname, argv[1]);
34         f.fd = fopen(argv[1], "r");
35
36         lk_parse_keymap(ctx, &f);
37         lk_dump_keymap(ctx, stdout, table, numeric);
38         lk_dump_diacs(ctx, stdout);
39
40         lk_free(ctx);
41         return 0;
42 }