bffab47927d1ebc9d57e1095a2bc984e68b45e93
[platform/upstream/libxkbcommon.git] / src / xkbcomp / xkbcomp-priv.h
1 /************************************************************
2  Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
3
4  Permission to use, copy, modify, and distribute this
5  software and its documentation for any purpose and without
6  fee is hereby granted, provided that the above copyright
7  notice appear in all copies and that both that copyright
8  notice and this permission notice appear in supporting
9  documentation, and that the name of Silicon Graphics not be
10  used in advertising or publicity pertaining to distribution
11  of the software without specific prior written permission.
12  Silicon Graphics makes no representation about the suitability
13  of this software for any purpose. It is provided "as is"
14  without any express or implied warranty.
15
16  SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
17  SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
18  AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
19  GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
20  DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
21  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
22  OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
23  THE USE OR PERFORMANCE OF THIS SOFTWARE.
24
25  ********************************************************/
26
27 #ifndef XKBCOMP_PRIV_H
28 #define XKBCOMP_PRIV_H
29
30 #include "xkbcomp.h"
31 #include "alloc.h"
32 #include "text.h"
33 #include "utils.h"
34
35 typedef struct _CommonInfo
36 {
37     unsigned short defined;
38     unsigned char fileID;
39     unsigned char merge;
40     struct _CommonInfo *next;
41 } CommonInfo;
42
43 extern bool
44 UseNewField(unsigned field, CommonInfo *oldDefs, CommonInfo *newDefs,
45             unsigned *pCollide);
46
47 extern char *
48 ClearCommonInfo(CommonInfo *cmn);
49
50 extern char *
51 AddCommonInfo(CommonInfo *old, CommonInfo *new);
52
53 extern int
54 ReportNotArray(const char *type, const char *field, const char *name);
55
56 extern int
57 ReportShouldBeArray(const char *type, const char *field, const char *name);
58
59 extern int
60 ReportBadType(const char *type, const char *field, const char *name,
61               const char *wanted);
62
63 extern int
64 ReportBadField(const char *type, const char *field, const char *name);
65
66 extern bool
67 ProcessIncludeFile(struct xkb_ctx *ctx,
68                    IncludeStmt *stmt, unsigned file_type, XkbFile **file_rtrn,
69                    unsigned *merge_rtrn);
70
71 extern bool
72 FindNamedKey(struct xkb_keymap *keymap, unsigned long name,
73              xkb_keycode_t *kc_rtrn, bool use_aliases, bool create,
74              xkb_keycode_t start_from);
75
76 extern bool
77 FindKeyNameForAlias(struct xkb_keymap *keymap, unsigned long lname,
78                     unsigned long *real_name);
79
80 extern bool
81 UpdateModifiersFromCompat(struct xkb_keymap *keymap);
82
83 extern const char *
84 XkbDirectoryForInclude(unsigned type);
85
86 extern FILE *
87 XkbFindFileInPath(struct xkb_ctx *ctx, const char *name,
88                   unsigned type, char **pathRtrn);
89
90 extern bool
91 XkbParseIncludeMap(char **str_inout, char **file_rtrn, char **map_rtrn,
92                    char *nextop_rtrn, char **extra_data);
93
94 #endif /* XKBCOMP_PRIV_H */