#include "XMLParameters.h" #include #ifdef __APPLE__ #include int _wcsicmp(const wchar_t *str1, const wchar_t *str2) { CFStringRef cfstr1 = CFStringCreateWithBytes(kCFAllocatorDefault, (UInt8 *)str1, wcslen(str1)*sizeof(wchar_t), kCFStringEncodingUTF32, false); CFStringRef cfstr2 = CFStringCreateWithBytes(kCFAllocatorDefault, (UInt8 *)str2, wcslen(str2)*sizeof(wchar_t), kCFStringEncodingUTF32, false); int result = CFStringCompare(cfstr1, cfstr2, kCFCompareCaseInsensitive); CFRelease(cfstr1); CFRelease(cfstr2); return result; } #endif XMLParameters::XMLParameters(const wchar_t **_parameters) : parameters(_parameters), numParameters(0), numParametersCalculated(false) { } void XMLParameters::CountTo(int x) { if (numParametersCalculated || x < numParameters) return; while (1) { if (parameters[numParameters*2] == 0) { numParametersCalculated=true; return; } numParameters++; if (numParameters == x) return; } } void XMLParameters::Count() { if (numParametersCalculated) return; while (1) { if (parameters[numParameters*2] == 0) { numParametersCalculated=true; return; } numParameters++; } } const wchar_t *XMLParameters::GetItemName(int i) { CountTo(i); if (i < numParameters) return parameters[i*2]; else return 0; } const wchar_t *XMLParameters::GetItemValueIndex(int i) { CountTo(i); if (i < numParameters) return parameters[i*2+1]; else return 0; } int XMLParameters::GetNumItems() { Count(); return numParameters; } const wchar_t *XMLParameters::GetItemValue(const wchar_t *name) { int i=0; while(1) { CountTo(i+1); if (i