]> gitweb.hhaalo.de Git - mv_none_space.git/commitdiff
add test for escape str
authorBastian Dehn <hhaalo@arcor.de>
Tue, 16 Jul 2024 20:33:32 +0000 (22:33 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 16 Jul 2024 20:33:32 +0000 (22:33 +0200)
src/rename.c
src/rename.h
tests/rename_tests.c

index 516770b58546e2b6f469bc7bbd73622735594512..b90552c330f7e7ae8a1f7bbd98148e8c99c007e6 100644 (file)
@@ -3,6 +3,27 @@
 #include <string.h>
 #include "rename.h"
 
+void escape_str(char* src, char* dst)
+{
+       int len = strlen(src);
+       int dstcounter = 0;
+       for (int i = 0; i < len; i++) {
+               switch(src[i]) {
+               case 0x20:
+               case 0x28:
+               case 0x29:
+               case 0x5b:
+               case 0x5d:
+                       dst[dstcounter++] = '\\';
+                       dst[dstcounter++] = src[i];
+                       break;
+               default:
+                       dst[dstcounter++] = src[i];
+                       break;
+               }
+       }
+}
+
 void rename_point_str(char* src, char* dst)
 {
        int len = strlen(src);
index 19f4cdd8677a89bc91dc7c3b2b5ee4164f4a22fa..b7aeed838b899f8fcdd3ee829c4f5660836d3a02 100644 (file)
@@ -4,6 +4,7 @@
 #define STR_MAX_LENGTH 1024
 
 typedef void (*rename_func_ptr)(char* src, char* dst);
+void escape_str(char* src, char* dst);
 void rename_point_str(char* src, char* dst);
 void rename_lower_str(char* src, char* dst);
 void rename_str(char* src, char* dst);
index 4cc58ecfbc29c9014710ccc971ed32f8eb86efab..fd38ea6f87411e55488bae624a55d1e69e8333aa 100644 (file)
@@ -127,6 +127,16 @@ void rename_point_case(void **state)
        assert_string_equal(output, "Dies_ist_die_Geschichte_von");
 }
 
+void escape_str_test(void **state)
+{
+       char* output = (char*) *state;
+       char* input = "Dies ist [die] (Geschichte) von";
+
+       escape_str(input, output);
+
+       assert_string_equal(output, "Dies\\ ist\\ \\[die\\]\\ \\(Geschichte\\)\\ von");
+}
+
 int main()
 {
        const struct CMUnitTest tests[] = {
@@ -140,6 +150,7 @@ int main()
                cmocka_unit_test_setup_teardown(rename_scharfes_s, setup, teardown),
                cmocka_unit_test_setup_teardown(rename_lower_case, setup, teardown),
                cmocka_unit_test_setup_teardown(rename_point_case, setup, teardown),
+               cmocka_unit_test_setup_teardown(escape_str_test, setup, teardown),
        };
 
        return cmocka_run_group_tests(tests, NULL, NULL);