]> git.sur5r.net Git - i3/i3/blobdiff - src/regex.c
Update copyright notices and get rid of ranges
[i3/i3] / src / regex.c
index f419e4bbf4e7d1a3cf739b17d12efeb74b1d6c85..9549a98b54ba36980fe956b8957e63d4e21f1c6b 100644 (file)
@@ -1,12 +1,14 @@
+#undef I3__FILE__
+#define I3__FILE__ "regex.c"
 /*
  * vim:ts=4:sw=4:expandtab
  *
  * i3 - an improved dynamic tiling window manager
- * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009 Michael Stapelberg and contributors (see also: LICENSE)
  *
+ * regex.c: Interface to libPCRE (perl compatible regular expressions).
  *
  */
-
 #include "all.h"
 
 /*
@@ -25,9 +27,12 @@ struct regex *regex_new(const char *pattern) {
 
     struct regex *re = scalloc(sizeof(struct regex));
     re->pattern = sstrdup(pattern);
+    int options = PCRE_UTF8;
+#ifdef PCRE_HAS_UCP
     /* We use PCRE_UCP so that \B, \b, \D, \d, \S, \s, \W, \w and some POSIX
      * character classes play nicely with Unicode */
-    int options = PCRE_UCP | PCRE_UTF8;
+    options |= PCRE_UCP;
+#endif
     while (!(re->regex = pcre_compile2(pattern, options, &errorcode, &error, &offset, NULL))) {
         /* If the error is that PCRE was not compiled with UTF-8 support we
          * disable it and try again */
@@ -64,7 +69,7 @@ void regex_free(struct regex *regex) {
 /*
  * Checks if the given regular expression matches the given input and returns
  * true if it does. In either case, it logs the outcome using LOG(), so it will
- * be visible without any debug loglevel.
+ * be visible without debug logging.
  *
  */
 bool regex_matches(struct regex *regex, const char *input) {