X-Git-Url: http://Server1/repobrowser/?p=xestiacalendar%2F.git;a=blobdiff_plain;f=source%2Fobjects%2Fcalendarobject%2FCalendarObject.cpp;h=76cb4e6b00a0481ebe3331f2f22f405e5356b8a0;hp=8e33eda12f397e2bfbf43a214f1e165375ee0475;hb=49789773e2797383c866dca470fb99e80cb49e41;hpb=d058825f5e9ae3713e7805071a55e2794f0c3b90 diff --git a/source/objects/calendarobject/CalendarObject.cpp b/source/objects/calendarobject/CalendarObject.cpp index 8e33eda..76cb4e6 100644 --- a/source/objects/calendarobject/CalendarObject.cpp +++ b/source/objects/calendarobject/CalendarObject.cpp @@ -26,15 +26,37 @@ CalendarObjectLoadResult CalendarObject::LoadFile(std::string loadFilename){ // Check if the file exists and return // CALENDAROBJECTLOAD_CANNOTOPEN if not. - if (!FileExists(loadFilename)){ - return CALENDAROBJECTLOAD_MISSING; - } - ifstream fileStream; string receivedStringData = ""; +#ifndef WIN32 + + if (!FileExists(loadFilename)) { + return CALENDAROBJECTLOAD_MISSING; + } + fileStream.open(loadFilename, ifstream::in); - + +#else + + wstring loadFilename_utf16; + + int len = MultiByteToWideChar(CP_UTF8, 0, &loadFilename[0], (int)loadFilename.size(), NULL, 0); + + if (len > 0) + { + loadFilename_utf16.resize(len); + MultiByteToWideChar(CP_UTF8, 0, &loadFilename[0], (int)loadFilename.size(), &loadFilename_utf16[0], len); + } + + if (!FileExists(loadFilename_utf16)) { + return CALENDAROBJECTLOAD_MISSING; + } + + fileStream.open(loadFilename_utf16, ifstream::in); + +#endif + if (fileStream.rdstate() & ifstream::failbit){ return CALENDAROBJECTLOAD_CANNOTOPEN; } @@ -72,7 +94,7 @@ CalendarObjectLoadResult CalendarObject::LoadString(std::string *loadStringData) bool colonFound = false; bool quoteMode = false; char bufferChar = 0; - int stringDataSize = LoadStringData->size(); + int stringDataSize = loadStringData->size(); int seekCount = 0; string propertyName; string propertyValue; @@ -197,8 +219,8 @@ CalendarObjectLoadResult CalendarObject::LoadString(std::string *loadStringData) } - processBaseData(); - processData(); + ProcessBaseData(); + ProcessData(); return stringProcResult; @@ -266,8 +288,8 @@ CalendarObjectValidResult CalendarObject::ValidBaseObject(){ objectData[seekCount] == "VALARM" && validAlarmBegin == true){ - eventAlarmName.push_back(AlarmObjectName); - eventAlarmData.push_back(AlarmObjectData); + eventAlarmName.push_back(alarmObjectName); + eventAlarmData.push_back(alarmObjectData); alarmObjectName.clear(); alarmObjectData.clear();