From a94f76459b9f2fbaccebbf2107956749ae33ac23 Mon Sep 17 00:00:00 2001 From: Oleh Nykyforchyn Date: Wed, 23 Jul 2025 17:25:09 +0300 Subject: [PATCH] xserver: hw/xfree86/parser: prepare types for pattern matching It is patch 1/5 of a series that refactors matching input and output devices to classes and extends possibilities to describe them, in particular, it allows use of regular expressions. This patch introduces enum xf86Match for different modes of matching present in Xserver code: case sensitive/insensitive, equal strings, being substring, comparison of filenames or pathnames etc, and introduces struct xf86MatchPattern to hold a pattern together with a mode. These types are not used yet. Signed-off-by: Oleh Nykyforchyn --- hw/xfree86/parser/xf86Parser.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h index b9240af12..ef595f3ae 100644 --- a/hw/xfree86/parser/xf86Parser.h +++ b/hw/xfree86/parser/xf86Parser.h @@ -305,9 +305,28 @@ typedef struct { typedef struct { struct xorg_list entry; char **values; + struct xorg_list patterns; Bool is_negated; } xf86MatchGroup; +typedef enum { + MATCH_IS_INVALID, + MATCH_EXACT, + MATCH_EXACT_NOCASE, + MATCH_AS_SUBSTRING, + MATCH_AS_SUBSTRING_NOCASE, + MATCH_AS_FILENAME, + MATCH_AS_PATHNAME, + MATCH_SUBSTRINGS_SEQUENCE, +} xf86MatchMode; + +typedef struct { + struct xorg_list entry; + xf86MatchMode mode; + Bool is_negated; + char *str; +} xf86MatchPattern; + typedef struct { GenericListRec list; char *identifier;