]> gitweb.hhaalo.de Git - mv_none_space.git/commitdiff
add char ae
authorBastian Dehn <hhaalo@arcor.de>
Tue, 16 Jul 2024 11:16:23 +0000 (13:16 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 16 Jul 2024 11:16:23 +0000 (13:16 +0200)
CMakeLists.txt
src/rename.c
tests/rename_tests.c

index 8395857b14cd75121f4dc7719b2e6ddb1851b53d..e10469d2d5bb4fda133cc6dcd73022e1c4f2fd7e 100644 (file)
@@ -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)
index 9db5fc7b57942f97fecdc22e0df71684f5259483..3eec6ab2553ecf97c3241d040859d32c925ef610 100644 (file)
@@ -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
index b8891c62157af009c8ea515e782e05ad7b634386..b45009adb7025bdfbfe90274b35735903a0d2a89 100644 (file)
@@ -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);