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;
|
||||
const char *s;
|
||||
XkbRMLVOSet set;
|
||||
|
||||
/* Default options. */
|
||||
set.rules = "base";
|
||||
set.model = "pc105";
|
||||
set.layout = "us";
|
||||
set.variant = NULL;
|
||||
set.options = NULL;
|
||||
const char *rules;
|
||||
|
||||
/*
|
||||
* Merge the ServerLayout and ServerFlags options. The former have
|
||||
|
@ -963,9 +957,15 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts)
|
|||
* evdev rules set. */
|
||||
#if defined(linux)
|
||||
if (!xf86Info.forceInputDevices)
|
||||
set.rules = "evdev";
|
||||
rules = "evdev";
|
||||
else
|
||||
#endif
|
||||
rules = "base";
|
||||
|
||||
/* Xkb default options. */
|
||||
XkbInitRules(&set, rules, "pc105", "us", NULL, NULL);
|
||||
XkbSetRulesDflts(&set);
|
||||
XkbFreeRMLVOSet(&set, FALSE);
|
||||
|
||||
xf86Info.useDefaultFontPath = TRUE;
|
||||
xf86Info.useDefaultFontPathFrom = X_DEFAULT;
|
||||
|
|
|
@ -30,11 +30,11 @@
|
|||
/***====================================================================***/
|
||||
|
||||
typedef struct _XkbRMLVOSet {
|
||||
const char *rules;
|
||||
const char *model;
|
||||
const char *layout;
|
||||
const char *variant;
|
||||
const char *options;
|
||||
char *rules;
|
||||
char *model;
|
||||
char *layout;
|
||||
char *variant;
|
||||
char *options;
|
||||
} XkbRMLVOSet;
|
||||
|
||||
typedef struct _XkbRF_VarDefs {
|
||||
|
|
|
@ -738,6 +738,14 @@ extern _X_EXPORT void XkbClearAllLatchesAndLocks(DeviceIntPtr /* dev */ ,
|
|||
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 */
|
||||
);
|
||||
|
||||
|
|
18
test/xkb.c
18
test/xkb.c
|
@ -82,15 +82,17 @@ xkb_get_rules_test(void)
|
|||
static void
|
||||
xkb_set_rules_test(void)
|
||||
{
|
||||
XkbRMLVOSet rmlvo = {
|
||||
.rules = "test-rules",
|
||||
.model = "test-model",
|
||||
.layout = "test-layout",
|
||||
.variant = "test-variant",
|
||||
.options = "test-options"
|
||||
};
|
||||
XkbRMLVOSet rmlvo;
|
||||
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);
|
||||
XkbGetRulesDflts(&rmlvo_new);
|
||||
|
||||
|
@ -106,6 +108,8 @@ xkb_set_rules_test(void)
|
|||
assert(strcmp(rmlvo.layout, rmlvo_new.layout) == 0);
|
||||
assert(strcmp(rmlvo.variant, rmlvo_new.variant) == 0);
|
||||
assert(strcmp(rmlvo.options, rmlvo_new.options) == 0);
|
||||
|
||||
XkbFreeRMLVOSet(&rmlvo, FALSE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -129,11 +129,11 @@ XkbFreeRMLVOSet(XkbRMLVOSet * rmlvo, Bool freeRMLVO)
|
|||
if (!rmlvo)
|
||||
return;
|
||||
|
||||
free((void *) rmlvo->rules);
|
||||
free((void *) rmlvo->model);
|
||||
free((void *) rmlvo->layout);
|
||||
free((void *) rmlvo->variant);
|
||||
free((void *) rmlvo->options);
|
||||
free(rmlvo->rules);
|
||||
free(rmlvo->model);
|
||||
free(rmlvo->layout);
|
||||
free(rmlvo->variant);
|
||||
free(rmlvo->options);
|
||||
|
||||
if (freeRMLVO)
|
||||
free(rmlvo);
|
||||
|
@ -206,6 +206,21 @@ XkbWriteRulesProp(ClientPtr client, void *closure)
|
|||
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
|
||||
XkbSetRulesUsed(XkbRMLVOSet * rmlvo)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue