xkb: Allow NULL as rulesFile in XkbSetRulesDflts.
If no rules file is given, simply re-use the previous one. If no RF is given the first time this function is called, use the built-in default. This includes fixing the built-in default to something that actually exists. Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
This commit is contained in:
parent
e670fd8896
commit
463e02e7de
|
@ -93,7 +93,7 @@ typedef struct _SrvXkmInfo {
|
|||
#define XKB_BIN_DIRECTORY XKB_BASE_DIRECTORY
|
||||
#endif
|
||||
#ifndef XKB_DFLT_RULES_FILE
|
||||
#define XKB_DFLT_RULES_FILE "rules"
|
||||
#define XKB_DFLT_RULES_FILE "base"
|
||||
#endif
|
||||
#ifndef XKB_DFLT_KB_LAYOUT
|
||||
#define XKB_DFLT_KB_LAYOUT "us"
|
||||
|
@ -240,14 +240,33 @@ XkbSetRulesUsed(XkbRF_VarDefsPtr defs)
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the default RMLVO for the next device to be initialised.
|
||||
* If a parameter is NULL, the previous setting will be used. Use empty
|
||||
* strings if you want to delete a previous setting.
|
||||
*
|
||||
* If @rulesFile is NULL and no previous @rulesFile has been set, the
|
||||
* built-in default is chosen as default.
|
||||
*/
|
||||
_X_EXPORT void
|
||||
XkbSetRulesDflts(char *rulesFile,char *model,char *layout,
|
||||
char *variant,char *options)
|
||||
{
|
||||
if (XkbRulesFile)
|
||||
_XkbFree(XkbRulesFile);
|
||||
XkbRulesFile= _XkbDupString(rulesFile);
|
||||
rulesDefined= True;
|
||||
if (!rulesFile && !XkbRulesFile)
|
||||
{
|
||||
LogMessage(X_WARNING, "[xkb] No rule given, and no previous rule "
|
||||
"defined. Defaulting to '%s'.\n",
|
||||
XKB_DFLT_RULES_FILE);
|
||||
rulesFile = XKB_DFLT_RULES_FILE;
|
||||
}
|
||||
|
||||
if (rulesFile) {
|
||||
if (XkbRulesFile)
|
||||
_XkbFree(XkbRulesFile);
|
||||
XkbRulesFile= _XkbDupString(rulesFile);
|
||||
rulesDefined= True;
|
||||
}
|
||||
|
||||
if (model) {
|
||||
if (XkbModelDflt)
|
||||
_XkbFree(XkbModelDflt);
|
||||
|
|
Loading…
Reference in New Issue
Block a user