aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2019-03-12 22:33:49 -0400
committerFurkan Sahin <furkan-dev@proton.me>2019-03-12 22:33:49 -0400
commitf36a78c8741c2b35a955d9875f911fce087af6f0 (patch)
tree6c00f5c8213c00729b8b90ac5488a6e08b58c394
parent5116508290ecce20c883d77e962feefbb0cdf30f (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;