]> git.sur5r.net Git - i3/i3/commitdiff
move match_* to match.c
authorMichael Stapelberg <michael@stapelberg.de>
Fri, 16 Apr 2010 20:51:25 +0000 (22:51 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Fri, 16 Apr 2010 20:51:25 +0000 (22:51 +0200)
Makefile
include/con.h
include/match.h [new file with mode: 0644]
src/con.c
src/match.c [new file with mode: 0644]

index 368dc777b4c1daf9957f503d3fcc0d36b1105eb3..93c98e1e6d01456804fd31fe9b132c732639b311 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ include $(TOPDIR)/common.mk
 
 # Depend on the object files of all source-files in src/*.c and on all header files
 AUTOGENERATED:=src/cfgparse.tab.c src/cfgparse.yy.c src/cmdparse.tab.c src/cmdparse.yy.c
-FILES:=src/ipc.c src/nc.c src/log.c src/util.c src/tree.c src/xcb.c src/manage.c src/workspace.c src/x.c src/floating.c src/click.c src/config.c src/handlers.c src/randr.c src/xinerama.c src/con.c src/load_layout.c src/render.c src/window.c
+FILES:=src/ipc.c src/nc.c src/log.c src/util.c src/tree.c src/xcb.c src/manage.c src/workspace.c src/x.c src/floating.c src/click.c src/config.c src/handlers.c src/randr.c src/xinerama.c src/con.c src/load_layout.c src/render.c src/window.c src/match.c
 FILES:=$(FILES:.c=.o)
 HEADERS:=$(filter-out include/loglevels.h,$(wildcard include/*.h))
 
index 8022fc011fd0cba9a266e7553473ddb1288f7767..2b01475aaed33c2671ef3d6db381bbda59a517f8 100644 (file)
@@ -14,7 +14,6 @@ Con *con_by_frame_id(xcb_window_t frame);
 Con *con_for_window(i3Window *window, Match **store_match);
 void con_attach(Con *con, Con *parent);
 void con_detach(Con *con);
-bool match_matches_window(Match *match, i3Window *window);
 
 enum { WINDOW_ADD = 0, WINDOW_REMOVE = 1 };
 void con_fix_percent(Con *con, int action);
diff --git a/include/match.h b/include/match.h
new file mode 100644 (file)
index 0000000..eb6aec1
--- /dev/null
@@ -0,0 +1,7 @@
+#ifndef _MATCH_H
+#define _MATCH_H
+
+bool match_is_empty(Match *match);
+bool match_matches_window(Match *match, i3Window *window);
+
+#endif
index d0daba5906b7f58f0fd2510ab17975d419cf7f3e..2f61363b1459d909bb7abed54635addae6379b52 100644 (file)
--- a/src/con.c
+++ b/src/con.c
@@ -221,29 +221,6 @@ Con *con_by_frame_id(xcb_window_t frame) {
     return NULL;
 }
 
-bool match_matches_window(Match *match, i3Window *window) {
-    /* TODO: pcre, full matching, … */
-    if (match->class != NULL && strcasecmp(match->class, window->class_class) == 0) {
-        LOG("match made by window class (%s)\n", window->class_class);
-        return true;
-    }
-
-    if (match->instance != NULL && strcasecmp(match->instance, window->class_instance) == 0) {
-        LOG("match made by window instance (%s)\n", window->class_instance);
-        return true;
-    }
-
-
-    if (match->id != XCB_NONE && window->id == match->id) {
-        LOG("match made by window id (%d)\n", window->id);
-        return true;
-    }
-
-    LOG("window %d (%s) could not be matched\n", window->id, window->class_class);
-
-    return false;
-}
-
 /*
  * Returns the first container which wants to swallow this window
  * TODO: priority
diff --git a/src/match.c b/src/match.c
new file mode 100644 (file)
index 0000000..cdabdc3
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2010 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ */
+
+#include "all.h"
+
+bool match_is_empty(Match *match) {
+    /* we cannot simply use memcmp() because the structure is part of a
+     * TAILQ and I don’t want to start with things like assuming that the
+     * last member of a struct really is at the end in memory… */
+    return (match->title == NULL &&
+            match->application == NULL &&
+            match->class == NULL &&
+            match->instance == NULL &&
+            match->id == XCB_NONE &&
+            match->con_id == NULL &&
+            match->floating == false);
+}
+
+bool match_matches_window(Match *match, i3Window *window) {
+    /* TODO: pcre, full matching, … */
+    if (match->class != NULL && window->class_class != NULL && strcasecmp(match->class, window->class_class) == 0) {
+        LOG("match made by window class (%s)\n", window->class_class);
+        return true;
+    }
+
+    if (match->instance != NULL && window->class_instance != NULL && strcasecmp(match->instance, window->class_instance) == 0) {
+        LOG("match made by window instance (%s)\n", window->class_instance);
+        return true;
+    }
+
+
+    if (match->id != XCB_NONE && window->id == match->id) {
+        LOG("match made by window id (%d)\n", window->id);
+        return true;
+    }
+
+    LOG("window %d (%s) could not be matched\n", window->id, window->class_class);
+
+    return false;
+}
+