]> gitweb.hhaalo.de Git - mv_none_space.git/commitdiff
change escape str
authorBastian Dehn <hhaalo@arcor.de>
Thu, 2 Oct 2025 15:20:12 +0000 (17:20 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Thu, 2 Oct 2025 15:20:12 +0000 (17:20 +0200)
src/rename.c
src/rename.h
tests/rename_tests.c

index 91e70acb4237d3bbd4b3e4eca05477be92869f95..92a0da7d8ff92b459e9348967e80d956895764c3 100644 (file)
@@ -26,6 +26,37 @@ void escape_str(const char* src, char* dst)
        }
 }
 
+char* escape(const char* src)
+{
+       size_t length = strlen(src);
+       char* dest = malloc(sizeof(char) * STR_MAX_LENGTH);
+       int destcounter = 0;
+
+       for (int i = 0; i < length; i++) {
+               switch(src[i]) {
+               case SPACE:
+               case ROUND_BRACKET_OPEN:
+               case ROUND_BRACKET_CLOSE:
+               case BRACKET_OPEN:
+               case BRACKET_CLOSE:
+               case BRACE_OPEN:
+               case BRACE_CLOSE:
+                       dest[destcounter++] = '\\';
+                       dest[destcounter++] = src[i];
+                       break;
+               default:
+                       dest[destcounter++] = src[i];
+                       break;
+               }
+       }
+
+       dest[destcounter] = '\0';
+       length = strlen(dest) + 1;
+       dest = realloc(dest, sizeof(char) * length);;
+
+       return dest;
+}
+
 void rename_point_str(const char* src, char* dst)
 {
        char* tmp_str = NULL;
index 83155d9671c1dece3b8927a637212675f07e5865..d49648fcdf6e87202bb1c0e0805311d5f6eadf46 100644 (file)
 #define WIDE_CHAR_SHORT_U 0x9c
 #define WIDE_CHAR_SHORT_SS 0x9f
 
-typedef void (*rename_func_ptr)(const char* src, char* dst);
-void escape_str(const char* src, char* dst);
-void rename_point_str(const char* src, char* dst);
-void rename_lower_str(const char* src, char* dst);
-void rename_str(const char* src, char* dst);
-void rename_revert_str(const char* src, char* dst);
+__attribute_deprecated__ typedef void (*rename_func_ptr)(const char* src, char* dst);
+typedef char* (*rename_ptr)(const char* src);
+
+__attribute_deprecated__ void escape_str(const char* src, char* dst);
+char* escape(const char* src);
+__attribute_deprecated__ void rename_point_str(const char* src, char* dst);
+__attribute_deprecated__ void rename_lower_str(const char* src, char* dst);
+__attribute_deprecated__ void rename_str(const char* src, char* dst);
+__attribute_deprecated__ void rename_revert_str(const char* src, char* dst);
 
 #endif
\ No newline at end of file
index 4a0c85e64042866d070a66ff743af83e7854ab8d..663b0eb175b5198d0da2bd1497b0dd0085323388 100644 (file)
@@ -127,14 +127,16 @@ void rename_point_case(void **state)
        assert_string_equal(output, "Dies_ist_die_Geschichte_von");
 }
 
-void escape_str_test(void **state)
+void escape_test()
 {
-       char* output = (char*) *state;
-       char* input = "Dies ist [die] (Geschichte) {von}";
+       const char* input = "Dies ist [die] (Geschichte) {von}";
 
-       escape_str(input, output);
+       char* output = escape(input);
 
        assert_string_equal(output, "Dies\\ ist\\ \\[die\\]\\ \\(Geschichte\\)\\ \\{von\\}");
+
+       free(output);
+       output = NULL;
 }
 
 void rename_revert_spaces(void **state)
@@ -230,7 +232,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),
+               cmocka_unit_test(escape_test),
                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),