From 744762069edf650de8f8cf1b84d3c630a2450572 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Fri, 19 Jul 2024 09:12:21 +0200 Subject: [PATCH] add revert oe 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 02af6c0..136e2a4 100644 --- a/src/rename.c +++ b/src/rename.c @@ -116,6 +116,14 @@ void rename_revert_str(char* src, char* dst) i++; dst[dstcounter++] = WIDE_CHAR_SHORT_PREFIX; dst[dstcounter++] = WIDE_CHAR_SHORT_A; + } else if (src[i] == 'o' && src[i + 1] == 'e') { + i++; + dst[dstcounter++] = WIDE_CHAR_SHORT_PREFIX; + dst[dstcounter++] = WIDE_CHAR_SHORT_o; + } else if (src[i] == 'O' && src[i + 1] == 'e') { + i++; + dst[dstcounter++] = WIDE_CHAR_SHORT_PREFIX; + dst[dstcounter++] = WIDE_CHAR_SHORT_O; } else { dst[dstcounter++] = src[i]; } diff --git a/src/rename.h b/src/rename.h index 9eab3b0..e29cf07 100644 --- a/src/rename.h +++ b/src/rename.h @@ -24,6 +24,8 @@ #define WIDE_CHAR_SHORT_PREFIX 0xc3 #define WIDE_CHAR_SHORT_a 0xa4 #define WIDE_CHAR_SHORT_A 0x84 +#define WIDE_CHAR_SHORT_o 0xb6 +#define WIDE_CHAR_SHORT_O 0x96 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 5caa2ab..c470efa 100644 --- a/tests/rename_tests.c +++ b/tests/rename_tests.c @@ -167,6 +167,26 @@ void rename_revert_Ae(void **state) assert_string_equal(output, "Ächtzen"); } +void rename_revert_oe(void **state) +{ + char* output = (char*) *state; + char* input = "Koenig"; + + rename_revert_str(input, output); + + assert_string_equal(output, "König"); +} + +void rename_revert_Oe(void **state) +{ + char* output = (char*) *state; + char* input = "Oekosystem"; + + rename_revert_str(input, output); + + assert_string_equal(output, "Ökosystem"); +} + int main() { const struct CMUnitTest tests[] = { @@ -184,6 +204,8 @@ int main() 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), }; return cmocka_run_group_tests(tests, NULL, NULL); -- 2.39.5