diff options
author | Dan Nicholson <dbn.lists@gmail.com> | 2010-06-07 20:39:57 -0700 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2010-06-11 09:41:02 +1000 |
commit | a71bdff47d4cc80da6ceeb548db1dcc8e8b59702 (patch) | |
tree | 04c8481244bbfba1da2568af7626eed6f623f1da /hw/xfree86/parser/xf86Parser.h | |
parent | 842625928632ae767b0689fcdb5103c1779a4c91 (diff) |
xfree86: Allow multiple InputClass Match* entries for && matching
Currently when there multiple InputClass entries of the same type, only
the last entry is used and the previous ones are ignored. Instead,
multiple entries are used to create multiple matching conditions.
For instance, an InputClass with
MatchProduct "foo"
MatchProduct "bar"
will require that the device's product name contain both foo and bar.
This provides a complement to the || style matching when an entry is
split using the "|" token.
The xorg.conf man page has added an example to hopefully clarify the two
types of compound matches.
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'hw/xfree86/parser/xf86Parser.h')
-rw-r--r-- | hw/xfree86/parser/xf86Parser.h | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h index a86462f93..26d9a5b33 100644 --- a/hw/xfree86/parser/xf86Parser.h +++ b/hw/xfree86/parser/xf86Parser.h @@ -66,6 +66,7 @@ #include <X11/Xdefs.h> #include "xf86Optrec.h" +#include "list.h" #define HAVE_PARSER_DECLS @@ -340,16 +341,23 @@ xf86TriState; typedef struct { + struct list entry; + char **values; +} +xf86MatchGroup; + +typedef struct +{ GenericListRec list; char *identifier; char *driver; - char **match_product; - char **match_vendor; - char **match_device; - char **match_os; - char **match_pnpid; - char **match_usbid; - char **match_tag; + struct list match_product; + struct list match_vendor; + struct list match_device; + struct list match_os; + struct list match_pnpid; + struct list match_usbid; + struct list match_tag; xf86TriState is_keyboard; xf86TriState is_pointer; xf86TriState is_joystick; |