blob: 2b7bde7bbe9ce9f92f262b392272d3c920a48253 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include "memory.h"
struct array_container {
char *string;
size_t lenght;
};
int strcoll(char const *string1, char const *string2)
{
char const *string[2] = {string1, string2};
struct array_container normalized[2];
for (size_t i = 0; i < ((sizeof normalized) / (sizeof normalized[0]));
i++) {
normalized[i].lenght = 1 + _strxfrm_wrap(NULL, string[i], 0);
normalized[i].string = reallocarray(
NULL, normalized[i].lenght, sizeof *(normalized[i].string));
_strxfrm_wrap(normalized[i].string, string[i],
normalized[i].lenght);
}
int res = strcmp(normalized[0].string, normalized[1].string);
for (size_t i = 0; i < ((sizeof normalized) / (sizeof normalized[0]));
i++)
_free_wrap(normalized[i].string);
return res;
}
|