From e5ddd5caf33ccb96ab02a3bf2e16191b70452790 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Fri, 19 Jul 2024 09:24:38 +0200 Subject: [PATCH] add ue to umlaut --- src/rename.c | 8 ++++++++ src/rename.h | 2 ++ tests/rename_tests.c | 22 ++++++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/src/rename.c b/src/rename.c index 136e2a4..8b88e5b 100644 --- a/src/rename.c +++ b/src/rename.c @@ -124,6 +124,14 @@ void rename_revert_str(char* src, char* dst) i++; dst[dstcounter++] = WIDE_CHAR_SHORT_PREFIX; dst[dstcounter++] = WIDE_CHAR_SHORT_O; + } else if (src[i] == 'u' && src[i + 1] == 'e') { + i++; + dst[dstcounter++] = WIDE_CHAR_SHORT_PREFIX; + dst[dstcounter++] = WIDE_CHAR_SHORT_u; + } else if (src[i] == 'U' && src[i + 1] == 'e') { + i++; + dst[dstcounter++] = WIDE_CHAR_SHORT_PREFIX; + dst[dstcounter++] = WIDE_CHAR_SHORT_U; } else { dst[dstcounter++] = src[i]; } diff --git a/src/rename.h b/src/rename.h index e29cf07..c6db8a4 100644 --- a/src/rename.h +++ b/src/rename.h @@ -26,6 +26,8 @@ #define WIDE_CHAR_SHORT_A 0x84 #define WIDE_CHAR_SHORT_o 0xb6 #define WIDE_CHAR_SHORT_O 0x96 +#define WIDE_CHAR_SHORT_u 0xbc +#define WIDE_CHAR_SHORT_U 0x9c typedef void (*rename_func_ptr)(char* src, char* dst); void escape_str(char* src, char* dst); diff --git a/tests/rename_tests.c b/tests/rename_tests.c index c470efa..4d653c7 100644 --- a/tests/rename_tests.c +++ b/tests/rename_tests.c @@ -187,6 +187,26 @@ void rename_revert_Oe(void **state) assert_string_equal(output, "Ökosystem"); } +void rename_revert_ue(void **state) +{ + char* output = (char*) *state; + char* input = "bruellt"; + + rename_revert_str(input, output); + + assert_string_equal(output, "brüllt"); +} + +void rename_revert_Ue(void **state) +{ + char* output = (char*) *state; + char* input = "Ueberlastung"; + + rename_revert_str(input, output); + + assert_string_equal(output, "Überlastung"); +} + int main() { const struct CMUnitTest tests[] = { @@ -206,6 +226,8 @@ int main() 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), }; return cmocka_run_group_tests(tests, NULL, NULL); -- 2.39.5