From: Bastian Dehn Date: Thu, 2 Oct 2025 15:20:12 +0000 (+0200) Subject: change escape str X-Git-Tag: 1.1.2^2~1^2~9 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=fbdad98fa7c29380cd1ad4408217e915af8d8bde;p=mv_none_space.git change escape str --- diff --git a/src/rename.c b/src/rename.c index 91e70ac..92a0da7 100644 --- a/src/rename.c +++ b/src/rename.c @@ -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; diff --git a/src/rename.h b/src/rename.h index 83155d9..d49648f 100644 --- a/src/rename.h +++ b/src/rename.h @@ -30,11 +30,14 @@ #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 diff --git a/tests/rename_tests.c b/tests/rename_tests.c index 4a0c85e..663b0eb 100644 --- a/tests/rename_tests.c +++ b/tests/rename_tests.c @@ -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),