Blame tests/libkeymap-dumpkeys.c
|
Packit |
ec106e |
#include <stdio.h>
|
|
Packit |
ec106e |
#include <stdlib.h>
|
|
Packit |
ec106e |
#include <string.h>
|
|
Packit |
ec106e |
#include <keymap.h>
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
int main(int argc, char **argv)
|
|
Packit |
ec106e |
{
|
|
Packit |
ec106e |
lk_table_shape table;
|
|
Packit |
ec106e |
char numeric;
|
|
Packit |
ec106e |
struct lk_ctx *ctx;
|
|
Packit |
ec106e |
lkfile_t f;
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
if (argc == 1) {
|
|
Packit |
ec106e |
printf("Usage: %s <keymap> <table_shape> <numeric>\n", argv[0]);
|
|
Packit |
ec106e |
return 1;
|
|
Packit |
ec106e |
}
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
if (!strcasecmp(argv[2], "FULL_TABLE"))
|
|
Packit |
ec106e |
table = LK_SHAPE_FULL_TABLE;
|
|
Packit |
ec106e |
else if (!strcasecmp(argv[2], "SEPARATE_LINES"))
|
|
Packit |
ec106e |
table = LK_SHAPE_SEPARATE_LINES;
|
|
Packit |
ec106e |
else if (!strcasecmp(argv[2], "UNTIL_HOLE"))
|
|
Packit |
ec106e |
table = LK_SHAPE_UNTIL_HOLE;
|
|
Packit |
ec106e |
else
|
|
Packit |
ec106e |
table = LK_SHAPE_DEFAULT;
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
numeric = (!strcasecmp(argv[3], "TRUE")) ? 1 : 0;
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
ctx = lk_init();
|
|
Packit |
ec106e |
lk_set_parser_flags(ctx, LK_FLAG_PREFER_UNICODE);
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
f.pipe = 0;
|
|
Packit |
ec106e |
strcpy(f.pathname, argv[1]);
|
|
Packit |
ec106e |
f.fd = fopen(argv[1], "r");
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
lk_parse_keymap(ctx, &f);
|
|
Packit |
ec106e |
lk_dump_keymap(ctx, stdout, table, numeric);
|
|
Packit |
ec106e |
lk_dump_diacs(ctx, stdout);
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
lk_free(ctx);
|
|
Packit |
ec106e |
return 0;
|
|
Packit |
ec106e |
}
|