X-Git-Url: https://git.sur5r.net/?p=i3%2Fi3;a=blobdiff_plain;f=include%2Fmatch.h;h=043c3a8f114e77401a5a5df2f8792b8780e4f150;hp=4f0e9bdc291f3f17df7d9f80dec5dbbf8f355a0f;hb=HEAD;hpb=3d1acd6c2f80470cba402cf9df64b00297ac2a59 diff --git a/include/match.h b/include/match.h index 4f0e9bdc..043c3a8f 100644 --- a/include/match.h +++ b/include/match.h @@ -1,7 +1,21 @@ -#ifndef _MATCH_H -#define _MATCH_H - /* + * vim:ts=4:sw=4:expandtab + * + * i3 - an improved dynamic tiling window manager + * © 2009 Michael Stapelberg and contributors (see also: LICENSE) + * + * A "match" is a data structure which acts like a mask or expression to match + * certain windows or not. For example, when using commands, you can specify a + * command like this: [title="*Firefox*"] kill. The title member of the match + * data structure will then be filled and i3 will check each window using + * match_matches_window() to find the windows affected by this command. + * + */ +#pragma once + +#include + +/** * Initializes the Match data structure. This function is necessary because the * members representing boolean values (like dock) need to be initialized with * -1 instead of 0. @@ -16,6 +30,12 @@ void match_init(Match *match); */ bool match_is_empty(Match *match); +/** + * Copies the data of a match from src to dest. + * + */ +void match_copy(Match *dest, Match *src); + /** * Check if a match data structure matches the given window. * @@ -23,9 +43,13 @@ bool match_is_empty(Match *match); bool match_matches_window(Match *match, i3Window *window); /** - * Returns the first match in 'assignments' that matches the given window. + * Frees the given match. It must not be used afterwards! * */ -Match *match_by_assignment(i3Window *window); +void match_free(Match *match); -#endif +/** + * Interprets a ctype=cvalue pair and adds it to the given match specification. + * + */ +void match_parse_property(Match *match, const char *ctype, const char *cvalue);