{
int len = strlen(src);
int dstcounter = 0;
- for (int i = 0;i < len; i++) {
+ for (int i = 0; i < len; i++) {
if (src[i] == '_') {
dst[dstcounter++] = SPACE;
} else if (src[i] == 'a' && src[i + 1] == 'e') {
dst[dstcounter++] = src[i];
}
}
+}
+
+char* rename_revert(const char* src)
+{
+ size_t length = strlen(src);
+ int dest_count = 0;
+ char* dest = malloc(sizeof(char) * STR_MAX_LENGTH);
+
+ for (int i = 0; i < length; i++) {
+ if (src[i] == '_') {
+ dest[dest_count++] = SPACE;
+ } else if (src[i] == 'a' && src[i + 1] == 'e') {
+ i++;
+ dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+ dest[dest_count++] = WIDE_CHAR_SHORT_a;
+ } else if (src[i] == 'A' && src[i + 1] == 'e') {
+ i++;
+ dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+ dest[dest_count++] = WIDE_CHAR_SHORT_A;
+ } else if (src[i] == 'o' && src[i + 1] == 'e') {
+ i++;
+ dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+ dest[dest_count++] = WIDE_CHAR_SHORT_o;
+ } else if (src[i] == 'O' && src[i + 1] == 'e') {
+ i++;
+ dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+ dest[dest_count++] = WIDE_CHAR_SHORT_O;
+ } else if (src[i] == 'u' && src[i + 1] == 'e') {
+ i++;
+ dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+ dest[dest_count++] = WIDE_CHAR_SHORT_u;
+ } else if (src[i] == 'U' && src[i + 1] == 'e') {
+ i++;
+ dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+ dest[dest_count++] = WIDE_CHAR_SHORT_U;
+ } else if (src[i] == 's' && src[i + 1] == 's') {
+ i++;
+ dest[dest_count++] = WIDE_CHAR_SHORT_PREFIX;
+ dest[dest_count++] = WIDE_CHAR_SHORT_SS;
+ } else {
+ dest[dest_count++] = src[i];
+ }
+ }
+
+ dest[dest_count] = '\0';
+ length = strlen(dest) + 1;
+ dest = realloc(dest, sizeof(char) * length);
+
+ return dest;
}
\ No newline at end of file
#include <string.h>
#include "../src/rename.h"
-int setup(void **state)
-{
- char* output = malloc(sizeof(char) * STR_MAX_LENGTH);
- memset(output, 0, STR_MAX_LENGTH);
-
- *state = output;
-
- return 0;
-}
-
-int teardown(void **state)
-{
- char* output = (char*) *state;
-
- free(output);
- output = NULL;
-
- return 0;
-}
-
void rename_spaces()
{
char* input = "Dies ist ein Test Satz";
output = NULL;
}
-void rename_revert_spaces(void **state)
+void rename_revert_spaces()
{
- char* output = (char*) *state;
char* input = "Dies_ist_ein_Test_Satz";
- rename_revert_str(input, output);
+ char* output = rename_revert(input);
assert_string_equal(output, "Dies ist ein Test Satz");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_ae(void **state)
+void rename_revert_ae()
{
- char* output = (char*) *state;
char* input = "waere";
- rename_revert_str(input, output);
+ char* output = rename_revert(input);
assert_string_equal(output, "wäre");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_Ae(void **state)
+void rename_revert_Ae()
{
- char* output = (char*) *state;
char* input = "Aechtzen";
- rename_revert_str(input, output);
+ char* output = rename_revert(input);
assert_string_equal(output, "Ächtzen");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_oe(void **state)
+void rename_revert_oe()
{
- char* output = (char*) *state;
char* input = "Koenig";
- rename_revert_str(input, output);
+ char* output = rename_revert(input);
assert_string_equal(output, "König");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_Oe(void **state)
+void rename_revert_Oe()
{
- char* output = (char*) *state;
char* input = "Oekosystem";
- rename_revert_str(input, output);
+ char* output = rename_revert(input);
assert_string_equal(output, "Ökosystem");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_ue(void **state)
+void rename_revert_ue()
{
- char* output = (char*) *state;
char* input = "bruellt";
- rename_revert_str(input, output);
+ char* output = rename_revert(input);
assert_string_equal(output, "brüllt");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_Ue(void **state)
+void rename_revert_Ue()
{
- char* output = (char*) *state;
char* input = "Ueberlastung";
- rename_revert_str(input, output);
+ char* output = rename_revert(input);
assert_string_equal(output, "Überlastung");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_ss(void **state)
+void rename_revert_ss()
{
- char* output = (char*) *state;
char* input = "Gruss";
- rename_revert_str(input, output);
+ char* output = rename_revert(input);
assert_string_equal(output, "Gruß");
+
+ free(output);
+ output = NULL;
}
int main()
cmocka_unit_test(rename_lower_case),
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),
- cmocka_unit_test_setup_teardown(rename_revert_Ae, setup, teardown),
- cmocka_unit_test_setup_teardown(rename_revert_oe, setup, teardown),
- cmocka_unit_test_setup_teardown(rename_revert_Oe, setup, teardown),
- cmocka_unit_test_setup_teardown(rename_revert_ue, setup, teardown),
- cmocka_unit_test_setup_teardown(rename_revert_Ue, setup, teardown),
- cmocka_unit_test_setup_teardown(rename_revert_ss, setup, teardown),
+ cmocka_unit_test(rename_revert_spaces),
+ cmocka_unit_test(rename_revert_ae),
+ cmocka_unit_test(rename_revert_Ae),
+ cmocka_unit_test(rename_revert_oe),
+ cmocka_unit_test(rename_revert_Oe),
+ cmocka_unit_test(rename_revert_ue),
+ cmocka_unit_test(rename_revert_Ue),
+ cmocka_unit_test(rename_revert_ss),
};
return cmocka_run_group_tests(tests, NULL, NULL);