summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJari Matilainen <jari.matilainen@gmail.com>2016-03-11 09:12:38 +0100
committerJari Matilainen <jari.matilainen@gmail.com>2016-03-14 22:29:36 +0100
commit94b823c3cd410abb2fa54ecbcf298550d5e2ba88 (patch)
tree67f3e2285eb6261a2a65df17a4463a266d672cd2
parent66e9c4bb39ed5c0b2d9b81e8610e894af82abd8e (diff)
downloadirssi-94b823c3cd410abb2fa54ecbcf298550d5e2ba88.zip
Use glob matching for activity_hide_targets
spaces vs tabs! strarray_find* needs to return -1 if no index found
-rw-r--r--src/core/misc.c18
-rw-r--r--src/core/misc.h1
-rw-r--r--src/fe-common/core/fe-common-core.c2
3 files changed, 20 insertions, 1 deletions
diff --git a/src/core/misc.c b/src/core/misc.c
index aaa470f5..2284d3b1 100644
--- a/src/core/misc.c
+++ b/src/core/misc.c
@@ -181,6 +181,24 @@ int strarray_find(char **array, const char *item)
return -1;
}
+
+int strarray_find_glob(char **array, const char *item)
+{
+ char **tmp;
+ int index;
+
+ g_return_val_if_fail(array != NULL, -1);
+ g_return_val_if_fail(item != NULL, -1);
+
+ index = 0;
+ for (tmp = array; *tmp != NULL; tmp++, index++) {
+ if (g_pattern_match_simple(*tmp, item))
+ return index;
+ }
+
+ return -1;
+}
+
GSList *gslist_find_string(GSList *list, const char *key)
{
for (; list != NULL; list = list->next)
diff --git a/src/core/misc.h b/src/core/misc.h
index 7e78d3b9..dd8bb14c 100644
--- a/src/core/misc.h
+++ b/src/core/misc.h
@@ -111,6 +111,7 @@ char *replace_chars(char *str, char from, char to);
int strarray_length(char **array);
/* return index of `item' in `array' or -1 if not found */
int strarray_find(char **array, const char *item);
+int strarray_find_glob(char **array, const char *item);
/* string -> uoff_t */
uoff_t str_to_uofft(const char *str);
diff --git a/src/fe-common/core/fe-common-core.c b/src/fe-common/core/fe-common-core.c
index ee7f9424..f0549358 100644
--- a/src/fe-common/core/fe-common-core.c
+++ b/src/fe-common/core/fe-common-core.c
@@ -464,7 +464,7 @@ gboolean strarray_find_dest(char **array, const TEXT_DEST_REC *dest)
if (dest->server_tag != NULL) {
char *tagtarget = g_strdup_printf("%s/%s", dest->server_tag, dest->target);
- int ret = strarray_find(array, tagtarget);
+ int ret = strarray_find_glob(array, tagtarget);
g_free(tagtarget);
if (ret != -1)
return TRUE;