aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/config/hal.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-02-14 21:52:51 +0000
committermarha <marha@users.sourceforge.net>2010-02-14 21:52:51 +0000
commit00e6751183c1e854ea3eba746b101449b32201a4 (patch)
tree3494085d6728e086582f30c8a68846d81840303d /xorg-server/config/hal.c
parentac637a8cd15f3977f44b701c7ac71a561763c1d8 (diff)
parent8d38172d866775594af3185ae3fbd8d750677650 (diff)
downloadvcxsrv-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.c9
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);