From: Bastian Dehn Date: Tue, 16 Jul 2024 11:16:23 +0000 (+0200) Subject: add char ae X-Git-Tag: 1.0.0^2^2~25 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=96d9b0dc47ab91829437ce93acc6eaffb2c2de1b;p=mv_none_space.git add char ae --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 8395857..e10469d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.25.1) -SET(CMAKE_C_FLAGS "-g -fsanitize=address") +SET(CMAKE_C_FLAGS "-g -Wall -fsanitize=address") MESSAGE(STATUS "CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}") PROJECT(mv_none_space) diff --git a/src/rename.c b/src/rename.c index 9db5fc7..3eec6ab 100644 --- a/src/rename.c +++ b/src/rename.c @@ -5,14 +5,20 @@ void rename_str(char* src, char* dst) { int len = strlen(src); + int dstcounter = 0; for (int i = 0; i < len; i++) { - switch(src[i]) { - case ' ': - dst[i] = '_'; - break; - default: - dst[i] = src[i]; - break; + if (src[i] == ' ') { + dst[dstcounter++] = '_'; + } else if (src[i] == 0xffffffc3 && src[i + 1] == 0xffffffa4) { + i++; + dst[dstcounter++] = 'a'; + dst[dstcounter++] = 'e'; + } else if (src[i] == 0xffffffc3 && src[i + 1] == 0xffffff84) { + i++; + dst[dstcounter++] = 'A'; + dst[dstcounter++] = 'e'; + } else { + dst[dstcounter++] = src[i]; } } } \ No newline at end of file diff --git a/tests/rename_tests.c b/tests/rename_tests.c index b8891c6..b45009a 100644 --- a/tests/rename_tests.c +++ b/tests/rename_tests.c @@ -37,10 +37,32 @@ void rename_spaces(void **state) assert_string_equal(output, "Dies_ist_ein_Test_Satz"); } +void rename_ae(void **state) +{ + char* output = (char*) *state; + char* input = "wäre"; + + rename_str(input, output); + + assert_string_equal(output, "waere"); +} + +void rename_Ae(void **state) +{ + char* output = (char*) *state; + char* input = "Ächtzen"; + + rename_str(input, output); + + assert_string_equal(output, "Aechtzen"); +} + int main() { const struct CMUnitTest tests[] = { - cmocka_unit_test_setup_teardown(rename_spaces, setup, teardown) + cmocka_unit_test_setup_teardown(rename_spaces, setup, teardown), + cmocka_unit_test_setup_teardown(rename_ae, setup, teardown), + cmocka_unit_test_setup_teardown(rename_Ae, setup, teardown) }; return cmocka_run_group_tests(tests, NULL, NULL);