xkb: add a call to init an XkbRMLVOSet from const chars
Just forcing everything to const char* is not helpful, compiler warnings are supposed to warn about broken code. Forcing everything to const when it clearly isn't less than ideal. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
6307d60dd5
commit
2fc38d1e29
|
@ -777,13 +777,7 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts)
|
||||||
MessageType from;
|
MessageType from;
|
||||||
const char *s;
|
const char *s;
|
||||||
XkbRMLVOSet set;
|
XkbRMLVOSet set;
|
||||||
|
const char *rules;
|
||||||
/* Default options. */
|
|
||||||
set.rules = "base";
|
|
||||||
set.model = "pc105";
|
|
||||||
set.layout = "us";
|
|
||||||
set.variant = NULL;
|
|
||||||
set.options = NULL;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Merge the ServerLayout and ServerFlags options. The former have
|
* Merge the ServerLayout and ServerFlags options. The former have
|
||||||
|
@ -963,9 +957,15 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts)
|
||||||
* evdev rules set. */
|
* evdev rules set. */
|
||||||
#if defined(linux)
|
#if defined(linux)
|
||||||
if (!xf86Info.forceInputDevices)
|
if (!xf86Info.forceInputDevices)
|
||||||
set.rules = "evdev";
|
rules = "evdev";
|
||||||
|
else
|
||||||
#endif
|
#endif
|
||||||
|
rules = "base";
|
||||||
|
|
||||||
|
/* Xkb default options. */
|
||||||
|
XkbInitRules(&set, rules, "pc105", "us", NULL, NULL);
|
||||||
XkbSetRulesDflts(&set);
|
XkbSetRulesDflts(&set);
|
||||||
|
XkbFreeRMLVOSet(&set, FALSE);
|
||||||
|
|
||||||
xf86Info.useDefaultFontPath = TRUE;
|
xf86Info.useDefaultFontPath = TRUE;
|
||||||
xf86Info.useDefaultFontPathFrom = X_DEFAULT;
|
xf86Info.useDefaultFontPathFrom = X_DEFAULT;
|
||||||
|
|
|
@ -30,11 +30,11 @@
|
||||||
/***====================================================================***/
|
/***====================================================================***/
|
||||||
|
|
||||||
typedef struct _XkbRMLVOSet {
|
typedef struct _XkbRMLVOSet {
|
||||||
const char *rules;
|
char *rules;
|
||||||
const char *model;
|
char *model;
|
||||||
const char *layout;
|
char *layout;
|
||||||
const char *variant;
|
char *variant;
|
||||||
const char *options;
|
char *options;
|
||||||
} XkbRMLVOSet;
|
} XkbRMLVOSet;
|
||||||
|
|
||||||
typedef struct _XkbRF_VarDefs {
|
typedef struct _XkbRF_VarDefs {
|
||||||
|
|
|
@ -738,6 +738,14 @@ extern _X_EXPORT void XkbClearAllLatchesAndLocks(DeviceIntPtr /* dev */ ,
|
||||||
XkbEventCausePtr /* cause */
|
XkbEventCausePtr /* cause */
|
||||||
);
|
);
|
||||||
|
|
||||||
|
extern _X_EXPORT void XkbInitRules(XkbRMLVOSet * /* rmlvo */,
|
||||||
|
const char * /* rules */,
|
||||||
|
const char * /* model */,
|
||||||
|
const char * /* layout */,
|
||||||
|
const char * /* variant */,
|
||||||
|
const char * /* options */
|
||||||
|
) ;
|
||||||
|
|
||||||
extern _X_EXPORT void XkbGetRulesDflts(XkbRMLVOSet * /* rmlvo */
|
extern _X_EXPORT void XkbGetRulesDflts(XkbRMLVOSet * /* rmlvo */
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
18
test/xkb.c
18
test/xkb.c
|
@ -82,15 +82,17 @@ xkb_get_rules_test(void)
|
||||||
static void
|
static void
|
||||||
xkb_set_rules_test(void)
|
xkb_set_rules_test(void)
|
||||||
{
|
{
|
||||||
XkbRMLVOSet rmlvo = {
|
XkbRMLVOSet rmlvo;
|
||||||
.rules = "test-rules",
|
|
||||||
.model = "test-model",
|
|
||||||
.layout = "test-layout",
|
|
||||||
.variant = "test-variant",
|
|
||||||
.options = "test-options"
|
|
||||||
};
|
|
||||||
XkbRMLVOSet rmlvo_new = { NULL };
|
XkbRMLVOSet rmlvo_new = { NULL };
|
||||||
|
|
||||||
|
XkbInitRules(&rmlvo, "test-rules", "test-model", "test-layout",
|
||||||
|
"test-variant", "test-options");
|
||||||
|
assert(rmlvo.rules);
|
||||||
|
assert(rmlvo.model);
|
||||||
|
assert(rmlvo.layout);
|
||||||
|
assert(rmlvo.variant);
|
||||||
|
assert(rmlvo.options);
|
||||||
|
|
||||||
XkbSetRulesDflts(&rmlvo);
|
XkbSetRulesDflts(&rmlvo);
|
||||||
XkbGetRulesDflts(&rmlvo_new);
|
XkbGetRulesDflts(&rmlvo_new);
|
||||||
|
|
||||||
|
@ -106,6 +108,8 @@ xkb_set_rules_test(void)
|
||||||
assert(strcmp(rmlvo.layout, rmlvo_new.layout) == 0);
|
assert(strcmp(rmlvo.layout, rmlvo_new.layout) == 0);
|
||||||
assert(strcmp(rmlvo.variant, rmlvo_new.variant) == 0);
|
assert(strcmp(rmlvo.variant, rmlvo_new.variant) == 0);
|
||||||
assert(strcmp(rmlvo.options, rmlvo_new.options) == 0);
|
assert(strcmp(rmlvo.options, rmlvo_new.options) == 0);
|
||||||
|
|
||||||
|
XkbFreeRMLVOSet(&rmlvo, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -129,11 +129,11 @@ XkbFreeRMLVOSet(XkbRMLVOSet * rmlvo, Bool freeRMLVO)
|
||||||
if (!rmlvo)
|
if (!rmlvo)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
free((void *) rmlvo->rules);
|
free(rmlvo->rules);
|
||||||
free((void *) rmlvo->model);
|
free(rmlvo->model);
|
||||||
free((void *) rmlvo->layout);
|
free(rmlvo->layout);
|
||||||
free((void *) rmlvo->variant);
|
free(rmlvo->variant);
|
||||||
free((void *) rmlvo->options);
|
free(rmlvo->options);
|
||||||
|
|
||||||
if (freeRMLVO)
|
if (freeRMLVO)
|
||||||
free(rmlvo);
|
free(rmlvo);
|
||||||
|
@ -206,6 +206,21 @@ XkbWriteRulesProp(ClientPtr client, void *closure)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
XkbInitRules(XkbRMLVOSet *rmlvo,
|
||||||
|
const char *rules,
|
||||||
|
const char *model,
|
||||||
|
const char *layout,
|
||||||
|
const char *variant,
|
||||||
|
const char *options)
|
||||||
|
{
|
||||||
|
rmlvo->rules = rules ? xnfstrdup(rules) : NULL;
|
||||||
|
rmlvo->model = model ? xnfstrdup(model) : NULL;
|
||||||
|
rmlvo->layout = layout ? xnfstrdup(layout) : NULL;
|
||||||
|
rmlvo->variant = variant ? xnfstrdup(variant) : NULL;
|
||||||
|
rmlvo->options = options ? xnfstrdup(options) : NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
XkbSetRulesUsed(XkbRMLVOSet * rmlvo)
|
XkbSetRulesUsed(XkbRMLVOSet * rmlvo)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue