X-Git-Url: http://Server1/repobrowser/?p=xestiacalendar%2F.git;a=blobdiff_plain;f=source%2Fobjects%2Fcalendarobject%2FCalendarObject.cpp;h=76cb4e6b00a0481ebe3331f2f22f405e5356b8a0;hp=6cfe78bca1f92833583efb58868a7b33b0e143b7;hb=49789773e2797383c866dca470fb99e80cb49e41;hpb=a191ad71a0d6823b9710067c7cccf8905290dc9c diff --git a/source/objects/calendarobject/CalendarObject.cpp b/source/objects/calendarobject/CalendarObject.cpp index 6cfe78b..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; }