#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);
#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);
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[] = {
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);