#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include "rename.h"
+void rename_point_str(char* src, char* dst)
+{
+ int len = strlen(src);
+ int point_count = 0;
+ for (int i = len - 1; i >= 0; i--) {
+ if (src[i] == 0x2e)
+ point_count++;
+
+ if (src[i] != 0x2e)
+ break;
+ }
+
+ char* tmp_str = malloc(sizeof(char) * len + 1);
+ memset(tmp_str, 0, len + 1);
+ strncpy(tmp_str, src, len - point_count);
+
+ rename_str(tmp_str, dst);
+
+ free(tmp_str);
+ tmp_str = NULL;
+}
+
void rename_lower_str(char* src, char* dst)
{
rename_str(src, dst);
#define STR_MAX_LENGTH 1024
typedef void (*rename_func_ptr)(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, "gruss_gott,_hat_der_biergarten_offen?");
}
+void rename_point_case(void **state)
+{
+ char* output = (char*) *state;
+ char* input = "Dies ist die Geschichte von...........";
+
+ rename_point_str(input, output);
+
+ assert_string_equal(output, "Dies_ist_die_Geschichte_von");
+}
+
int main()
{
const struct CMUnitTest tests[] = {
cmocka_unit_test_setup_teardown(rename_Ue, setup, teardown),
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),
};
return cmocka_run_group_tests(tests, NULL, NULL);