for (int i = 0;i < len; i++) {
if (src[i] == '_') {
dst[dstcounter++] = SPACE;
+ } else if (src[i] == 'a' && src[i + 1] == 'e') {
+ i++;
+ dst[dstcounter++] = WIDE_CHAR_SHORT_PREFIX;
+ dst[dstcounter++] = WIDE_CHAR_SHORT_a;
+ } else if (src[i] == 'A' && src[i + 1] == 'e') {
+ i++;
+ dst[dstcounter++] = WIDE_CHAR_SHORT_PREFIX;
+ dst[dstcounter++] = WIDE_CHAR_SHORT_A;
} else {
dst[dstcounter++] = src[i];
}
#define WIDE_CHAR_u 0xffffffbc
#define WIDE_CHAR_U 0xffffff9c
#define WIDE_CHAR_SS 0xffffff9f
+#define WIDE_CHAR_SHORT_PREFIX 0xc3
+#define WIDE_CHAR_SHORT_a 0xa4
+#define WIDE_CHAR_SHORT_A 0x84
typedef void (*rename_func_ptr)(char* src, char* dst);
void escape_str(char* src, char* dst);
assert_string_equal(output, "Dies ist ein Test Satz");
}
+void rename_revert_ae(void **state)
+{
+ char* output = (char*) *state;
+ char* input = "waere";
+
+ rename_revert_str(input, output);
+
+ assert_string_equal(output, "wäre");
+}
+
+void rename_revert_Ae(void **state)
+{
+ char* output = (char*) *state;
+ char* input = "Aechtzen";
+
+ rename_revert_str(input, output);
+
+ assert_string_equal(output, "Ächtzen");
+}
+
int main()
{
const struct CMUnitTest tests[] = {
cmocka_unit_test_setup_teardown(rename_point_case, setup, teardown),
cmocka_unit_test_setup_teardown(escape_str_test, setup, teardown),
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),
};
return cmocka_run_group_tests(tests, NULL, NULL);