gboolean mc_search_run (mc_search_t * lc_mc_search, const void *user_data, gsize start_search, gsize end_search, gsize * found_len) { gboolean ret = FALSE; if (!lc_mc_search) return FALSE; if (!mc_search_is_type_avail (lc_mc_search->search_type)) { lc_mc_search->error = MC_SEARCH_E_INPUT; lc_mc_search->error_str = g_strdup (_(STR_E_UNKNOWN_TYPE)); return FALSE; } #ifdef SEARCH_TYPE_GLIB if (lc_mc_search->regex_match_info) { g_match_info_free (lc_mc_search->regex_match_info); lc_mc_search->regex_match_info = NULL; } #endif /* SEARCH_TYPE_GLIB */ lc_mc_search->error = MC_SEARCH_E_OK; g_free (lc_mc_search->error_str); lc_mc_search->error_str = NULL; if ((lc_mc_search->conditions == NULL) && !mc_search_prepare (lc_mc_search)) return FALSE; switch (lc_mc_search->search_type) { case MC_SEARCH_T_NORMAL: ret = mc_search__run_normal (lc_mc_search, user_data, start_search, end_search, found_len); break; case MC_SEARCH_T_REGEX: ret = mc_search__run_regex (lc_mc_search, user_data, start_search, end_search, found_len); break; case MC_SEARCH_T_GLOB: ret = mc_search__run_glob (lc_mc_search, user_data, start_search, end_search, found_len); break; case MC_SEARCH_T_HEX: ret = mc_search__run_hex (lc_mc_search, user_data, start_search, end_search, found_len); break; default: break; } return ret; }
gboolean mc_search__run_hex (mc_search_t * lc_mc_search, const void *user_data, gsize start_search, gsize end_search, gsize * found_len) { return mc_search__run_regex (lc_mc_search, user_data, start_search, end_search, found_len); }