|
|
@ -103,7 +103,8 @@ static int countchr(char *str, char c) {
|
|
|
|
// of buf.
|
|
|
|
// of buf.
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Returns error string or NULL if successful.
|
|
|
|
// Returns error string or NULL if successful.
|
|
|
|
static char *crit_tokens(int *argc, char ***buf, const char * const criteria_str) {
|
|
|
|
static char *crit_tokens(int *argc, char ***buf,
|
|
|
|
|
|
|
|
const char * const criteria_str) {
|
|
|
|
wlr_log(L_DEBUG, "Parsing criteria: '%s'", criteria_str);
|
|
|
|
wlr_log(L_DEBUG, "Parsing criteria: '%s'", criteria_str);
|
|
|
|
char *base = criteria_from(criteria_str);
|
|
|
|
char *base = criteria_from(criteria_str);
|
|
|
|
char *head = base;
|
|
|
|
char *head = base;
|
|
|
@ -423,16 +424,20 @@ struct list_tokens {
|
|
|
|
list_t *tokens;
|
|
|
|
list_t *tokens;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static void container_match_add(swayc_t *container, struct list_tokens *list_tokens) {
|
|
|
|
static void container_match_add(swayc_t *container,
|
|
|
|
|
|
|
|
struct list_tokens *list_tokens) {
|
|
|
|
if (criteria_test(container, list_tokens->tokens)) {
|
|
|
|
if (criteria_test(container, list_tokens->tokens)) {
|
|
|
|
list_add(list_tokens->list, container);
|
|
|
|
list_add(list_tokens->list, container);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
list_t *container_for(list_t *tokens) {
|
|
|
|
list_t *container_for_crit_tokens(list_t *tokens) {
|
|
|
|
struct list_tokens list_tokens = (struct list_tokens){create_list(), tokens};
|
|
|
|
struct list_tokens list_tokens =
|
|
|
|
|
|
|
|
(struct list_tokens){create_list(), tokens};
|
|
|
|
|
|
|
|
|
|
|
|
container_map(&root_container, (void (*)(swayc_t *, void *))container_match_add, &list_tokens);
|
|
|
|
container_map(&root_container,
|
|
|
|
|
|
|
|
(void (*)(swayc_t *, void *))container_match_add,
|
|
|
|
|
|
|
|
&list_tokens);
|
|
|
|
|
|
|
|
|
|
|
|
// TODO look in the scratchpad
|
|
|
|
// TODO look in the scratchpad
|
|
|
|
|
|
|
|
|
|
|
|