aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Ashworth <bosrsf04@gmail.com>2019-03-12 22:33:49 -0400
committerDrew DeVault <sir@cmpwn.com>2019-03-12 20:52:09 -0600
commit52a61671e93953a06b6b440ede5512e8fe45b35e (patch)
tree6c00f5c8213c00729b8b90ac5488a6e08b58c394
parent3330faded5ed59b19b2a1982bb52c05322b03510 (diff)
criteria: change workspace to support regex
This changes the workspace criteria to support regex instead of basic strings. This matches i3's behavior.
-rw-r--r--include/sway/criteria.h2
-rw-r--r--sway/criteria.c4
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;