Browse Source

(mc_search__tolower_case_str, mc_search__tolower_case_str): take GString.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Andrew Borodin 2 years ago
parent
commit
955e88f0d0
3 changed files with 19 additions and 19 deletions
  1. 2 2
      lib/search/internal.h
  2. 11 11
      lib/search/lib.c
  3. 6 6
      lib/search/regex.c

+ 2 - 2
lib/search/internal.h

@@ -42,8 +42,8 @@ GString *mc_search__recode_str (const char *str, gsize str_len, const char *char
                                 const char *charset_to);
 GString *mc_search__get_one_symbol (const char *charset, const char *str, gsize str_len,
                                     gboolean * just_letters);
-GString *mc_search__tolower_case_str (const char *charset, const char *str, gsize str_len);
-GString *mc_search__toupper_case_str (const char *charset, const char *str, gsize str_len);
+GString *mc_search__tolower_case_str (const char *charset, const GString * str);
+GString *mc_search__toupper_case_str (const char *charset, const GString * str);
 
 /* search/regex.c : */
 

+ 11 - 11
lib/search/lib.c

@@ -60,21 +60,20 @@ typedef gboolean (*case_conv_fn) (const char *ch, char **out, size_t * remain);
 /* --------------------------------------------------------------------------------------------- */
 
 static GString *
-mc_search__change_case_str (const char *charset, const char *str, gsize str_len,
-                            case_conv_fn case_conv)
+mc_search__change_case_str (const char *charset, const GString * str, case_conv_fn case_conv)
 {
     GString *ret;
+    const char *src_ptr;
     gchar *dst_str;
     gchar *dst_ptr;
     gsize dst_len;
 #ifdef HAVE_CHARSET
     GString *converted_str;
-    const char *src_ptr;
 
     if (charset == NULL)
         charset = cp_source;
 
-    converted_str = mc_search__recode_str (str, str_len, charset, cp_display);
+    converted_str = mc_search__recode_str (str->str, str->len, charset, cp_display);
 
     dst_str = g_malloc (converted_str->len);
     dst_len = converted_str->len + 1;   /* +1 is required for str_toupper/str_tolower */
@@ -92,10 +91,11 @@ mc_search__change_case_str (const char *charset, const char *str, gsize str_len,
 #else
     (void) charset;
 
-    dst_str = g_malloc (str_len);
-    dst_len = str_len + 1;      /* +1 is required for str_toupper/str_tolower */
+    dst_str = g_malloc (str->len);
+    dst_len = str->len + 1;     /* +1 is required for str_toupper/str_tolower */
 
-    for (dst_ptr = dst_str; case_conv (str, &dst_ptr, &dst_len); str += str_length_char (str))
+    for (src_ptr = str->str, dst_ptr = dst_str;
+         case_conv (src_ptr, &dst_ptr, &dst_len); src_ptr += str_length_char (src_ptr))
         ;
     *dst_ptr = '\0';
 
@@ -187,17 +187,17 @@ mc_search__get_one_symbol (const char *charset, const char *str, gsize str_len,
 /* --------------------------------------------------------------------------------------------- */
 
 GString *
-mc_search__tolower_case_str (const char *charset, const char *str, gsize str_len)
+mc_search__tolower_case_str (const char *charset, const GString * str)
 {
-    return mc_search__change_case_str (charset, str, str_len, str_tolower);
+    return mc_search__change_case_str (charset, str, str_tolower);
 }
 
 /* --------------------------------------------------------------------------------------------- */
 
 GString *
-mc_search__toupper_case_str (const char *charset, const char *str, gsize str_len)
+mc_search__toupper_case_str (const char *charset, const GString * str)
 {
-    return mc_search__change_case_str (charset, str, str_len, str_toupper);
+    return mc_search__change_case_str (charset, str, str_toupper);
 }
 
 /* --------------------------------------------------------------------------------------------- */

+ 6 - 6
lib/search/regex.c

@@ -127,8 +127,8 @@ mc_search__cond_struct_new_regex_hex_add (const char *charset, GString * str_to,
     GString *upp, *low;
     gsize loop;
 
-    upp = mc_search__toupper_case_str (charset, one_char->str, one_char->len);
-    low = mc_search__tolower_case_str (charset, one_char->str, one_char->len);
+    upp = mc_search__toupper_case_str (charset, one_char);
+    low = mc_search__tolower_case_str (charset, one_char);
 
     for (loop = 0; loop < upp->len; loop++)
     {
@@ -649,23 +649,23 @@ mc_search_regex__process_append_str (GString * dest_str, const char *from, gsize
         if ((*replace_flags & REPLACE_T_UPP_TRANSFORM_CHAR) != 0)
         {
             *replace_flags &= ~REPLACE_T_UPP_TRANSFORM_CHAR;
-            tmp_string = mc_search__toupper_case_str (NULL, s->str, char_len);
+            tmp_string = mc_search__toupper_case_str (NULL, s);
             g_string_append_len (dest_str, tmp_string->str, tmp_string->len);
         }
         else if ((*replace_flags & REPLACE_T_LOW_TRANSFORM_CHAR) != 0)
         {
             *replace_flags &= ~REPLACE_T_LOW_TRANSFORM_CHAR;
-            tmp_string = mc_search__tolower_case_str (NULL, s->str, char_len);
+            tmp_string = mc_search__tolower_case_str (NULL, s);
             g_string_append_len (dest_str, tmp_string->str, tmp_string->len);
         }
         else if ((*replace_flags & REPLACE_T_UPP_TRANSFORM) != 0)
         {
-            tmp_string = mc_search__toupper_case_str (NULL, s->str, char_len);
+            tmp_string = mc_search__toupper_case_str (NULL, s);
             g_string_append_len (dest_str, tmp_string->str, tmp_string->len);
         }
         else if ((*replace_flags & REPLACE_T_LOW_TRANSFORM) != 0)
         {
-            tmp_string = mc_search__tolower_case_str (NULL, s->str, char_len);
+            tmp_string = mc_search__tolower_case_str (NULL, s);
             g_string_append_len (dest_str, tmp_string->str, tmp_string->len);
         }