]> gitweb.hhaalo.de Git - mv_none_space.git/commitdiff
add rename with trim points
authorBastian Dehn <hhaalo@arcor.de>
Tue, 16 Jul 2024 16:42:23 +0000 (18:42 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 16 Jul 2024 16:42:23 +0000 (18:42 +0200)
src/rename.c
src/rename.h
tests/rename_tests.c

index f94856323ffebcff5c07ba887e126e10709690cc..516770b58546e2b6f469bc7bbd73622735594512 100644 (file)
@@ -1,7 +1,30 @@
 #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);
index 99a4f401fae708a94455887e41b97007cf5a1fac..19f4cdd8677a89bc91dc7c3b2b5ee4164f4a22fa 100644 (file)
@@ -4,6 +4,7 @@
 #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);
 
index 5a7693bedcec68c1b1157e2bbab9ddff86494f2d..4cc58ecfbc29c9014710ccc971ed32f8eb86efab 100644 (file)
@@ -117,6 +117,16 @@ void rename_lower_case(void **state)
        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[] = {
@@ -129,6 +139,7 @@ int main()
                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);