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

index d4d7786c10e49b443779cc6913f7a08a8bac6884..be9d32cc002ef4af3909c13439a775bb3b18bde3 100644 (file)
@@ -80,6 +80,27 @@ void rename_point_str(const char* src, char* dst)
        tmp_str = NULL;
 }
 
+char* rename_point(const char* src)
+{
+       char* dest = rename_string(src);
+
+       size_t length = strlen(dest);
+       int point_count = 0;
+       for (int i = length - 1; i > -1; i--) {
+               if (dest[i] == POINT)
+                       point_count++;
+
+               if (dest[i] != POINT)
+                       break;
+       }
+
+       dest[length - point_count] = '\0';
+       length = strlen(dest) + 1;
+       dest = realloc(dest, sizeof(char) * length);
+
+       return dest;
+}
+
 void rename_lower_str(const char* src, char* dst)
 {
        rename_str(src, dst);
@@ -94,7 +115,7 @@ void rename_lower_str(const char* src, char* dst)
 char* rename_lower(const char* src)
 {
        char* dest = rename_string(src);
-       int length = strlen(dest);
+       size_t length = strlen(dest);
        for (int i = 0; i < length; i++) {
                if (dest[i] >= A && dest[i] <= Z)
                        dest[i] += SPACE;
index 9514ffba4a40981dea89cc6938ca928bbb2f6dff..e0f76163c599b5f425766132c859f6445b8718e7 100644 (file)
@@ -36,6 +36,7 @@ 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);
+char* rename_point(const char* src);
 __attribute_deprecated__ void rename_lower_str(const char* src, char* dst);
 char* rename_lower(const char* src);
 __attribute_deprecated__ void rename_str(const char* src, char* dst);
index 010234b5b2f81d15daa3386d0756977ca3692d80..5b23d20a55c01bbeeee8550502a747d23f0b5f67 100644 (file)
@@ -135,14 +135,16 @@ void rename_lower_case()
        output = NULL;
 }
 
-void rename_point_case(void **state)
+void rename_point_case()
 {
-       char* output = (char*) *state;
        char* input = "Dies ist die Geschichte von...........";
 
-       rename_point_str(input, output);
+       char* output = rename_point(input);
 
        assert_string_equal(output, "Dies_ist_die_Geschichte_von");
+
+       free(output);
+       output = NULL;
 }
 
 void escape_test()
@@ -249,7 +251,7 @@ int main()
                cmocka_unit_test(rename_Ue),
                cmocka_unit_test(rename_scharfes_s),
                cmocka_unit_test(rename_lower_case),
-               cmocka_unit_test_setup_teardown(rename_point_case, setup, teardown),
+               cmocka_unit_test(rename_point_case),
                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),