diff --git a/src/match.c b/src/match.c
index b5d4c30f2422618a0a6f3ee125d2420f8ff4c5f5..9e4c39148483210b21e656a9bc2648bdcc859b00 100644 (file)
--- a/src/match.c
+++ b/src/match.c
/* ncmpc (Ncurses MPD Client)
/* ncmpc (Ncurses MPD Client)
- * (c) 2004-2010 The Music Player Daemon Project
+ * (c) 2004-2017 The Music Player Daemon Project
* Project homepage: http://musicpd.org
*
* This program is free software; you can redistribute it and/or modify
* Project homepage: http://musicpd.org
*
* This program is free software; you can redistribute it and/or modify
GRegex *
compile_regex(const char *src, bool anchor)
{
GRegex *
compile_regex(const char *src, bool anchor)
{
- GRegex *regex;
- GRegexCompileFlags compile_flags;
- char *src_folded = locale_casefold(src);
-
- compile_flags = G_REGEX_CASELESS | G_REGEX_DOTALL | G_REGEX_OPTIMIZE;
+ GRegexCompileFlags compile_flags =
+ G_REGEX_CASELESS | G_REGEX_DOTALL | G_REGEX_OPTIMIZE;
if (anchor)
compile_flags |= G_REGEX_ANCHORED;
if (anchor)
compile_flags |= G_REGEX_ANCHORED;
- regex = g_regex_new ((const gchar*)src_folded, compile_flags, 0, NULL);
+ char *src_folded = locale_casefold(src);
+ GRegex *regex = g_regex_new ((const gchar*)src_folded, compile_flags,
+ 0, NULL);
g_free(src_folded);
g_free(src_folded);
bool
match_regex(GRegex *regex, const char *line)
{
bool
match_regex(GRegex *regex, const char *line)
{
- GMatchInfo *match_info;
- bool match;
char *line_folded = locale_casefold(line);
char *line_folded = locale_casefold(line);
-
+ GMatchInfo *match_info;
g_regex_match(regex, line_folded, 0, &match_info);
g_regex_match(regex, line_folded, 0, &match_info);
- match = (bool)g_match_info_matches(match_info);
+ bool match = (bool)g_match_info_matches(match_info);
g_match_info_free(match_info);
g_free(line_folded);
g_match_info_free(match_info);
g_free(line_folded);
char *line_folded = locale_casefold(line);
char *needle_folded = locale_casefold(needle);
char *line_folded = locale_casefold(line);
char *needle_folded = locale_casefold(needle);
-#if GLIB_CHECK_VERSION(2,14,0)
bool ret = (bool)g_regex_match_simple((const gchar*)needle_folded,
(const gchar*)line_folded,
G_REGEX_CASELESS | G_REGEX_DOTALL | G_REGEX_OPTIMIZE,
0);
bool ret = (bool)g_regex_match_simple((const gchar*)needle_folded,
(const gchar*)line_folded,
G_REGEX_CASELESS | G_REGEX_DOTALL | G_REGEX_OPTIMIZE,
0);
-#else
- bool ret = strstr(line_folded, needle_folded) != NULL;
-#endif
g_free(line_folded);
g_free(needle_folded);
g_free(line_folded);
g_free(needle_folded);