mc_search_t * mc_search_new (const gchar * original, const gchar * original_charset) { if (original == NULL) return NULL; return mc_search_new_len (original, strlen (original), original_charset); }
static gboolean mc_fhl_parse_get_extensions (mc_fhl_t * fhl, const gchar * group_name) { mc_fhl_filter_t *mc_filter; gchar **exts, **exts_orig; GString *buf; exts_orig = mc_config_get_string_list (fhl->config, group_name, "extensions", NULL); if (exts_orig == NULL || exts_orig[0] == NULL) { g_strfreev (exts_orig); return FALSE; } buf = g_string_sized_new (64); for (exts = exts_orig; *exts != NULL; exts++) { char *esc_ext; esc_ext = strutils_regex_escape (*exts); if (buf->len != 0) g_string_append_c (buf, '|'); g_string_append (buf, esc_ext); g_free (esc_ext); } g_strfreev (exts_orig); g_string_prepend (buf, ".*\\.("); g_string_append (buf, ")$"); mc_filter = g_new0 (mc_fhl_filter_t, 1); mc_filter->type = MC_FLHGH_T_FREGEXP; mc_filter->search_condition = mc_search_new_len (buf->str, buf->len, DEFAULT_CHARSET); mc_filter->search_condition->is_case_sensitive = mc_config_get_bool (fhl->config, group_name, "extensions_case", TRUE); mc_filter->search_condition->search_type = MC_SEARCH_T_REGEX; mc_fhl_parse_fill_color_info (mc_filter, fhl, group_name); g_ptr_array_add (fhl->filters, (gpointer) mc_filter); g_string_free (buf, TRUE); return TRUE; }