- /* sd->search_name is converted in search_start() */
- gchar *haystack = g_utf8_strdown(fd_name_or_path, -1);
- match = g_regex_match(sd->search_name_regex, haystack, static_cast<GRegexMatchFlags>(0), nullptr);
- g_free(haystack);
+ const gchar *fd_name_or_path;
+ if (sd->match_name == SEARCH_MATCH_NAME_CONTAINS)
+ {
+ fd_name_or_path = fd->name;
+ }
+ else
+ {
+ fd_name_or_path = fd->path;
+ }
+ if (sd->search_name_match_case)
+ {
+ match = g_regex_match(sd->search_name_regex, fd_name_or_path, static_cast<GRegexMatchFlags>(0), nullptr);
+ }
+ else
+ {
+ /* sd->search_name is converted in search_start() */
+ gchar *haystack = g_utf8_strdown(fd_name_or_path, -1);
+ match = g_regex_match(sd->search_name_regex, haystack, static_cast<GRegexMatchFlags>(0), nullptr);
+ g_free(haystack);
+ }