summaryrefslogtreecommitdiff
path: root/ext/intl/calendar
diff options
context:
space:
mode:
authorMáté Kocsis <kocsismate@woohoolabs.com>2019-11-21 19:35:25 +0100
committerMáté Kocsis <kocsismate@woohoolabs.com>2020-02-04 14:50:02 +0100
commita827db24f1231809b2600a3f0ff233f9c1c01a17 (patch)
treecc32ad5adbb04cc06f56dcb830420d157715a041 /ext/intl/calendar
parent223663807a1c1c219eb35064adad544087d568a3 (diff)
downloadphp-git-a827db24f1231809b2600a3f0ff233f9c1c01a17.tar.gz
Add stubs for IntlCalendar
Closes GH-4846
Diffstat (limited to 'ext/intl/calendar')
-rw-r--r--ext/intl/calendar/calendar.stub.php278
-rw-r--r--ext/intl/calendar/calendar_arginfo.h354
-rw-r--r--ext/intl/calendar/calendar_class.cpp208
-rw-r--r--ext/intl/calendar/calendar_methods.cpp2
-rw-r--r--ext/intl/calendar/gregoriancalendar_methods.cpp4
5 files changed, 688 insertions, 158 deletions
diff --git a/ext/intl/calendar/calendar.stub.php b/ext/intl/calendar/calendar.stub.php
new file mode 100644
index 0000000000..267035e268
--- /dev/null
+++ b/ext/intl/calendar/calendar.stub.php
@@ -0,0 +1,278 @@
+<?php
+
+class IntlCalendar
+{
+ private function __construct() {}
+
+ /**
+ * @param IntlTimeZone|DateTimeZone|string|null $timeZone
+ * @return IntlCalendar|null
+ */
+ public static function createInstance($timeZone = null, ?string $locale = null) {}
+
+ /** @return bool */
+ public function equals(IntlCalendar $calendar) {}
+
+ /** @return int|false */
+ public function fieldDifference(float $when, int $field) {}
+
+ /** @return bool */
+ public function add(int $field, int $amount) {}
+
+ /** @return bool */
+ public function after(IntlCalendar $calendar) {}
+
+ /** @return bool */
+ public function before(IntlCalendar $calendar) {}
+
+ /** @return bool */
+ public function clear(?int $field = null) {}
+
+ /**
+ * @param DateTime|string $dateTime
+ * @return IntlCalendar|null
+ */
+ public static function fromDateTime($dateTime, ?string $locale = null) {}
+
+ /** @return int|false */
+ public function get(int $field) {}
+
+ /** @return int|false */
+ public function getActualMaximum(int $field) {}
+
+ /** @return int|false */
+ public function getActualMinimum(int $field) {}
+
+ /** @return array */
+ public static function getAvailableLocales() {}
+
+ /** @return int|false */
+ public function getDayOfWeekType(int $dayOfWeek) {}
+
+ /** @return int|false */
+ public function getErrorCode() {}
+
+ /** @return string|false */
+ public function getErrorMessage() {}
+
+ /** @return int|false */
+ public function getFirstDayOfWeek() {}
+
+ /** @return int|false */
+ public function getGreatestMinimum(int $field) {}
+
+ /** @return IntlIterator|false */
+ public static function getKeywordValuesForLocale(string $key, string $locale, bool $commonlyUsed) {}
+
+ /** @return int|false */
+ public function getLeastMaximum(int $field) {}
+
+ /** @return string|false */
+ public function getLocale(int $localeType) {}
+
+ /** @return int|false */
+ public function getMaximum(int $field) {}
+
+ /** @return int|false */
+ public function getMinimalDaysInFirstWeek() {}
+
+ /** @return bool */
+ public function setMinimalDaysInFirstWeek(int $numberOfDays) {}
+
+ /** @return int|false */
+ public function getMinimum(int $field) {}
+
+ /** @return float */
+ public static function getNow() {}
+
+ /** @return int */
+ public function getRepeatedWallTimeOption() {}
+
+ /** @return int */
+ public function getSkippedWallTimeOption() {}
+
+ /** @return float|false */
+ public function getTime() {}
+
+ /** @return IntlTimeZone|false */
+ public function getTimeZone() {}
+
+ /** @return string */
+ public function getType() {}
+
+ /** @return int|false */
+ public function getWeekendTransition(int $dayOfWeek) {}
+
+ /** @return bool */
+ public function inDaylightTime() {}
+
+ /** @return bool */
+ public function isEquivalentTo(IntlCalendar $calendar) {}
+
+ /** @return bool */
+ public function isLenient() {}
+
+ /** @return bool */
+ public function isWeekend(?float $date = null) {}
+
+ /**
+ * @param int|bool $amountOrUpOrDown
+ * @return bool
+ */
+ public function roll(int $field, $amountOrUpOrDown) {}
+
+ /** @return bool */
+ public function isSet(int $field) {}
+
+ /** @return bool */
+ public function set(int $year, int $month, int $dayOfMonth = UNKNOWN, $hour = UNKNOWN, int $minute = UNKNOWN, int $second = UNKNOWN) {}
+
+ /** @return bool */
+ public function setFirstDayOfWeek(int $dayOfWeek) {}
+
+ /** @return bool */
+ public function setLenient(bool $isLenient) {}
+
+ /** @return bool */
+ public function setRepeatedWallTimeOption(int $wallTimeOption) {}
+
+ /** @return bool */
+ public function setSkippedWallTimeOption(int $wallTimeOption) {}
+
+ /** @return bool */
+ public function setTime(float $date) {}
+
+ /**
+ * @param IntlTimeZone|DateTimeZone|string|null $timeZone
+ * @return bool
+ */
+ public function setTimeZone($timeZone) {}
+
+ /** @return DateTime|false */
+ public function toDateTime() {}
+}
+
+class IntlGregorianCalendar extends IntlCalendar
+{
+ public function __construct() {}
+
+ /**
+ * @param IntlTimeZone|DateTimeZone|string|null $timeZone
+ * @return IntlGregorianCalendar|null
+ */
+ public static function createInstance($timeZone = null, ?string $locale = null) {}
+
+ /** @return bool */
+ public function setGregorianChange(float $change) {}
+
+ /** @return float|false */
+ public function getGregorianChange() {}
+
+ /** @return bool */
+ public function isLeapYear(int $year) {}
+}
+
+/** @param IntlTimeZone|DateTimeZone|string|null $timeZone */
+function intlcal_create_instance($timeZone = null, ?string $locale = null): IntlCalendar|null {}
+
+function intlcal_get_keyword_values_for_locale(string $key, string $locale, bool $commonlyUsed): IntlIterator|false {}
+
+function intlcal_get_now(): float {}
+
+function intlcal_get_available_locales(): array {}
+
+function intlcal_get(IntlCalendar $calendar, int $field): int|false {}
+
+function intlcal_get_time(IntlCalendar $calendar): float|false {}
+
+function intlcal_set_time(IntlCalendar $calendar, float $date): bool {}
+
+function intlcal_add(IntlCalendar $calendar, int $field, int $amount): bool {}
+
+/** @param IntlTimeZone|DateTimeZone|string|null $timeZone */
+function intlcal_set_time_zone(IntlCalendar $calendar, $timeZone): bool {}
+
+function intlcal_after(IntlCalendar $calendarObject, IntlCalendar $calendar): bool {}
+
+function intlcal_before(IntlCalendar $calendarObject, IntlCalendar $calendar): bool {}
+
+function intlcal_set(IntlCalendar $calendar, int $year, int $month, int $dayOfMonth = UNKNOWN, $hour = UNKNOWN, int $minute = UNKNOWN, int $second = UNKNOWN): bool {}
+
+/** @param int|bool $amountOrUpOrDown */
+function intlcal_roll(IntlCalendar $calendar, int $field, $amountOrUpOrDown): bool {}
+
+function intlcal_clear(IntlCalendar $calendar, ?int $field = null): bool {}
+
+function intlcal_field_difference(IntlCalendar $calendar, float $when, int $field): int|false {}
+
+function intlcal_get_actual_maximum(IntlCalendar $calendar, int $field): int|false {}
+
+function intlcal_get_actual_minimum(IntlCalendar $calendar, int $field): int|false {}
+
+function intlcal_get_day_of_week_type(IntlCalendar $calendar, int $dayOfWeek): int|false {}
+
+function intlcal_get_first_day_of_week(IntlCalendar $calendar): int|false {}
+
+function intlcal_greatest_minimum(IntlCalendar $calendar, int $field): int|false {}
+
+function intlcal_get_least_maximum(IntlCalendar $calendar, int $field): int|false {}
+
+function intlcal_get_greatest_minimum(IntlCalendar $calendar, int $field): int|false {}
+
+function intlcal_get_locale(IntlCalendar $calendar, int $localeType): string|false {}
+
+function intlcal_get_maximum(IntlCalendar $calendar, int $field): int|false {}
+
+function intlcal_get_minimal_days_in_first_week(IntlCalendar $calendar): int|false {}
+
+function intlcal_set_minimal_days_in_first_week(IntlCalendar $calendar, int $numberOfDays): bool {}
+
+function intlcal_get_minimum(IntlCalendar $calendar, int $field): int|false {}
+
+function intlcal_get_time_zone(IntlCalendar $calendar): IntlTimeZone|false {}
+
+function intlcal_get_type(IntlCalendar $calendar): string {}
+
+function intlcal_get_weekend_transition(IntlCalendar $calendar, int $dayOfWeek): int|false {}
+
+function intlcal_in_daylight_time(IntlCalendar $calendar): bool {}
+
+function intlcal_is_lenient(IntlCalendar $calendar): bool {}
+
+function intlcal_is_set(IntlCalendar $calendar, int $field): bool {}
+
+function intlcal_is_equivalent_to(IntlCalendar $calendarObject, IntlCalendar $calendar): bool {}
+
+function intlcal_is_weekend(IntlCalendar $calendar, ?float $date = null): bool {}
+
+function intlcal_set_first_day_of_week(IntlCalendar $calendar, int $dayOfWeek): bool {}
+
+function intlcal_set_lenient(IntlCalendar $calendar, bool $isLenient): bool {}
+
+function intlcal_get_repeated_wall_time_option(IntlCalendar $calendar): int {}
+
+function intlcal_equals(IntlCalendar $calendarObject, IntlCalendar $calendar): bool {}
+
+function intlcal_get_skipped_wall_time_option(IntlCalendar $calendar): int {}
+
+function intlcal_set_repeated_wall_time_option(IntlCalendar $calendar, int $wallTimeOption): bool {}
+
+function intlcal_set_skipped_wall_time_option(IntlCalendar $calendar, int $wallTimeOption): bool {}
+
+/** @param DateTime|string $dateTime */
+function intlcal_from_date_time($dateTime, ?string $locale = null): ?IntlCalendar {}
+
+function intlcal_to_date_time(IntlCalendar $calendar): DateTime|false {}
+
+function intlcal_get_error_code(IntlCalendar $calendar): int|false {}
+
+function intlcal_get_error_message(IntlCalendar $calendar): string|false {}
+
+/** @param IntlTimeZone|DateTimeZone|string|null $timeZone */
+function intlgregcal_create_instance($timeZone = null, ?string $locale = null): ?IntlGregorianCalendar {}
+
+function intlgregcal_set_gregorian_change(IntlGregorianCalendar $calendar, float $change): bool {}
+
+function intlgregcal_get_gregorian_change(IntlGregorianCalendar $calendar): float|false {}
+
+function intlgregcal_is_leap_year(IntlGregorianCalendar $calendar, int $year): bool {}
diff --git a/ext/intl/calendar/calendar_arginfo.h b/ext/intl/calendar/calendar_arginfo.h
new file mode 100644
index 0000000000..efe89030ec
--- /dev/null
+++ b/ext/intl/calendar/calendar_arginfo.h
@@ -0,0 +1,354 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar___construct, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_createInstance, 0, 0, 0)
+ ZEND_ARG_INFO(0, timeZone)
+ ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_equals, 0, 0, 1)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_fieldDifference, 0, 0, 2)
+ ZEND_ARG_TYPE_INFO(0, when, IS_DOUBLE, 0)
+ ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_add, 0, 0, 2)
+ ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, amount, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_IntlCalendar_after arginfo_class_IntlCalendar_equals
+
+#define arginfo_class_IntlCalendar_before arginfo_class_IntlCalendar_equals
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_clear, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_fromDateTime, 0, 0, 1)
+ ZEND_ARG_INFO(0, dateTime)
+ ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_get, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_IntlCalendar_getActualMaximum arginfo_class_IntlCalendar_get
+
+#define arginfo_class_IntlCalendar_getActualMinimum arginfo_class_IntlCalendar_get
+
+#define arginfo_class_IntlCalendar_getAvailableLocales arginfo_class_IntlCalendar___construct
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_getDayOfWeekType, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, dayOfWeek, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_IntlCalendar_getErrorCode arginfo_class_IntlCalendar___construct
+
+#define arginfo_class_IntlCalendar_getErrorMessage arginfo_class_IntlCalendar___construct
+
+#define arginfo_class_IntlCalendar_getFirstDayOfWeek arginfo_class_IntlCalendar___construct
+
+#define arginfo_class_IntlCalendar_getGreatestMinimum arginfo_class_IntlCalendar_get
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_getKeywordValuesForLocale, 0, 0, 3)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, commonlyUsed, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_IntlCalendar_getLeastMaximum arginfo_class_IntlCalendar_get
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_getLocale, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, localeType, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_IntlCalendar_getMaximum arginfo_class_IntlCalendar_get
+
+#define arginfo_class_IntlCalendar_getMinimalDaysInFirstWeek arginfo_class_IntlCalendar___construct
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_setMinimalDaysInFirstWeek, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, numberOfDays, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_IntlCalendar_getMinimum arginfo_class_IntlCalendar_get
+
+#define arginfo_class_IntlCalendar_getNow arginfo_class_IntlCalendar___construct
+
+#define arginfo_class_IntlCalendar_getRepeatedWallTimeOption arginfo_class_IntlCalendar___construct
+
+#define arginfo_class_IntlCalendar_getSkippedWallTimeOption arginfo_class_IntlCalendar___construct
+
+#define arginfo_class_IntlCalendar_getTime arginfo_class_IntlCalendar___construct
+
+#define arginfo_class_IntlCalendar_getTimeZone arginfo_class_IntlCalendar___construct
+
+#define arginfo_class_IntlCalendar_getType arginfo_class_IntlCalendar___construct
+
+#define arginfo_class_IntlCalendar_getWeekendTransition arginfo_class_IntlCalendar_getDayOfWeekType
+
+#define arginfo_class_IntlCalendar_inDaylightTime arginfo_class_IntlCalendar___construct
+
+#define arginfo_class_IntlCalendar_isEquivalentTo arginfo_class_IntlCalendar_equals
+
+#define arginfo_class_IntlCalendar_isLenient arginfo_class_IntlCalendar___construct
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_isWeekend, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, date, IS_DOUBLE, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_roll, 0, 0, 2)
+ ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
+ ZEND_ARG_INFO(0, amountOrUpOrDown)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_IntlCalendar_isSet arginfo_class_IntlCalendar_get
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_set, 0, 0, 2)
+ ZEND_ARG_TYPE_INFO(0, year, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, month, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, dayOfMonth, IS_LONG, 0)
+ ZEND_ARG_INFO(0, hour)
+ ZEND_ARG_TYPE_INFO(0, minute, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, second, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_IntlCalendar_setFirstDayOfWeek arginfo_class_IntlCalendar_getDayOfWeekType
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_setLenient, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, isLenient, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_setRepeatedWallTimeOption, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, wallTimeOption, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_IntlCalendar_setSkippedWallTimeOption arginfo_class_IntlCalendar_setRepeatedWallTimeOption
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_setTime, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, date, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar_setTimeZone, 0, 0, 1)
+ ZEND_ARG_INFO(0, timeZone)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_IntlCalendar_toDateTime arginfo_class_IntlCalendar___construct
+
+#define arginfo_class_IntlGregorianCalendar___construct arginfo_class_IntlCalendar___construct
+
+#define arginfo_class_IntlGregorianCalendar_createInstance arginfo_class_IntlCalendar_createInstance
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlGregorianCalendar_setGregorianChange, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, change, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_IntlGregorianCalendar_getGregorianChange arginfo_class_IntlCalendar___construct
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlGregorianCalendar_isLeapYear, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, year, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_intlcal_create_instance, 0, 0, IntlCalendar, 1)
+ ZEND_ARG_INFO(0, timeZone)
+ ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_intlcal_get_keyword_values_for_locale, 0, 3, IntlIterator, MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, commonlyUsed, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_get_now, 0, 0, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_get_available_locales, 0, 0, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_intlcal_get, 0, 2, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_intlcal_get_time, 0, 1, MAY_BE_DOUBLE|MAY_BE_FALSE)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_set_time, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, date, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_add, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, amount, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_set_time_zone, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_INFO(0, timeZone)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_after, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendarObject, IntlCalendar, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_intlcal_before arginfo_intlcal_after
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_set, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, year, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, month, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, dayOfMonth, IS_LONG, 0)
+ ZEND_ARG_INFO(0, hour)
+ ZEND_ARG_TYPE_INFO(0, minute, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, second, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_roll, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
+ ZEND_ARG_INFO(0, amountOrUpOrDown)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_clear, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_intlcal_field_difference, 0, 3, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, when, IS_DOUBLE, 0)
+ ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_intlcal_get_actual_maximum arginfo_intlcal_get
+
+#define arginfo_intlcal_get_actual_minimum arginfo_intlcal_get
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_intlcal_get_day_of_week_type, 0, 2, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, dayOfWeek, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_intlcal_get_first_day_of_week, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_intlcal_greatest_minimum arginfo_intlcal_get
+
+#define arginfo_intlcal_get_least_maximum arginfo_intlcal_get
+
+#define arginfo_intlcal_get_greatest_minimum arginfo_intlcal_get
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_intlcal_get_locale, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, localeType, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_intlcal_get_maximum arginfo_intlcal_get
+
+#define arginfo_intlcal_get_minimal_days_in_first_week arginfo_intlcal_get_first_day_of_week
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_set_minimal_days_in_first_week, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, numberOfDays, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_intlcal_get_minimum arginfo_intlcal_get
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_intlcal_get_time_zone, 0, 1, IntlTimeZone, MAY_BE_FALSE)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_get_type, 0, 1, IS_STRING, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_intlcal_get_weekend_transition arginfo_intlcal_get_day_of_week_type
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_in_daylight_time, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_intlcal_is_lenient arginfo_intlcal_in_daylight_time
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_is_set, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_intlcal_is_equivalent_to arginfo_intlcal_after
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_is_weekend, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, date, IS_DOUBLE, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_set_first_day_of_week, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, dayOfWeek, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_set_lenient, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, isLenient, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_get_repeated_wall_time_option, 0, 1, IS_LONG, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_intlcal_equals arginfo_intlcal_after
+
+#define arginfo_intlcal_get_skipped_wall_time_option arginfo_intlcal_get_repeated_wall_time_option
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlcal_set_repeated_wall_time_option, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, wallTimeOption, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_intlcal_set_skipped_wall_time_option arginfo_intlcal_set_repeated_wall_time_option
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_intlcal_from_date_time, 0, 1, IntlCalendar, 1)
+ ZEND_ARG_INFO(0, dateTime)
+ ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_intlcal_to_date_time, 0, 1, DateTime, MAY_BE_FALSE)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_intlcal_get_error_code arginfo_intlcal_get_first_day_of_week
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_intlcal_get_error_message, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_intlgregcal_create_instance, 0, 0, IntlGregorianCalendar, 1)
+ ZEND_ARG_INFO(0, timeZone)
+ ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlgregcal_set_gregorian_change, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlGregorianCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, change, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_intlgregcal_get_gregorian_change, 0, 1, MAY_BE_DOUBLE|MAY_BE_FALSE)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlGregorianCalendar, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intlgregcal_is_leap_year, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, calendar, IntlGregorianCalendar, 0)
+ ZEND_ARG_TYPE_INFO(0, year, IS_LONG, 0)
+ZEND_END_ARG_INFO()
diff --git a/ext/intl/calendar/calendar_class.cpp b/ext/intl/calendar/calendar_class.cpp
index 449b220909..62cf907c49 100644
--- a/ext/intl/calendar/calendar_class.cpp
+++ b/ext/intl/calendar/calendar_class.cpp
@@ -27,6 +27,7 @@ extern "C" {
#define USE_CALENDAR_POINTER 1
#include "calendar_class.h"
#include "calendar_methods.h"
+#include "calendar_arginfo.h"
#include "gregoriancalendar_methods.h"
#include <zend_exceptions.h>
#include <assert.h>
@@ -264,161 +265,58 @@ static zend_object *Calendar_object_create(zend_class_entry *ce)
}
/* }}} */
-/* {{{ Calendar methods arguments info */
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_void, 0, 0, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_field, 0, 0, 1)
- ZEND_ARG_INFO(0, field)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_dow, 0, 0, 1)
- ZEND_ARG_INFO(0, dayOfWeek)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_other_cal, 0, 0, 1)
- ZEND_ARG_OBJ_INFO(0, calendar, IntlCalendar, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_date, 0, 0, 1)
- ZEND_ARG_INFO(0, date)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_date_optional, 0, 0, 0)
- ZEND_ARG_INFO(0, date)
-ZEND_END_ARG_INFO()
-
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_createInstance, 0, 0, 0)
- ZEND_ARG_INFO(0, timeZone)
- ZEND_ARG_INFO(0, locale)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_get_keyword_values_for_locale, 0, 0, 3)
- ZEND_ARG_INFO(0, key)
- ZEND_ARG_INFO(0, locale)
- ZEND_ARG_INFO(0, commonlyUsed)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_add, 0, 0, 2)
- ZEND_ARG_INFO(0, field)
- ZEND_ARG_INFO(0, amount)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_setTimeZone, 0, 0, 1)
- ZEND_ARG_INFO(0, timeZone)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_set, 0, 0, 2)
- ZEND_ARG_INFO(0, fieldOrYear)
- ZEND_ARG_INFO(0, valueOrMonth)
- ZEND_ARG_INFO(0, dayOfMonth)
- ZEND_ARG_INFO(0, hour)
- ZEND_ARG_INFO(0, minute)
- ZEND_ARG_INFO(0, second)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_roll, 0, 0, 2)
- ZEND_ARG_INFO(0, field)
- ZEND_ARG_INFO(0, amountOrUpOrDown)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_clear, 0, 0, 0)
- ZEND_ARG_INFO(0, field)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_field_difference, 0, 0, 2)
- ZEND_ARG_INFO(0, when)
- ZEND_ARG_INFO(0, field)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_get_locale, 0, 0, 1)
- ZEND_ARG_INFO(0, localeType)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_setLenient, 0, 0, 1)
- ZEND_ARG_INFO(0, isLenient)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_set_minimal_days_in_first_week, 0, 0, 1)
- ZEND_ARG_INFO(0, numberOfDays)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_from_date_time, 0, 0, 1)
- ZEND_ARG_INFO(0, dateTime)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_cal_wall_time_option, 0, 0, 1)
- ZEND_ARG_INFO(0, wallTimeOption)
-ZEND_END_ARG_INFO()
-
-/* Gregorian Calendar */
-ZEND_BEGIN_ARG_INFO_EX(ainfo_gregcal___construct, 0, 0, 0)
- ZEND_ARG_INFO(0, timeZoneOrYear)
- ZEND_ARG_INFO(0, localeOrMonth)
- ZEND_ARG_INFO(0, dayOfMonth)
- ZEND_ARG_INFO(0, hour)
- ZEND_ARG_INFO(0, minute)
- ZEND_ARG_INFO(0, second)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(ainfo_gregcal_isLeapYear, 0, 0, 1)
- ZEND_ARG_INFO(0, year)
-ZEND_END_ARG_INFO()
-
-/* }}} */
-
/* {{{ Calendar_class_functions
* Every 'IntlCalendar' class method has an entry in this table
*/
static const zend_function_entry Calendar_class_functions[] = {
- PHP_ME(IntlCalendar, __construct, ainfo_cal_void, ZEND_ACC_PRIVATE)
- PHP_ME_MAPPING(createInstance, intlcal_create_instance, ainfo_cal_createInstance, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getKeywordValuesForLocale, intlcal_get_keyword_values_for_locale, ainfo_cal_get_keyword_values_for_locale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getNow, intlcal_get_now, ainfo_cal_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getAvailableLocales, intlcal_get_available_locales, ainfo_cal_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(get, intlcal_get, ainfo_cal_field, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getTime, intlcal_get_time, ainfo_cal_void, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(setTime, intlcal_set_time, ainfo_cal_date, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(add, intlcal_add, ainfo_cal_add, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(setTimeZone, intlcal_set_time_zone, ainfo_cal_setTimeZone, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(after, intlcal_after, ainfo_cal_other_cal, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(before, intlcal_before, ainfo_cal_other_cal, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(set, intlcal_set, ainfo_cal_set, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(roll, intlcal_roll, ainfo_cal_roll, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(clear, intlcal_clear, ainfo_cal_clear, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(fieldDifference, intlcal_field_difference, ainfo_cal_field_difference, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getActualMaximum, intlcal_get_actual_maximum, ainfo_cal_field, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getActualMinimum, intlcal_get_actual_minimum, ainfo_cal_field, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getDayOfWeekType, intlcal_get_day_of_week_type, ainfo_cal_dow, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getFirstDayOfWeek, intlcal_get_first_day_of_week, ainfo_cal_void, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getGreatestMinimum, intlcal_get_greatest_minimum, ainfo_cal_field, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getLeastMaximum, intlcal_get_least_maximum, ainfo_cal_field, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getLocale, intlcal_get_locale, ainfo_cal_get_locale, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getMaximum, intlcal_get_maximum, ainfo_cal_field, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getMinimalDaysInFirstWeek, intlcal_get_minimal_days_in_first_week, ainfo_cal_void, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getMinimum, intlcal_get_minimum, ainfo_cal_field, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getTimeZone, intlcal_get_time_zone, ainfo_cal_void, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getType, intlcal_get_type, ainfo_cal_void, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getWeekendTransition,intlcal_get_weekend_transition, ainfo_cal_dow, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(inDaylightTime, intlcal_in_daylight_time, ainfo_cal_void, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(isEquivalentTo, intlcal_is_equivalent_to, ainfo_cal_other_cal, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(isLenient, intlcal_is_lenient, ainfo_cal_void, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(isSet, intlcal_is_set, ainfo_cal_field, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(isWeekend, intlcal_is_weekend, ainfo_cal_date_optional, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(setFirstDayOfWeek, intlcal_set_first_day_of_week, ainfo_cal_dow, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(setLenient, intlcal_set_lenient, ainfo_cal_setLenient, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(setMinimalDaysInFirstWeek,intlcal_set_minimal_days_in_first_week,ainfo_cal_set_minimal_days_in_first_week,ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(equals, intlcal_equals, ainfo_cal_other_cal, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getRepeatedWallTimeOption,intlcal_get_repeated_wall_time_option,ainfo_cal_void, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getSkippedWallTimeOption,intlcal_get_skipped_wall_time_option,ainfo_cal_void, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(setRepeatedWallTimeOption,intlcal_set_repeated_wall_time_option,ainfo_cal_wall_time_option,ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(setSkippedWallTimeOption,intlcal_set_skipped_wall_time_option,ainfo_cal_wall_time_option,ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(fromDateTime, intlcal_from_date_time, ainfo_cal_from_date_time, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(toDateTime, intlcal_to_date_time, ainfo_cal_void, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getErrorCode, intlcal_get_error_code, ainfo_cal_void, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getErrorMessage, intlcal_get_error_message, ainfo_cal_void, ZEND_ACC_PUBLIC)
+ PHP_ME(IntlCalendar, __construct, arginfo_class_IntlCalendar___construct, ZEND_ACC_PRIVATE)
+ PHP_ME_MAPPING(createInstance, intlcal_create_instance, arginfo_class_IntlCalendar_createInstance, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getKeywordValuesForLocale, intlcal_get_keyword_values_for_locale, arginfo_class_IntlCalendar_getKeywordValuesForLocale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getNow, intlcal_get_now, arginfo_class_IntlCalendar_getNow, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getAvailableLocales, intlcal_get_available_locales, arginfo_class_IntlCalendar_getAvailableLocales, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(get, intlcal_get, arginfo_class_IntlCalendar_get, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getTime, intlcal_get_time, arginfo_class_IntlCalendar_getTime, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(setTime, intlcal_set_time, arginfo_class_IntlCalendar_setTime, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(add, intlcal_add, arginfo_class_IntlCalendar_add, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(setTimeZone, intlcal_set_time_zone, arginfo_class_IntlCalendar_setTimeZone, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(after, intlcal_after, arginfo_class_IntlCalendar_after, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(before, intlcal_before, arginfo_class_IntlCalendar_before, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(set, intlcal_set, arginfo_class_IntlCalendar_set, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(roll, intlcal_roll, arginfo_class_IntlCalendar_roll, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(clear, intlcal_clear, arginfo_class_IntlCalendar_clear, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(fieldDifference, intlcal_field_difference, arginfo_class_IntlCalendar_fieldDifference, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getActualMaximum, intlcal_get_actual_maximum, arginfo_class_IntlCalendar_getActualMaximum, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getActualMinimum, intlcal_get_actual_minimum, arginfo_class_IntlCalendar_getActualMinimum, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getDayOfWeekType, intlcal_get_day_of_week_type, arginfo_class_IntlCalendar_getDayOfWeekType, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getFirstDayOfWeek, intlcal_get_first_day_of_week, arginfo_class_IntlCalendar_getFirstDayOfWeek, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getGreatestMinimum, intlcal_get_greatest_minimum, arginfo_class_IntlCalendar_getGreatestMinimum, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getLeastMaximum, intlcal_get_least_maximum, arginfo_class_IntlCalendar_getLeastMaximum, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getLocale, intlcal_get_locale, arginfo_class_IntlCalendar_getLocale, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getMaximum, intlcal_get_maximum, arginfo_class_IntlCalendar_getMaximum, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getMinimalDaysInFirstWeek, intlcal_get_minimal_days_in_first_week, arginfo_class_IntlCalendar_getMinimalDaysInFirstWeek, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getMinimum, intlcal_get_minimum, arginfo_class_IntlCalendar_getMinimum, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getTimeZone, intlcal_get_time_zone, arginfo_class_IntlCalendar_getTimeZone, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getType, intlcal_get_type, arginfo_class_IntlCalendar_getType, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getWeekendTransition,intlcal_get_weekend_transition, arginfo_class_IntlCalendar_getWeekendTransition, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(inDaylightTime, intlcal_in_daylight_time, arginfo_class_IntlCalendar_inDaylightTime, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(isEquivalentTo, intlcal_is_equivalent_to, arginfo_class_IntlCalendar_isEquivalentTo, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(isLenient, intlcal_is_lenient, arginfo_class_IntlCalendar_isLenient, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(isSet, intlcal_is_set, arginfo_class_IntlCalendar_isSet, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(isWeekend, intlcal_is_weekend, arginfo_class_IntlCalendar_isWeekend, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(setFirstDayOfWeek, intlcal_set_first_day_of_week, arginfo_class_IntlCalendar_setFirstDayOfWeek, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(setLenient, intlcal_set_lenient, arginfo_class_IntlCalendar_setLenient, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(setMinimalDaysInFirstWeek,intlcal_set_minimal_days_in_first_week, arginfo_class_IntlCalendar_setMinimalDaysInFirstWeek, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(equals, intlcal_equals, arginfo_class_IntlCalendar_equals, ZEND_ACC_PUBLIC)
+
+ PHP_ME_MAPPING(getRepeatedWallTimeOption, intlcal_get_repeated_wall_time_option, arginfo_class_IntlCalendar_getRepeatedWallTimeOption, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getSkippedWallTimeOption, intlcal_get_skipped_wall_time_option, arginfo_class_IntlCalendar_getSkippedWallTimeOption, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(setRepeatedWallTimeOption, intlcal_set_repeated_wall_time_option, arginfo_class_IntlCalendar_setRepeatedWallTimeOption, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(setSkippedWallTimeOption, intlcal_set_skipped_wall_time_option, arginfo_class_IntlCalendar_setSkippedWallTimeOption, ZEND_ACC_PUBLIC)
+
+ PHP_ME_MAPPING(fromDateTime, intlcal_from_date_time, arginfo_class_IntlCalendar_fromDateTime, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(toDateTime, intlcal_to_date_time, arginfo_class_IntlCalendar_toDateTime, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getErrorCode, intlcal_get_error_code, arginfo_class_IntlCalendar_getErrorCode, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getErrorMessage, intlcal_get_error_message, arginfo_class_IntlCalendar_getErrorMessage, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
@@ -426,10 +324,10 @@ static const zend_function_entry Calendar_class_functions[] = {
/* {{{ GregorianCalendar_class_functions
*/
static const zend_function_entry GregorianCalendar_class_functions[] = {
- PHP_ME(IntlGregorianCalendar, __construct, ainfo_gregcal___construct, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(setGregorianChange, intlgregcal_set_gregorian_change, ainfo_cal_date, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(getGregorianChange, intlgregcal_get_gregorian_change, ainfo_cal_void, ZEND_ACC_PUBLIC)
- PHP_ME_MAPPING(isLeapYear, intlgregcal_is_leap_year, ainfo_gregcal_isLeapYear, ZEND_ACC_PUBLIC)
+ PHP_ME(IntlGregorianCalendar, __construct, arginfo_class_IntlGregorianCalendar___construct, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(setGregorianChange, intlgregcal_set_gregorian_change, arginfo_class_IntlGregorianCalendar_setGregorianChange, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(getGregorianChange, intlgregcal_get_gregorian_change, arginfo_class_IntlGregorianCalendar_getGregorianChange, ZEND_ACC_PUBLIC)
+ PHP_ME_MAPPING(isLeapYear, intlgregcal_is_leap_year, arginfo_class_IntlGregorianCalendar_isLeapYear, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
diff --git a/ext/intl/calendar/calendar_methods.cpp b/ext/intl/calendar/calendar_methods.cpp
index 57d4a82599..473e459d13 100644
--- a/ext/intl/calendar/calendar_methods.cpp
+++ b/ext/intl/calendar/calendar_methods.cpp
@@ -415,7 +415,7 @@ U_CFUNC PHP_FUNCTION(intlcal_set)
co->ucal->set((int32_t)args[0], (int32_t)args[1], (int32_t)args[2]);
} else if (arg_num == 4) {
zend_argument_count_error("No variant with 4 arguments");
- return;
+ RETURN_THROWS();
} else if (arg_num == 5) {
co->ucal->set((int32_t)args[0], (int32_t)args[1], (int32_t)args[2], (int32_t)args[3], (int32_t)args[4]);
} else {
diff --git a/ext/intl/calendar/gregoriancalendar_methods.cpp b/ext/intl/calendar/gregoriancalendar_methods.cpp
index 72cbb1d2c6..3a4d75965a 100644
--- a/ext/intl/calendar/gregoriancalendar_methods.cpp
+++ b/ext/intl/calendar/gregoriancalendar_methods.cpp
@@ -60,7 +60,7 @@ static void _php_intlgregcal_constructor_body(
if (ZEND_NUM_ARGS() > 6 ||
zend_get_parameters_array_ex(ZEND_NUM_ARGS(), args) == FAILURE) {
zend_argument_count_error("Too many arguments");
- return;
+ RETURN_THROWS();
}
for (variant = ZEND_NUM_ARGS();
@@ -68,7 +68,7 @@ static void _php_intlgregcal_constructor_body(
variant--) {}
if (variant == 4) {
zend_argument_count_error("No variant with 4 arguments (excluding trailing NULLs)");
- return;
+ RETURN_THROWS();
}
// argument parsing