GString * mc_search_prepare_replace_str (mc_search_t * lc_mc_search, GString * replace_str) { GString *ret; if (lc_mc_search == NULL) return g_string_new_len (replace_str->str, replace_str->len); if (replace_str == NULL || replace_str->str == NULL || replace_str->len == 0) return g_string_new (""); switch (lc_mc_search->search_type) { case MC_SEARCH_T_REGEX: ret = mc_search_regex_prepare_replace_str (lc_mc_search, replace_str); break; case MC_SEARCH_T_GLOB: ret = mc_search_glob_prepare_replace_str (lc_mc_search, replace_str); break; case MC_SEARCH_T_NORMAL: ret = mc_search_normal_prepare_replace_str (lc_mc_search, replace_str); break; case MC_SEARCH_T_HEX: ret = mc_search_hex_prepare_replace_str (lc_mc_search, replace_str); break; default: ret = g_string_new_len (replace_str->str, replace_str->len); break; } return ret; }
GString * mc_search_glob_prepare_replace_str (mc_search_t * lc_mc_search, GString * replace_str) { GString *repl = mc_search__translate_replace_glob_to_regex (replace_str->str); GString *res = mc_search_regex_prepare_replace_str (lc_mc_search, repl); g_string_free (repl, TRUE); return res; }