From 52a61671e93953a06b6b440ede5512e8fe45b35e Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Tue, 12 Mar 2019 22:33:49 -0400 Subject: criteria: change workspace to support regex This changes the workspace criteria to support regex instead of basic strings. This matches i3's behavior. --- include/sway/criteria.h | 2 +- sway/criteria.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/sway/criteria.h b/include/sway/criteria.h index 3eb583d5..f7e788c8 100644 --- a/include/sway/criteria.h +++ b/include/sway/criteria.h @@ -35,7 +35,7 @@ struct criteria { bool floating; bool tiling; char urgent; // 'l' for latest or 'o' for oldest - char *workspace; + pcre *workspace; }; bool criteria_is_empty(struct criteria *criteria); diff --git a/sway/criteria.c b/sway/criteria.c index 5ad48145..f2db6c18 100644 --- a/sway/criteria.c +++ b/sway/criteria.c @@ -208,7 +208,7 @@ static bool criteria_matches_view(struct criteria *criteria, if (criteria->workspace) { struct sway_workspace *ws = view->container->workspace; - if (!ws || strcmp(ws->name, criteria->workspace) != 0) { + if (!ws || regex_cmp(ws->name, criteria->workspace) != 0) { return false; } } @@ -515,7 +515,7 @@ static bool parse_token(struct criteria *criteria, char *name, char *value) { } break; case T_WORKSPACE: - criteria->workspace = strdup(effective_value); + generate_regex(&criteria->workspace, effective_value); break; case T_INVALID: break; -- cgit v1.2.3