]> gitweb.hhaalo.de Git - mv_none_space.git/commitdiff
change revert rename
authorBastian Dehn <hhaalo@arcor.de>
Thu, 2 Oct 2025 16:50:47 +0000 (18:50 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Thu, 2 Oct 2025 16:50:47 +0000 (18:50 +0200)
src/rename.c
src/rename.h
tests/rename_tests.c

index be9d32cc002ef4af3909c13439a775bb3b18bde3..527f07cc04d2f4ea8be7b86ef301cafc8335e47d 100644 (file)
@@ -218,7 +218,7 @@ void rename_revert_str(const char* src, char* dst)
 {
        int len = strlen(src);
        int dstcounter = 0;
-       for (int i = 0;i < len; i++) {
+       for (int i = 0; i < len; i++) {
                if (src[i] == '_') {
                        dst[dstcounter++] = SPACE;
                } else if (src[i] == 'a' && src[i + 1] == 'e') {
@@ -253,4 +253,53 @@ void rename_revert_str(const char* src, char* dst)
                        dst[dstcounter++] = src[i];
                }
        }
+}
+
+char* rename_revert(const char* src)
+{
+       size_t length = strlen(src);
+       int dest_count = 0;
+       char* dest = malloc(sizeof(char) * STR_MAX_LENGTH);
+
+       for (int i = 0; i < length; i++) {
+               if (src[i] == '_') {
+                       dest[dest_count++] = SPACE;
+               } else if (src[i] == 'a' && src[i + 1] == 'e') {
+                       i++;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_a;
+               } else if (src[i] == 'A' && src[i + 1] == 'e') {
+                       i++;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_A;
+               } else if (src[i] == 'o' && src[i + 1] == 'e') {
+                       i++;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_o;
+               } else if (src[i] == 'O' && src[i + 1] == 'e') {
+                       i++;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_O;
+               } else if (src[i] == 'u' && src[i + 1] == 'e') {
+                       i++;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_u;
+               } else if (src[i] == 'U' && src[i + 1] == 'e') {
+                       i++;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_U;
+               } else if (src[i] == 's' && src[i + 1] == 's') {
+                       i++;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+                       dest[dest_count++] = WIDE_CHAR_SHORT_SS;
+               } else {
+                       dest[dest_count++] = src[i];
+               }
+       }
+
+       dest[dest_count] = '\0';
+       length = strlen(dest) + 1;
+       dest = realloc(dest, sizeof(char) * length);
+
+       return dest;
 }
\ No newline at end of file
index e0f76163c599b5f425766132c859f6445b8718e7..ac02e591c810e63dd9f940554cc44bb2d7d67dce 100644 (file)
@@ -42,5 +42,6 @@ char* rename_lower(const char* src);
 __attribute_deprecated__ void rename_str(const char* src, char* dst);
 char* rename_string(const char* src);
 __attribute_deprecated__ void rename_revert_str(const char* src, char* dst);
+char* rename_revert(const char* src);
 
 #endif
\ No newline at end of file
index e1e287227c95855c6374cd149bd7f134076ee3e4..81cfd524559cc2925cadb69a03a8c5a2f8bfe931 100644 (file)
@@ -7,26 +7,6 @@
 #include <string.h>
 #include "../src/rename.h"
 
-int  setup(void **state)
-{
-       char* output = malloc(sizeof(char) * STR_MAX_LENGTH);
-       memset(output, 0, STR_MAX_LENGTH);
-
-       *state = output;
-
-       return 0;
-}
-
-int teardown(void **state)
-{
-       char* output = (char*) *state;
-
-       free(output);
-       output = NULL;
-
-       return 0;
-}
-
 void rename_spaces()
 {
        char* input = "Dies ist ein Test Satz";
@@ -159,84 +139,100 @@ void escape_test()
        output = NULL;
 }
 
-void rename_revert_spaces(void **state)
+void rename_revert_spaces()
 {
-       char* output = (char*) *state;
        char* input = "Dies_ist_ein_Test_Satz";
 
-       rename_revert_str(input, output);
+       char* output = rename_revert(input);
 
        assert_string_equal(output, "Dies ist ein Test Satz");
+
+       free(output);
+       output = NULL;
 }
 
-void rename_revert_ae(void **state)
+void rename_revert_ae()
 {
-       char* output = (char*) *state;
        char* input = "waere";
 
-       rename_revert_str(input, output);
+       char* output = rename_revert(input);
 
        assert_string_equal(output, "wäre");
+
+       free(output);
+       output = NULL;
 }
 
-void rename_revert_Ae(void **state)
+void rename_revert_Ae()
 {
-       char* output = (char*) *state;
        char* input = "Aechtzen";
 
-       rename_revert_str(input, output);
+       char* output = rename_revert(input);
 
        assert_string_equal(output, "Ächtzen");
+
+       free(output);
+       output = NULL;
 }
 
-void rename_revert_oe(void **state)
+void rename_revert_oe()
 {
-       char* output = (char*) *state;
        char* input = "Koenig";
 
-       rename_revert_str(input, output);
+       char* output = rename_revert(input);
 
        assert_string_equal(output, "König");
+
+       free(output);
+       output = NULL;
 }
 
-void rename_revert_Oe(void **state)
+void rename_revert_Oe()
 {
-       char* output = (char*) *state;
        char* input = "Oekosystem";
 
-       rename_revert_str(input, output);
+       char* output = rename_revert(input);
 
        assert_string_equal(output, "Ökosystem");
+
+       free(output);
+       output = NULL;
 }
 
-void rename_revert_ue(void **state)
+void rename_revert_ue()
 {
-       char* output = (char*) *state;
        char* input = "bruellt";
 
-       rename_revert_str(input, output);
+       char* output = rename_revert(input);
 
        assert_string_equal(output, "brüllt");
+
+       free(output);
+       output = NULL;
 }
 
-void rename_revert_Ue(void **state)
+void rename_revert_Ue()
 {
-       char* output = (char*) *state;
        char* input = "Ueberlastung";
 
-       rename_revert_str(input, output);
+       char* output = rename_revert(input);
 
        assert_string_equal(output, "Überlastung");
+
+       free(output);
+       output = NULL;
 }
 
-void rename_revert_ss(void **state)
+void rename_revert_ss()
 {
-       char* output = (char*) *state;
        char* input = "Gruss";
 
-       rename_revert_str(input, output);
+       char* output = rename_revert(input);
 
        assert_string_equal(output, "Gruß");
+
+       free(output);
+       output = NULL;
 }
 
 int main()
@@ -253,14 +249,14 @@ int main()
                cmocka_unit_test(rename_lower_case),
                cmocka_unit_test(rename_point_case),
                cmocka_unit_test(escape_test),
-               cmocka_unit_test_setup_teardown(rename_revert_spaces, setup, teardown),
-               cmocka_unit_test_setup_teardown(rename_revert_ae, setup, teardown),
-               cmocka_unit_test_setup_teardown(rename_revert_Ae, setup, teardown),
-               cmocka_unit_test_setup_teardown(rename_revert_oe, setup, teardown),
-               cmocka_unit_test_setup_teardown(rename_revert_Oe, setup, teardown),
-               cmocka_unit_test_setup_teardown(rename_revert_ue, setup, teardown),
-               cmocka_unit_test_setup_teardown(rename_revert_Ue, setup, teardown),
-               cmocka_unit_test_setup_teardown(rename_revert_ss, setup, teardown),
+               cmocka_unit_test(rename_revert_spaces),
+               cmocka_unit_test(rename_revert_ae),
+               cmocka_unit_test(rename_revert_Ae),
+               cmocka_unit_test(rename_revert_oe),
+               cmocka_unit_test(rename_revert_Oe),
+               cmocka_unit_test(rename_revert_ue),
+               cmocka_unit_test(rename_revert_Ue),
+               cmocka_unit_test(rename_revert_ss),
        };
 
        return cmocka_run_group_tests(tests, NULL, NULL);