return buf;
}
-static const char *xkb_file_type_strings[_FILE_TYPE_NUM_ENTRIES] = {
- [FILE_TYPE_KEYMAP] = "xkb_keymap",
- [FILE_TYPE_TYPES] = "xkb_types",
- [FILE_TYPE_COMPAT] = "xkb_compatibility",
- [FILE_TYPE_SYMBOLS] = "xkb_symbols",
- [FILE_TYPE_KEYCODES] = "xkb_keycodes",
- [FILE_TYPE_RULES] = "rules",
-};
-
-const char *
-FileTypeText(enum xkb_file_type type)
-{
- if (type > _FILE_TYPE_NUM_ENTRIES)
- return "unknown";
- return xkb_file_type_strings[type];
-}
-
static const char *actionTypeNames[XkbSA_NumActions] = {
[XkbSA_NoAction] = "NoAction",
[XkbSA_SetMods] = "SetMods",
ModMaskText(xkb_mod_mask_t mask);
const char *
-FileTypeText(enum xkb_file_type type);
-
-const char *
ActionTypeText(unsigned type);
const char *
#define XKB_ATOM_NONE 0
#define XKB_LEVEL_INVALID 0xffffffff
-enum xkb_file_type {
- /* Component files, by order of compilation. */
- FILE_TYPE_KEYCODES = 0,
- FILE_TYPE_TYPES = 1,
- FILE_TYPE_COMPAT = 2,
- FILE_TYPE_SYMBOLS = 3,
- /* Geometry is not compiled any more. */
- FILE_TYPE_GEOMETRY = 4,
-
- /* A top level file which includes the above files. */
- FILE_TYPE_KEYMAP,
-
-/* File types which must be found in a keymap file. */
-#define FIRST_KEYMAP_FILE_TYPE FILE_TYPE_KEYCODES
-#define LAST_KEYMAP_FILE_TYPE FILE_TYPE_SYMBOLS
-
- /* This one doesn't mix with the others, but useful here as well. */
- FILE_TYPE_RULES,
-
- _FILE_TYPE_NUM_ENTRIES
-};
-
struct xkb_context {
int refcnt;
}
}
+static const char *xkb_file_type_strings[_FILE_TYPE_NUM_ENTRIES] = {
+ [FILE_TYPE_KEYCODES] = "xkb_keycodes",
+ [FILE_TYPE_TYPES] = "xkb_types",
+ [FILE_TYPE_COMPAT] = "xkb_compatibility",
+ [FILE_TYPE_SYMBOLS] = "xkb_symbols",
+ [FILE_TYPE_KEYMAP] = "xkb_keymap",
+ [FILE_TYPE_RULES] = "rules",
+};
+
+const char *
+xkb_file_type_to_string(enum xkb_file_type type)
+{
+ if (type > _FILE_TYPE_NUM_ENTRIES)
+ return "unknown";
+ return xkb_file_type_strings[type];
+}
+
static const char *stmt_type_strings[_STMT_NUM_VALUES] = {
[STMT_UNKNOWN] = "unknown statement",
[STMT_INCLUDE] = "include statement",
#ifndef XKBCOMP_AST_H
#define XKBCOMP_AST_H
+enum xkb_file_type {
+ /* Component files, by order of compilation. */
+ FILE_TYPE_KEYCODES = 0,
+ FILE_TYPE_TYPES = 1,
+ FILE_TYPE_COMPAT = 2,
+ FILE_TYPE_SYMBOLS = 3,
+ /* Geometry is not compiled any more. */
+ FILE_TYPE_GEOMETRY = 4,
+
+ /* A top level file which includes the above files. */
+ FILE_TYPE_KEYMAP,
+
+/* File types which must be found in a keymap file. */
+#define FIRST_KEYMAP_FILE_TYPE FILE_TYPE_KEYCODES
+#define LAST_KEYMAP_FILE_TYPE FILE_TYPE_SYMBOLS
+
+ /* This one doesn't mix with the others, but useful here as well. */
+ FILE_TYPE_RULES,
+
+ _FILE_TYPE_NUM_ENTRIES
+};
+
enum stmt_type {
STMT_UNKNOWN = 0,
STMT_INCLUDE,
};
const char *
+xkb_file_type_to_string(enum xkb_file_type type);
+
+const char *
stmt_type_to_string(enum stmt_type type);
const char *
#include <stdio.h>
#include "xkbcomp-priv.h"
-#include "text.h"
#include "include.h"
/**
}
if (!mapToUse) {
log_err(ctx, "No %s named \"%s\" in the include file \"%s\"\n",
- FileTypeText(file_type), stmt->map, stmt->file);
+ xkb_file_type_to_string(file_type), stmt->map,
+ stmt->file);
return false;
}
}
log_err(ctx,
"Include file wrong type (expected %s, got %s); "
"Include file \"%s\" ignored\n",
- FileTypeText(file_type), FileTypeText(mapToUse->file_type),
- stmt->file);
+ xkb_file_type_to_string(file_type),
+ xkb_file_type_to_string(mapToUse->file_type), stmt->file);
return false;
}
/* FIXME: we have to check recursive includes here (or somewhere) */
*/
#include "xkbcomp-priv.h"
-#include "text.h"
#include "rules.h"
typedef bool (*compile_file_fn)(XkbFile *file,
if (file->file_type != FILE_TYPE_KEYMAP) {
log_err(ctx, "Cannot compile a %s file alone into a keymap\n",
- FileTypeText(file->file_type));
+ xkb_file_type_to_string(file->file_type));
goto err;
}
if (file->file_type < FIRST_KEYMAP_FILE_TYPE ||
file->file_type > LAST_KEYMAP_FILE_TYPE) {
log_err(ctx, "Cannot define %s in a keymap file\n",
- FileTypeText(file->file_type));
+ xkb_file_type_to_string(file->file_type));
continue;
}
log_err(ctx,
"More than one %s section in keymap file; "
"All sections after the first ignored\n",
- FileTypeText(file->file_type));
+ xkb_file_type_to_string(file->file_type));
continue;
}
type++) {
if (files[type] == NULL) {
log_err(ctx, "Required section %s missing from keymap\n",
- FileTypeText(type));
+ xkb_file_type_to_string(type));
ok = false;
}
}
type <= LAST_KEYMAP_FILE_TYPE;
type++) {
log_dbg(ctx, "Compiling %s \"%s\"\n",
- FileTypeText(type), files[type]->topName);
+ xkb_file_type_to_string(type), files[type]->topName);
ok = compile_file_fns[type](files[type], keymap, MERGE_OVERRIDE);
if (!ok) {
- log_err(ctx, "Failed to compile %s\n", FileTypeText(type));
+ log_err(ctx, "Failed to compile %s\n",
+ xkb_file_type_to_string(type));
goto err;
}
}