From: Bastian Dehn Date: Thu, 2 Oct 2025 16:50:47 +0000 (+0200) Subject: change revert rename X-Git-Tag: 1.1.2^2~1^2~3 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=5dba3eb803beef817dcd221b51e65343c1911082;p=mv_none_space.git change revert rename --- diff --git a/src/rename.c b/src/rename.c index be9d32c..527f07c 100644 --- a/src/rename.c +++ b/src/rename.c @@ -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 diff --git a/src/rename.h b/src/rename.h index e0f7616..ac02e59 100644 --- a/src/rename.h +++ b/src/rename.h @@ -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 diff --git a/tests/rename_tests.c b/tests/rename_tests.c index e1e2872..81cfd52 100644 --- a/tests/rename_tests.c +++ b/tests/rename_tests.c @@ -7,26 +7,6 @@ #include #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);