X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fobjects%2Fcalendartimezone%2FCalendarTimezone-Save.cpp;h=109d6648e11084fa74eb153b072faad98cbfc8bc;hb=6028a1fc2134c5d1fe9c0147381cf81c4a0ef126;hp=2dc194ef58e700c940ce36f39e2cbf6d51ddd539;hpb=93adeb6d3a5856fac60bbd3165949378e2916947;p=xestiacalendar%2F.git diff --git a/source/objects/calendartimezone/CalendarTimezone-Save.cpp b/source/objects/calendartimezone/CalendarTimezone-Save.cpp index 2dc194e..109d664 100644 --- a/source/objects/calendartimezone/CalendarTimezone-Save.cpp +++ b/source/objects/calendartimezone/CalendarTimezone-Save.cpp @@ -1,266 +1,390 @@ -#include "CalendarTimezone.h" +// Calendartimezone-Save.cpp - Calendartimezone class save functions +// +// (c) 2016-2017 Xestia Software Development. +// +// This file is part of Xestia Calendar. +// +// Xestia Calendar is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by the +// Free Software Foundation, version 3 of the license. +// +// Xestia Calendar is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with Xestia Calendar. If not, see + +#include "Calendartimezone.h" using namespace std; -void CalendarTimezoneObject::SaveObjectData(string *SaveData){ +void CalendartimezoneObject::SaveObjectData(string *saveData){ - string DataLine = ""; - string DataLineProcessed = ""; + string dataLine = ""; + string dataLineProcessed = ""; - *SaveData += "BEGIN:VTIMEZONE\n"; + *saveData += "BEGIN:VTIMEZONE\n"; // Process the TZID. - if (TimeZoneData.size() > 0){ + if (timeZoneData.size() > 0){ - if (TimeZoneDataTokens.size() > 0){ + if (timeZoneDataTokens.size() > 0){ - DataLine += "TZID;"; - DataLine += TimeZoneDataTokens; + dataLine += "TZID;"; + dataLine += timeZoneDataTokens; } else { - DataLine += "TZID"; + dataLine += "TZID"; } - DataLine += ":"; - DataLine += TimeZoneData; - DataLine += "\n"; + dataLine += ":"; + dataLine += timeZoneData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the LAST-MODIFIED value. - if (LastModifiedData.size() > 0){ + if (lastModifiedData.size() > 0){ - if (LastModifiedTokens.size() > 0){ + if (lastModifiedTokens.size() > 0){ - DataLine += "LAST-MODIFIED;"; - DataLine += LastModifiedTokens; + dataLine += "LAST-MODIFIED;"; + dataLine += lastModifiedTokens; } else { - DataLine += "LAST-MODIFIED"; + dataLine += "LAST-MODIFIED"; } - DataLine += ":"; - DataLine += LastModifiedData; - DataLine += "\n"; + dataLine += ":"; + dataLine += lastModifiedData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the TZURL value. - if (TimeZoneURLData.size() > 0){ + if (timeZoneURLData.size() > 0){ - if (TimeZoneURLTokens.size() > 0){ + if (timeZoneURLTokens.size() > 0){ - DataLine += "TZURL;"; - DataLine += TimeZoneURLTokens; + dataLine += "TZURL;"; + dataLine += timeZoneURLTokens; } else { - DataLine += "TZURL"; + dataLine += "TZURL"; } - DataLine += ":"; - DataLine += TimeZoneURLData; - DataLine += "\n"; + dataLine += ":"; + dataLine += timeZoneURLData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process Standard timezones. - if (TimezoneStandardCollection.size() > 0){ + if (timezoneStandardCollection.size() > 0){ - for (int TimezoneStandardSeek = 0; TimezoneStandardSeek < TimezoneStandardCollection.size(); - TimezoneStandardSeek++){ + for (int timezoneStandardSeek = 0; timezoneStandardSeek < timezoneStandardCollection.size(); + timezoneStandardSeek++){ - *SaveData += "BEGIN:STANDARD\n"; + *saveData += "BEGIN:STANDARD\n"; // Process the DTSTART value. - if (TimezoneStandardCollection[TimezoneStandardSeek].DateTimeStartData.size() > 0){ + if (timezoneStandardCollection[timezoneStandardSeek].dateTimeStartData.size() > 0){ - if (TimezoneStandardCollection[TimezoneStandardSeek].DateTimeStartTokens.size() > 0){ + if (timezoneStandardCollection[timezoneStandardSeek].dateTimeStartTokens.size() > 0){ - DataLine += "DTSTART;"; - DataLine += TimezoneStandardCollection[TimezoneStandardSeek].DateTimeStartTokens; + dataLine += "DTSTART;"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].dateTimeStartTokens; } else { - DataLine += "DTSTART"; + dataLine += "DTSTART"; } - DataLine += ":"; - DataLine += TimezoneStandardCollection[TimezoneStandardSeek].DateTimeStartData; - DataLine += "\n"; + dataLine += ":"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].dateTimeStartData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the TZOFFSETFROM value. - if (TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetFromData.size() > 0){ + if (timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetFromData.size() > 0){ - if (TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetFromTokens.size() > 0){ + if (timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetFromTokens.size() > 0){ - DataLine += "TZOFFSETFROM;"; - DataLine += TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetFromTokens; + dataLine += "TZOFFSETFROM;"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetFromTokens; } else { - DataLine += "TZOFFSETFROM"; + dataLine += "TZOFFSETFROM"; } - DataLine += ":"; - DataLine += TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetFromData; - DataLine += "\n"; + dataLine += ":"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetFromData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the TZOFFSETTO value. - if (TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetToData.size() > 0){ + if (timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetToData.size() > 0){ - if (TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetToTokens.size() > 0){ + if (timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetToTokens.size() > 0){ - DataLine += "TZOFFSETTO;"; - DataLine += TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetToTokens; + dataLine += "TZOFFSETTO;"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetToTokens; } else { - DataLine += "TZOFFSETTO"; + dataLine += "TZOFFSETTO"; } - DataLine += ":"; - DataLine += TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetToData; - DataLine += "\n"; + dataLine += ":"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetToData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the RRULE value. - if (TimezoneStandardCollection[TimezoneStandardSeek].RecurranceRuleData.size() > 0){ + if (timezoneStandardCollection[timezoneStandardSeek].recurranceRuleData.size() > 0){ - if (TimezoneStandardCollection[TimezoneStandardSeek].RecurranceRuleDataTokens.size() > 0){ + if (timezoneStandardCollection[timezoneStandardSeek].recurranceRuleDataTokens.size() > 0){ - DataLine += "RRULE;"; - DataLine += TimezoneStandardCollection[TimezoneStandardSeek].RecurranceRuleDataTokens; + dataLine += "RRULE;"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].recurranceRuleDataTokens; } else { - DataLine += "RRULE"; + dataLine += "RRULE"; } - DataLine += ":"; - DataLine += TimezoneStandardCollection[TimezoneStandardSeek].RecurranceRuleData; - DataLine += "\n"; + dataLine += ":"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].recurranceRuleData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the COMMENT value. - if (TimezoneStandardCollection[TimezoneStandardSeek].CommentList.size() > 0){ + if (timezoneStandardCollection[timezoneStandardSeek].commentList.size() > 0){ - for (int CommentListSeek = 0; CommentListSeek < TimezoneStandardCollection[TimezoneStandardSeek].CommentList.size(); - CommentListSeek++){ + for (int commentListSeek = 0; commentListSeek < timezoneStandardCollection[timezoneStandardSeek].commentList.size(); + commentListSeek++){ - DataLine += "COMMENT"; + dataLine += "COMMENT"; - if (TimezoneStandardCollection[TimezoneStandardSeek].CommentListAltRep[CommentListSeek].size() > 0){ + if (timezoneStandardCollection[timezoneStandardSeek].commentListAltRep[commentListSeek].size() > 0){ - DataLine += ";ALTREP=\""; - DataLine += TimezoneStandardCollection[TimezoneStandardSeek].CommentListAltRep[CommentListSeek]; - DataLine += "\""; + dataLine += ";ALTREP=\""; + dataLine += timezoneStandardCollection[timezoneStandardSeek].commentListAltRep[commentListSeek]; + dataLine += "\""; } - if (TimezoneStandardCollection[TimezoneStandardSeek].CommentListLanguage[CommentListSeek].size() > 0){ + if (timezoneStandardCollection[timezoneStandardSeek].commentListLanguage[commentListSeek].size() > 0){ - DataLine += ";LANGUAGE="; - DataLine += TimezoneStandardCollection[TimezoneStandardSeek].CommentListLanguage[CommentListSeek]; + dataLine += ";LANGUAGE="; + dataLine += timezoneStandardCollection[timezoneStandardSeek].commentListLanguage[commentListSeek]; } - if (TimezoneStandardCollection[TimezoneStandardSeek].CommentListTokens[CommentListSeek].size() > 0){ + if (timezoneStandardCollection[timezoneStandardSeek].commentListTokens[commentListSeek].size() > 0){ - DataLine += ";"; - DataLine += TimezoneStandardCollection[TimezoneStandardSeek].CommentListTokens[CommentListSeek]; + dataLine += ";"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].commentListTokens[commentListSeek]; } - DataLine += ":"; - DataLine += TimezoneStandardCollection[TimezoneStandardSeek].CommentList[CommentListSeek]; - DataLine += "\n"; + dataLine += ":"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].commentList[commentListSeek]; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } } + + // Process the RDATE value. + + if (timezoneStandardCollection[timezoneStandardSeek].recurranceDateData.size() > 0){ + + for (int recurranceDataSeek = 0; recurranceDataSeek < timezoneStandardCollection[timezoneStandardSeek].recurranceDateData.size(); + recurranceDataSeek++){ + + dataLine += "RDATE"; + + if (timezoneStandardCollection[timezoneStandardSeek].recurranceDateDataValue[recurranceDataSeek].size() > 0){ + + dataLine += ";VALUE="; + dataLine += timezoneStandardCollection[timezoneStandardSeek].recurranceDateDataValue[recurranceDataSeek]; + + } + + if (timezoneStandardCollection[timezoneStandardSeek].recurranceDateDataTimeZoneParam[recurranceDataSeek].size() > 0){ + + dataLine += ";TZID="; + dataLine += timezoneStandardCollection[timezoneStandardSeek].recurranceDateDataTimeZoneParam[recurranceDataSeek]; + + } + + if (timezoneStandardCollection[timezoneStandardSeek].recurranceDateDataTokens[recurranceDataSeek].size() > 0){ + + dataLine += ";"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].recurranceDateDataTokens[recurranceDataSeek]; + + } + + dataLine += ":"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].recurranceDateData[recurranceDataSeek]; + dataLine += "\n"; + + dataLineProcessed = OutputText(&dataLine); + + *saveData += dataLineProcessed; + + dataLine.clear(); + dataLineProcessed.clear(); - *SaveData += "END:STANDARD\n"; + } + + } + + // Process the TZNAME value. + + if (timezoneStandardCollection[timezoneStandardSeek].timeZoneNameData.size() > 0){ + + for (int timezoneNameSeek = 0; timezoneNameSeek < timezoneStandardCollection[timezoneStandardSeek].timeZoneNameData.size(); + timezoneNameSeek++){ + + dataLine += "TZNAME"; + + if (timezoneStandardCollection[timezoneStandardSeek].timeZoneNameLanguage[timezoneNameSeek].size() > 0){ + + dataLine += ";LANGUAGE="; + dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneNameLanguage[timezoneNameSeek]; + + } + + if (timezoneStandardCollection[timezoneStandardSeek].timeZoneNameTokens[timezoneNameSeek].size() > 0){ + + dataLine += ";"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneNameTokens[timezoneNameSeek]; + + } + + dataLine += ":"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneNameData[timezoneNameSeek]; + dataLine += "\n"; + + dataLineProcessed = OutputText(&dataLine); + + *saveData += dataLineProcessed; + + dataLine.clear(); + dataLineProcessed.clear(); + + } + + } + + // Process data from X-* + + if (timezoneStandardCollection[timezoneStandardSeek].xTokensData.size() > 0){ + + for (int timezoneXTokenSeek = 0; timezoneXTokenSeek < timezoneStandardCollection[timezoneStandardSeek].xTokensData.size(); + timezoneXTokenSeek++){ + + dataLine += timezoneStandardCollection[timezoneStandardSeek].xTokensDataTokens[timezoneXTokenSeek]; + dataLine += ":"; + dataLine += timezoneStandardCollection[timezoneStandardSeek].xTokensData[timezoneXTokenSeek]; + dataLine += "\n"; + + dataLineProcessed = OutputText(&dataLine); + + *saveData += dataLineProcessed; + + dataLine.clear(); + dataLineProcessed.clear(); + + } + + } + + *saveData += "END:STANDARD\n"; } @@ -268,177 +392,283 @@ void CalendarTimezoneObject::SaveObjectData(string *SaveData){ // Process Daylight timezones. - if (TimezoneDaylightCollection.size() > 0){ + if (timezoneDaylightCollection.size() > 0){ - for (int TimezoneDaylightSeek = 0; TimezoneDaylightSeek < TimezoneDaylightCollection.size(); - TimezoneDaylightSeek++){ + for (int timezoneDaylightSeek = 0; timezoneDaylightSeek < timezoneDaylightCollection.size(); + timezoneDaylightSeek++){ - *SaveData += "BEGIN:DAYLIGHT\n"; + *saveData += "BEGIN:DAYLIGHT\n"; // Process the DTSTART value. - if (TimezoneDaylightCollection[TimezoneDaylightSeek].DateTimeStartData.size() > 0){ + if (timezoneDaylightCollection[timezoneDaylightSeek].dateTimeStartData.size() > 0){ - if (TimezoneStandardCollection[TimezoneDaylightSeek].DateTimeStartTokens.size() > 0){ + if (timezoneStandardCollection[timezoneDaylightSeek].dateTimeStartTokens.size() > 0){ - DataLine += "DTSTART;"; - DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].DateTimeStartTokens; + dataLine += "DTSTART;"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].dateTimeStartTokens; } else { - DataLine += "DTSTART"; + dataLine += "DTSTART"; } - DataLine += ":"; - DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].DateTimeStartData; - DataLine += "\n"; + dataLine += ":"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].dateTimeStartData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the TZOFFSETFROM value. - if (TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetFromData.size() > 0){ + if (timezoneDaylightCollection[timezoneDaylightSeek].timeZoneOffsetFromData.size() > 0){ - if (TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetFromTokens.size() > 0){ + if (timezoneDaylightCollection[timezoneDaylightSeek].timeZoneOffsetFromTokens.size() > 0){ - DataLine += "TZOFFSETFROM;"; - DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetFromTokens; + dataLine += "TZOFFSETFROM;"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].timeZoneOffsetFromTokens; } else { - DataLine += "TZOFFSETFROM"; + dataLine += "TZOFFSETFROM"; } - DataLine += ":"; - DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetFromData; - DataLine += "\n"; + dataLine += ":"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].timeZoneOffsetFromData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the TZOFFSETTO value. - if (TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetToData.size() > 0){ + if (timezoneDaylightCollection[timezoneDaylightSeek].timeZoneOffsetToData.size() > 0){ - if (TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetToTokens.size() > 0){ + if (timezoneDaylightCollection[timezoneDaylightSeek].timeZoneOffsetToTokens.size() > 0){ - DataLine += "TZOFFSETTO;"; - DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetToTokens; + dataLine += "TZOFFSETTO;"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].timeZoneOffsetToTokens; } else { - DataLine += "TZOFFSETTO"; + dataLine += "TZOFFSETTO"; } - DataLine += ":"; - DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetToData; - DataLine += "\n"; + dataLine += ":"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].timeZoneOffsetToData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the RRULE value. - if (TimezoneDaylightCollection[TimezoneDaylightSeek].RecurranceRuleData.size() > 0){ + if (timezoneDaylightCollection[timezoneDaylightSeek].recurranceRuleData.size() > 0){ - if (TimezoneDaylightCollection[TimezoneDaylightSeek].RecurranceRuleDataTokens.size() > 0){ + if (timezoneDaylightCollection[timezoneDaylightSeek].recurranceRuleDataTokens.size() > 0){ - DataLine += "RRULE;"; - DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].RecurranceRuleDataTokens; + dataLine += "RRULE;"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].recurranceRuleDataTokens; } else { - DataLine += "RRULE"; + dataLine += "RRULE"; } - DataLine += ":"; - DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].RecurranceRuleData; - DataLine += "\n"; + dataLine += ":"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].recurranceRuleData; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } // Process the COMMENT value. - if (TimezoneDaylightCollection[TimezoneDaylightSeek].CommentList.size() > 0){ + if (timezoneDaylightCollection[timezoneDaylightSeek].commentList.size() > 0){ - for (int CommentListSeek = 0; CommentListSeek < TimezoneDaylightCollection[TimezoneDaylightSeek].CommentList.size(); - CommentListSeek++){ + for (int commentListSeek = 0; commentListSeek < timezoneDaylightCollection[timezoneDaylightSeek].commentList.size(); + commentListSeek++){ - DataLine += "COMMENT"; + dataLine += "COMMENT"; - if (TimezoneDaylightCollection[TimezoneDaylightSeek].CommentListAltRep[CommentListSeek].size() > 0){ + if (timezoneDaylightCollection[timezoneDaylightSeek].commentListAltRep[commentListSeek].size() > 0){ - DataLine += ";ALTREP=\""; - DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].CommentListAltRep[CommentListSeek]; - DataLine += "\""; + dataLine += ";ALTREP=\""; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].commentListAltRep[commentListSeek]; + dataLine += "\""; } - if (TimezoneDaylightCollection[TimezoneDaylightSeek].CommentListLanguage[CommentListSeek].size() > 0){ + if (timezoneDaylightCollection[timezoneDaylightSeek].commentListLanguage[commentListSeek].size() > 0){ - DataLine += ";LANGUAGE="; - DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].CommentListLanguage[CommentListSeek]; + dataLine += ";LANGUAGE="; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].commentListLanguage[commentListSeek]; } - if (TimezoneDaylightCollection[TimezoneDaylightSeek].CommentListTokens[CommentListSeek].size() > 0){ + if (timezoneDaylightCollection[timezoneDaylightSeek].commentListTokens[commentListSeek].size() > 0){ - DataLine += ";"; - DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].CommentListTokens[CommentListSeek]; + dataLine += ";"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].commentListTokens[commentListSeek]; } - DataLine += ":"; - DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].CommentList[CommentListSeek]; - DataLine += "\n"; + dataLine += ":"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].commentList[commentListSeek]; + dataLine += "\n"; - DataLineProcessed = OutputText(&DataLine); + dataLineProcessed = OutputText(&dataLine); - *SaveData += DataLineProcessed; + *saveData += dataLineProcessed; - DataLine.clear(); - DataLineProcessed.clear(); + dataLine.clear(); + dataLineProcessed.clear(); } } + + // Process the RDATE value. + + if (timezoneDaylightCollection[timezoneDaylightSeek].recurranceDateData.size() > 0){ + + for (int recurranceDataSeek = 0; recurranceDataSeek < timezoneDaylightCollection[timezoneDaylightSeek].recurranceDateData.size(); + recurranceDataSeek++){ + + dataLine += "RDATE"; + + if (timezoneDaylightCollection[timezoneDaylightSeek].recurranceDateDataValue[recurranceDataSeek].size() > 0){ + + dataLine += ";VALUE="; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].recurranceDateDataValue[recurranceDataSeek]; + + } + + if (timezoneDaylightCollection[timezoneDaylightSeek].recurranceDateDataTimeZoneParam[recurranceDataSeek].size() > 0){ + + dataLine += ";TZID="; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].recurranceDateDataTimeZoneParam[recurranceDataSeek]; + + } + + if (timezoneDaylightCollection[timezoneDaylightSeek].recurranceDateDataTokens[recurranceDataSeek].size() > 0){ + + dataLine += ";"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].recurranceDateDataTokens[recurranceDataSeek]; + + } + + dataLine += ":"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].recurranceDateData[recurranceDataSeek]; + dataLine += "\n"; + + dataLineProcessed = OutputText(&dataLine); + + *saveData += dataLineProcessed; + + dataLine.clear(); + dataLineProcessed.clear(); + + } + + } + + // Process the TZNAME value. + + if (timezoneDaylightCollection[timezoneDaylightSeek].timeZoneNameData.size() > 0){ + + for (int timezoneNameSeek = 0; timezoneNameSeek < timezoneDaylightCollection[timezoneDaylightSeek].timeZoneNameData.size(); + timezoneNameSeek++){ + + dataLine += "TZNAME"; + + if (timezoneDaylightCollection[timezoneDaylightSeek].timeZoneNameLanguage[timezoneNameSeek].size() > 0){ + + dataLine += ";LANGUAGE="; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].timeZoneNameLanguage[timezoneNameSeek]; + + } + + if (timezoneDaylightCollection[timezoneDaylightSeek].timeZoneNameTokens[timezoneNameSeek].size() > 0){ + + dataLine += ";"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].timeZoneNameTokens[timezoneNameSeek]; + + } - *SaveData += "END:DAYLIGHT\n"; + dataLine += ":"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].timeZoneNameData[timezoneNameSeek]; + dataLine += "\n"; + + dataLineProcessed = OutputText(&dataLine); + + *saveData += dataLineProcessed; + + dataLine.clear(); + dataLineProcessed.clear(); + + } + + } + + // Process data from X-* + + if (timezoneDaylightCollection[timezoneDaylightSeek].xTokensData.size() > 0){ + + for (int timezoneXTokenSeek = 0; timezoneXTokenSeek < timezoneDaylightCollection[timezoneDaylightSeek].xTokensData.size(); + timezoneXTokenSeek++){ + + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].xTokensDataTokens[timezoneXTokenSeek]; + dataLine += ":"; + dataLine += timezoneDaylightCollection[timezoneDaylightSeek].xTokensData[timezoneXTokenSeek]; + dataLine += "\n"; + + dataLineProcessed = OutputText(&dataLine); + + *saveData += dataLineProcessed; + + dataLine.clear(); + dataLineProcessed.clear(); + + } + + } + + *saveData += "END:DAYLIGHT\n"; } } - *SaveData += "END:VTIMEZONE\n"; + *saveData += "END:VTIMEZONE\n"; } \ No newline at end of file