Ticket #414: wcscasecmpOSX.patch

File wcscasecmpOSX.patch, 959 bytes (added by Andrew, 14 years ago)

wcscasecmp

  • posix.h

     
    9696
    9797#if OS_MACOSX
    9898# define EMULATE_WCSDUP 1
     99
     100#include <wctype.h>
     101#include <wchar.h>
     102
     103inline 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}
    99134#else
    100135# define EMULATE_WCSDUP 0
    101136#endif