diff options
author | Máté Kocsis <kocsismate@woohoolabs.com> | 2019-11-21 19:35:25 +0100 |
---|---|---|
committer | Máté Kocsis <kocsismate@woohoolabs.com> | 2020-02-04 14:50:02 +0100 |
commit | a827db24f1231809b2600a3f0ff233f9c1c01a17 (patch) | |
tree | cc32ad5adbb04cc06f56dcb830420d157715a041 /ext/intl/calendar | |
parent | 223663807a1c1c219eb35064adad544087d568a3 (diff) | |
download | php-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.php | 278 | ||||
-rw-r--r-- | ext/intl/calendar/calendar_arginfo.h | 354 | ||||
-rw-r--r-- | ext/intl/calendar/calendar_class.cpp | 208 | ||||
-rw-r--r-- | ext/intl/calendar/calendar_methods.cpp | 2 | ||||
-rw-r--r-- | ext/intl/calendar/gregoriancalendar_methods.cpp | 4 |
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 |