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)
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
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);