summaryrefslogtreecommitdiff
path: root/i18npool/source/calendar
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2020-04-07 19:59:47 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-04-08 11:01:14 +0200
commit32343bcbb786168df62f85a57e30c620c3d3bdb4 (patch)
treea38537c56f5e708a88c9371dcd5c6dd14055eab6 /i18npool/source/calendar
parentf2053a6accc2e68aa2920d4d3f46f82909415666 (diff)
loplugin:flatten in i18npool
and workaround a clang crash Change-Id: Ida94c8abb4b2e997d38a7f430e59f73aadf8fcc8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91844 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'i18npool/source/calendar')
-rw-r--r--i18npool/source/calendar/calendar_gregorian.cxx35
-rw-r--r--i18npool/source/calendar/calendar_hijri.cxx31
-rw-r--r--i18npool/source/calendar/calendar_jewish.cxx27
3 files changed, 48 insertions, 45 deletions
diff --git a/i18npool/source/calendar/calendar_gregorian.cxx b/i18npool/source/calendar/calendar_gregorian.cxx
index a4eaf3dcde9f..b7ae49fbd96e 100644
--- a/i18npool/source/calendar/calendar_gregorian.cxx
+++ b/i18npool/source/calendar/calendar_gregorian.cxx
@@ -394,27 +394,28 @@ bool Calendar_gregorian::setTimeZone( const OUString& rTimeZone )
// By using eraArray, it can take care Japanese and Taiwan ROC calendar.
void Calendar_gregorian::mapFromGregorian()
{
- if (eraArray) {
- sal_Int16 e, y, m, d;
+ if (!eraArray)
+ return;
- e = fieldValue[CalendarFieldIndex::ERA];
- y = fieldValue[CalendarFieldIndex::YEAR];
- m = fieldValue[CalendarFieldIndex::MONTH] + 1;
- d = fieldValue[CalendarFieldIndex::DAY_OF_MONTH];
+ sal_Int16 e, y, m, d;
- // since the year is reversed for first era, it is reversed again here for Era compare.
- if (e == 0)
- y = 1 - y;
+ e = fieldValue[CalendarFieldIndex::ERA];
+ y = fieldValue[CalendarFieldIndex::YEAR];
+ m = fieldValue[CalendarFieldIndex::MONTH] + 1;
+ d = fieldValue[CalendarFieldIndex::DAY_OF_MONTH];
- for (e = 0; eraArray[e].year; e++)
- if ((y != eraArray[e].year) ? y < eraArray[e].year :
- (m != eraArray[e].month) ? m < eraArray[e].month : d < eraArray[e].day)
- break;
+ // since the year is reversed for first era, it is reversed again here for Era compare.
+ if (e == 0)
+ y = 1 - y;
- fieldValue[CalendarFieldIndex::ERA] = e;
- fieldValue[CalendarFieldIndex::YEAR] =
- sal::static_int_cast<sal_Int16>( (e == 0) ? (eraArray[0].year - y) : (y - eraArray[e-1].year + 1) );
- }
+ for (e = 0; eraArray[e].year; e++)
+ if ((y != eraArray[e].year) ? y < eraArray[e].year :
+ (m != eraArray[e].month) ? m < eraArray[e].month : d < eraArray[e].day)
+ break;
+
+ fieldValue[CalendarFieldIndex::ERA] = e;
+ fieldValue[CalendarFieldIndex::YEAR] =
+ sal::static_int_cast<sal_Int16>( (e == 0) ? (eraArray[0].year - y) : (y - eraArray[e-1].year + 1) );
}
#define FIELDS ((1 << CalendarFieldIndex::ERA) | (1 << CalendarFieldIndex::YEAR))
diff --git a/i18npool/source/calendar/calendar_hijri.cxx b/i18npool/source/calendar/calendar_hijri.cxx
index ce48dac0f127..dca8b95836fc 100644
--- a/i18npool/source/calendar/calendar_hijri.cxx
+++ b/i18npool/source/calendar/calendar_hijri.cxx
@@ -68,21 +68,22 @@ Calendar_hijri::Calendar_hijri()
// map field value from hijri calendar to gregorian calendar
void Calendar_hijri::mapToGregorian()
{
- if (fieldSet & FIELDS) {
- sal_Int32 day = static_cast<sal_Int32>(fieldSetValue[CalendarFieldIndex::DAY_OF_MONTH]);
- sal_Int32 month = static_cast<sal_Int32>(fieldSetValue[CalendarFieldIndex::MONTH]) + 1;
- sal_Int32 year = static_cast<sal_Int32>(fieldSetValue[CalendarFieldIndex::YEAR]);
- if (fieldSetValue[CalendarFieldIndex::ERA] == 0)
- year *= -1;
-
- ToGregorian(&day, &month, &year);
-
- fieldSetValue[CalendarFieldIndex::ERA] = year <= 0 ? 0 : 1;
- fieldSetValue[CalendarFieldIndex::MONTH] = sal::static_int_cast<sal_Int16>(month - 1);
- fieldSetValue[CalendarFieldIndex::DAY_OF_MONTH] = static_cast<sal_Int16>(day);
- fieldSetValue[CalendarFieldIndex::YEAR] = static_cast<sal_Int16>(abs(year));
- fieldSet |= FIELDS;
- }
+ if (!(fieldSet & FIELDS))
+ return;
+
+ sal_Int32 day = static_cast<sal_Int32>(fieldSetValue[CalendarFieldIndex::DAY_OF_MONTH]);
+ sal_Int32 month = static_cast<sal_Int32>(fieldSetValue[CalendarFieldIndex::MONTH]) + 1;
+ sal_Int32 year = static_cast<sal_Int32>(fieldSetValue[CalendarFieldIndex::YEAR]);
+ if (fieldSetValue[CalendarFieldIndex::ERA] == 0)
+ year *= -1;
+
+ ToGregorian(&day, &month, &year);
+
+ fieldSetValue[CalendarFieldIndex::ERA] = year <= 0 ? 0 : 1;
+ fieldSetValue[CalendarFieldIndex::MONTH] = sal::static_int_cast<sal_Int16>(month - 1);
+ fieldSetValue[CalendarFieldIndex::DAY_OF_MONTH] = static_cast<sal_Int16>(day);
+ fieldSetValue[CalendarFieldIndex::YEAR] = static_cast<sal_Int16>(abs(year));
+ fieldSet |= FIELDS;
}
// map field value from gregorian calendar to hijri calendar
diff --git a/i18npool/source/calendar/calendar_jewish.cxx b/i18npool/source/calendar/calendar_jewish.cxx
index ee35c5d90cf9..ab5a32a221d8 100644
--- a/i18npool/source/calendar/calendar_jewish.cxx
+++ b/i18npool/source/calendar/calendar_jewish.cxx
@@ -272,19 +272,20 @@ void Calendar_jewish::mapFromGregorian()
// map field value from other calendar to gregorian calendar, it should be implemented.
void Calendar_jewish::mapToGregorian()
{
- if (fieldSet & FIELDS) {
- sal_Int16 y = fieldSetValue[CalendarFieldIndex::YEAR];
- if (fieldSetValue[CalendarFieldIndex::ERA] == 0)
- y = 1 - y;
- HebrewDate Temp(fieldSetValue[CalendarFieldIndex::MONTH] + 1, fieldSetValue[CalendarFieldIndex::DAY_OF_MONTH], y);
- GregorianDate gd(Temp.GetAbsoluteDate());
-
- fieldSetValue[CalendarFieldIndex::ERA] = gd.GetYear() <= 0 ? 0 : 1;
- fieldSetValue[CalendarFieldIndex::MONTH] = sal::static_int_cast<sal_Int16>( gd.GetMonth() - 1 );
- fieldSetValue[CalendarFieldIndex::DAY_OF_MONTH] = static_cast<sal_Int16>(gd.GetDay());
- fieldSetValue[CalendarFieldIndex::YEAR] = static_cast<sal_Int16>(gd.GetYear() <= 0 ? 1 - gd.GetYear() : gd.GetYear());
- fieldSet |= FIELDS;
- }
+ if (!(fieldSet & FIELDS))
+ return;
+
+ sal_Int16 y = fieldSetValue[CalendarFieldIndex::YEAR];
+ if (fieldSetValue[CalendarFieldIndex::ERA] == 0)
+ y = 1 - y;
+ HebrewDate Temp(fieldSetValue[CalendarFieldIndex::MONTH] + 1, fieldSetValue[CalendarFieldIndex::DAY_OF_MONTH], y);
+ GregorianDate gd(Temp.GetAbsoluteDate());
+
+ fieldSetValue[CalendarFieldIndex::ERA] = gd.GetYear() <= 0 ? 0 : 1;
+ fieldSetValue[CalendarFieldIndex::MONTH] = sal::static_int_cast<sal_Int16>( gd.GetMonth() - 1 );
+ fieldSetValue[CalendarFieldIndex::DAY_OF_MONTH] = static_cast<sal_Int16>(gd.GetDay());
+ fieldSetValue[CalendarFieldIndex::YEAR] = static_cast<sal_Int16>(gd.GetYear() <= 0 ? 1 - gd.GetYear() : gd.GetYear());
+ fieldSet |= FIELDS;
}
// Methods in XExtendedCalendar