]> gitweb.hhaalo.de Git - mv_none_space.git/commitdiff
add ae to umlaut
authorBastian Dehn <hhaalo@arcor.de>
Fri, 19 Jul 2024 07:07:41 +0000 (09:07 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Fri, 19 Jul 2024 07:07:41 +0000 (09:07 +0200)
src/rename.c
src/rename.h
tests/rename_tests.c

index e922379a9b88cfd4284b4bf613f793b009266420..02af6c04a06e9af1fd11b5779a9d5fdb7ec2f31a 100644 (file)
@@ -108,6 +108,14 @@ void rename_revert_str(char* src, char* dst)
        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];
                }
index a75afffee67571a9c368c294633e6614f518b598..9eab3b05c49949cb33ff6a1e3350e8064844efdb 100644 (file)
@@ -21,6 +21,9 @@
 #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);
index 53ccaed2d08c2992eaa9e7a88fd185e69279342a..5caa2abac7660f7b0d89a8a0cf4796ac74a6a7d1 100644 (file)
@@ -147,6 +147,26 @@ void rename_revert_spaces(void **state)
        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[] = {
@@ -162,6 +182,8 @@ int main()
                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);