| 99 | |
| 100 | #include <wctype.h> |
| 101 | #include <wchar.h> |
| 102 | |
| 103 | inline int wcscasecmp (const wchar_t* s1, const wchar_t* s2) { |
| 104 | wchar_t* s1_lower; |
| 105 | wchar_t* s2_lower; |
| 106 | |
| 107 | int results; |
| 108 | int index; |
| 109 | |
| 110 | s1_lower = (wchar_t*)malloc(sizeof(wchar_t) * wcslen(s1)); |
| 111 | s2_lower = (wchar_t*)malloc(sizeof(wchar_t) * wcslen(s2)); |
| 112 | |
| 113 | wcscpy(s1_lower, s1); |
| 114 | wcscpy(s2_lower, s2); |
| 115 | index = 0; |
| 116 | while (s1_lower[index] != '\0') { |
| 117 | s1_lower[index] = towlower(s1_lower[index]); |
| 118 | index++; |
| 119 | } |
| 120 | |
| 121 | index = 0; |
| 122 | while (s2_lower[index] != '\0') { |
| 123 | s2_lower[index] = towlower(s2_lower[index]); |
| 124 | index++; |
| 125 | } |
| 126 | |
| 127 | result = wcscmp(s1_lower, s2_lower); |
| 128 | free(s1_lower); |
| 129 | free(s2_lower); |
| 130 | |
| 131 | return results; |
| 132 | |
| 133 | } |