diff options
author | marha <marha@users.sourceforge.net> | 2010-02-14 21:52:51 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-02-14 21:52:51 +0000 |
commit | 00e6751183c1e854ea3eba746b101449b32201a4 (patch) | |
tree | 3494085d6728e086582f30c8a68846d81840303d /xorg-server/config/hal.c | |
parent | ac637a8cd15f3977f44b701c7ac71a561763c1d8 (diff) | |
parent | 8d38172d866775594af3185ae3fbd8d750677650 (diff) | |
download | vcxsrv-00e6751183c1e854ea3eba746b101449b32201a4.tar.gz vcxsrv-00e6751183c1e854ea3eba746b101449b32201a4.tar.bz2 vcxsrv-00e6751183c1e854ea3eba746b101449b32201a4.zip |
svn merge ^/branches/released
Diffstat (limited to 'xorg-server/config/hal.c')
-rw-r--r-- | xorg-server/config/hal.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/xorg-server/config/hal.c b/xorg-server/config/hal.c index 1b01eccaa..d3daa84cd 100644 --- a/xorg-server/config/hal.c +++ b/xorg-server/config/hal.c @@ -164,6 +164,7 @@ device_added(LibHalContext *hal_ctx, const char *udi) attrs.product = xstrdup(name); attrs.vendor = get_prop_string(hal_ctx, udi, "info.vendor"); + attrs.tags = xstrtokenize(get_prop_string(hal_ctx, udi, "input.tags"), ","); if (libhal_device_query_capability(hal_ctx, udi, "input.keys", NULL)) attrs.flags |= ATTR_KEYBOARD; @@ -391,6 +392,14 @@ unwind: xfree(attrs.product); xfree(attrs.vendor); xfree(attrs.device); + if (attrs.tags) { + char **tag = attrs.tags; + while (*tag) { + xfree(*tag); + tag++; + } + xfree(attrs.tags); + } if (xkb_opts.layout) xfree(xkb_opts.layout); |