#include #include #include #include int main(int argc, char **argv) { lk_table_shape table; char numeric; struct lk_ctx *ctx; lkfile_t f; if (argc == 1) { printf("Usage: %s \n", argv[0]); return 1; } if (!strcasecmp(argv[2], "FULL_TABLE")) table = LK_SHAPE_FULL_TABLE; else if (!strcasecmp(argv[2], "SEPARATE_LINES")) table = LK_SHAPE_SEPARATE_LINES; else if (!strcasecmp(argv[2], "UNTIL_HOLE")) table = LK_SHAPE_UNTIL_HOLE; else table = LK_SHAPE_DEFAULT; numeric = (!strcasecmp(argv[3], "TRUE")) ? 1 : 0; ctx = lk_init(); lk_set_parser_flags(ctx, LK_FLAG_PREFER_UNICODE); f.pipe = 0; strcpy(f.pathname, argv[1]); f.fd = fopen(argv[1], "r"); lk_parse_keymap(ctx, &f); lk_dump_keymap(ctx, stdout, table, numeric); lk_dump_diacs(ctx, stdout); lk_free(ctx); return 0; }