ABI 14 made the InputOption type opaque, move the existing code to ifdefs and use the new function calls otherwise.
Signed-off-by: Peter Hutterer <[email protected]> --- src/jstk_key.c | 50 +++++++++++++++++++++++++++++++++++--------------- 1 files changed, 35 insertions(+), 15 deletions(-) diff --git a/src/jstk_key.c b/src/jstk_key.c index e842941..896bffc 100644 --- a/src/jstk_key.c +++ b/src/jstk_key.c @@ -247,13 +247,43 @@ int jstkKeyboardPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) return Success; } +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 14 +static InputOption* +input-option_new(InputOption* list, const char *key, const char *value) +{ + InputOption tmp; + tmp = calloc(1, sizeof(InputOption)); + tmp->key = xf86OptionName(opts); + tmp->value = xf86OptionValue(opts); + tmp->next = list; + return tmp; +} + +static void +input_option_free_list(InputOption **list) +{ + InputOption *iopts = *list; + while(iopts) + { + tmp = iopts->next; + free(iopts->key); + free(iopts->value); + free(iopts); + iopts = tmp; + } + + *list = NULL; +} + +#endif + InputInfoPtr jstkKeyboardHotplug(InputInfoPtr pInfo, int flags) { int rc; char name[512] = {0}; InputAttributes *attrs = NULL; - InputOption *iopts = NULL, *tmp; + InputOption *iopts = NULL; DeviceIntPtr dev; XF86OptionPtr opts; @@ -266,12 +296,9 @@ jstkKeyboardHotplug(InputInfoPtr pInfo, int flags) while(opts) { - tmp = calloc(1, sizeof(InputOption)); - - tmp->key = xf86OptionName(opts); - tmp->value = xf86OptionValue(opts); - tmp->next = iopts; - iopts = tmp; + iopts = input_option_new(iopts, + xf86OptionName(opts), + xf86OptionValue(opts)); opts = xf86NextOption(opts); } @@ -280,14 +307,7 @@ jstkKeyboardHotplug(InputInfoPtr pInfo, int flags) rc = NewInputDeviceRequest(iopts, attrs, &dev); - while(iopts) - { - tmp = iopts->next; - free(iopts->key); - free(iopts->value); - free(iopts); - iopts = tmp; - } + input_option_free_list(&iopts); FreeInputAttributes(attrs); -- 1.7.7 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
