Commit 6186383e authored by Ulrich Sibiller's avatar Ulrich Sibiller Committed by Mike Gabriel

Keyboard.c: simplify RLMVO string handling

parent b891e5f6
...@@ -570,7 +570,6 @@ int nxagentKeyboardProc(DeviceIntPtr pDev, int onoff) ...@@ -570,7 +570,6 @@ int nxagentKeyboardProc(DeviceIntPtr pDev, int onoff)
int i, j; int i, j;
XKeyboardState values; XKeyboardState values;
char *model = NULL, *layout = NULL; char *model = NULL, *layout = NULL;
int free_model = 0, free_layout = 0;
XkbDescPtr xkb = NULL; XkbDescPtr xkb = NULL;
switch (onoff) switch (onoff)
...@@ -726,16 +725,9 @@ XkbError: ...@@ -726,16 +725,9 @@ XkbError:
XkbFreeKeyboard(xkb, XkbAllComponentsMask, True); XkbFreeKeyboard(xkb, XkbAllComponentsMask, True);
xkb = NULL; xkb = NULL;
if (free_model)
{ free(model);
free_model = 0; free(layout);
free(model);
}
if (free_layout)
{
free_layout = 0;
free(layout);
}
#endif #endif
XGetKeyboardControl(nxagentDisplay, &values); XGetKeyboardControl(nxagentDisplay, &values);
...@@ -757,7 +749,7 @@ XkbError: ...@@ -757,7 +749,7 @@ XkbError:
#ifdef XKB #ifdef XKB
} else { /* if (noXkbExtension) */ } else { /* if (noXkbExtension) */
XkbComponentNamesRec names = {0}; XkbComponentNamesRec names = {0};
char *rules, *variants, *options; char *rules = NULL, *variants = NULL, *options = NULL; /* use xkb default */
#ifdef TEST #ifdef TEST
fprintf(stderr, "nxagentKeyboardProc: Using XKB extension.\n"); fprintf(stderr, "nxagentKeyboardProc: Using XKB extension.\n");
...@@ -767,8 +759,6 @@ XkbError: ...@@ -767,8 +759,6 @@ XkbError:
fprintf(stderr, "nxagentKeyboardProc: nxagentKeyboard is [%s].\n", nxagentKeyboard ? nxagentKeyboard : "NULL"); fprintf(stderr, "nxagentKeyboardProc: nxagentKeyboard is [%s].\n", nxagentKeyboard ? nxagentKeyboard : "NULL");
#endif #endif
rules = NULL; /* use xkb default */
/* /*
from nxagent changelog: from nxagent changelog:
2.0.22: 2.0.22:
...@@ -791,11 +781,8 @@ XkbError: ...@@ -791,11 +781,8 @@ XkbError:
goto XkbError; goto XkbError;
} }
free_model = 1; model = strndup(nxagentKeyboard, i);
model = strndup(nxagentKeyboard, i); layout = strdup(&nxagentKeyboard[i + 1]);
free_layout = 1;
layout = strdup(&nxagentKeyboard[i + 1]);
/* /*
* There is no description for pc105 on Solaris. * There is no description for pc105 on Solaris.
...@@ -824,18 +811,12 @@ XkbError: ...@@ -824,18 +811,12 @@ XkbError:
} }
else else
{ {
layout = NULL; /* use xkb default */
model = NULL; /* use xkb default */
#ifdef TEST #ifdef TEST
fprintf(stderr, "nxagentKeyboardProc: Using default keyboard: model [%s] layout [%s].\n", fprintf(stderr, "nxagentKeyboardProc: Using default keyboard: model [%s] layout [%s].\n",
model, layout); model, layout);
#endif #endif
} }
variants = NULL; /* use xkb default */
options = NULL; /* use xkb default */
#ifdef TEST #ifdef TEST
fprintf(stderr, "nxagentKeyboardProc: Init XKB extension.\n"); fprintf(stderr, "nxagentKeyboardProc: Init XKB extension.\n");
#endif #endif
...@@ -900,20 +881,11 @@ XkbEnd: ...@@ -900,20 +881,11 @@ XkbEnd:
NXShadowInitKeymap(&(pDev->key->curKeySyms)); NXShadowInitKeymap(&(pDev->key->curKeySyms));
} }
if (free_model)
{
free_model = 0;
free(model);
}
if (free_layout)
{
free_layout = 0;
free(layout);
}
XkbFreeKeyboard(xkb, XkbAllComponentsMask, True); XkbFreeKeyboard(xkb, XkbAllComponentsMask, True);
xkb = NULL; xkb = NULL;
free(model);
free(layout);
} }
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment