/* * Regexp quote a UTF-8 string. */ void go_regexp_quote (GString *target, const char *s) { g_return_if_fail (target != NULL); g_return_if_fail (s != NULL); while (*s) s = go_regexp_quote1 (target, s); }
int gnm_regcomp_XL (GORegexp *preg, char const *pattern, int cflags, gboolean full) { GString *res = g_string_new (NULL); int retval; if (full) g_string_append_c (res, '^'); while (*pattern) { switch (*pattern) { case '*': g_string_append (res, ".*"); pattern++; break; case '?': g_string_append_c (res, '.'); pattern++; break; case '~': if (pattern[1] == '*' || pattern[1] == '?' || pattern[1] == '~') pattern++; /* Fall through */ default: pattern = go_regexp_quote1 (res, pattern); } } if (full) g_string_append_c (res, '$'); retval = go_regcomp (preg, res->str, cflags); g_string_free (res, TRUE); return retval; }