コード例 #1
0
ファイル: regex.c プロジェクト: artzub/mc
static void
mc_search__cond_struct_new_regex_accum_append (const char *charset, GString * str_to,
                                               GString * str_from)
{
    GString *recoded_part;
    gsize loop = 0;

    recoded_part = g_string_sized_new (32);

    while (loop < str_from->len)
    {
        gchar *one_char;
        gsize one_char_len;
        gboolean just_letters;

        one_char =
            mc_search__get_one_symbol (charset, &(str_from->str[loop]),
                                       min (str_from->len - loop, 6), &just_letters);
        one_char_len = strlen (one_char);

        if (one_char_len == 0)
            loop++;
        else
        {
            loop += one_char_len;

            if (just_letters)
                mc_search__cond_struct_new_regex_hex_add (charset, recoded_part, one_char,
                                                          one_char_len);
            else
                g_string_append_len (recoded_part, one_char, one_char_len);
        }

        g_free (one_char);
    }

    g_string_append (str_to, recoded_part->str);
    g_string_free (recoded_part, TRUE);
    g_string_set_size (str_from, 0);
}
コード例 #2
0
ファイル: regex.c プロジェクト: sfionov/mc-dev
static void
mc_search__cond_struct_new_regex_accum_append (const char *charset, GString * str_to,
                                               GString * str_from)
{
    GString *recoded_part;
    gchar *one_char;
    gsize loop;
    gboolean just_letters;

    loop = 0;
    recoded_part = g_string_new ("");

    while (loop < str_from->len) {
        one_char =
            mc_search__get_one_symbol (charset, &(str_from->str[loop]),
                                       (str_from->len - loop > 6) ? 6 : str_from->len - loop,
                                       &just_letters);
        if (!strlen (one_char)) {
            loop++;
            continue;
        }
        if (just_letters) {
            mc_search__cond_struct_new_regex_hex_add (charset, recoded_part, one_char,
                                                      strlen (one_char));
        } else {
            g_string_append (recoded_part, one_char);
        }
        loop += strlen (one_char);
        if (!strlen (one_char))
            loop++;
        g_free (one_char);
    }

    g_string_append (str_to, recoded_part->str);
    g_string_free (recoded_part, TRUE);
    g_string_set_size (str_from, 0);
}