]> granicus.if.org Git - php/commitdiff
Add stubs for IntlCalendar
authorMáté Kocsis <kocsismate@woohoolabs.com>
Thu, 21 Nov 2019 18:35:25 +0000 (19:35 +0100)
committerMáté Kocsis <kocsismate@woohoolabs.com>
Tue, 4 Feb 2020 13:50:02 +0000 (14:50 +0100)
Closes GH-4846

ext/intl/calendar/calendar.stub.php [new file with mode: 0644]
ext/intl/calendar/calendar_arginfo.h [new file with mode: 0644]
ext/intl/calendar/calendar_class.cpp
ext/intl/calendar/calendar_methods.cpp
ext/intl/calendar/gregoriancalendar_methods.cpp
ext/intl/php_intl.c

diff --git a/ext/intl/calendar/calendar.stub.php b/ext/intl/calendar/calendar.stub.php
new file mode 100644 (file)
index 0000000..267035e
--- /dev/null
@@ -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 (file)
index 0000000..efe8903
--- /dev/null
@@ -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()
index 449b220909564eecd252f12732a2ce951e1f800f..62cf907c4940d751e55ff95b91816ae07747ad5a 100644 (file)
@@ -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
 };
 /* }}} */
index 57d4a825998a9f8f73d53c711fe4defc3b76baa8..473e459d13958e330ae64e509fa98f884372b907 100644 (file)
@@ -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 {
index 72cbb1d2c61ffc15fb3403944ea42c29636d7a4b..3a4d75965a0e2f86339de761584ee2bf1ac14473 100644 (file)
@@ -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
index 872d5271bc042110d6b0219e53c7f931074d7e11..b7bab203a7bef47d6c904d822ae29dfa8eaf05b3 100644 (file)
@@ -84,6 +84,7 @@
 #include "calendar/calendar_class.h"
 #include "calendar/calendar_methods.h"
 #include "calendar/gregoriancalendar_methods.h"
+#include "calendar/calendar_arginfo.h"
 
 #include "breakiterator/breakiterator_class.h"
 #include "breakiterator/breakiterator_iterators.h"
@@ -256,135 +257,6 @@ ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_error, 0, 0, 1 )
        ZEND_ARG_OBJ_INFO( 0, trans, Transliterator, 0 )
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_create_instance, 0, 0, 0 )
-       ZEND_ARG_INFO( 0, timeZone )
-       ZEND_ARG_INFO( 0, locale )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_only_cal, 0, 0, 1 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-ZEND_END_ARG_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, 2 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       ZEND_ARG_INFO( 0, field )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_dow, 0, 0, 2 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       ZEND_ARG_INFO( 0, dayOfWeek )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_other_cal, 0, 0, 2 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       ZEND_ARG_OBJ_INFO( 0, otherCalendar, IntlCalendar, 0 )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_date, 0, 0, 2 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       ZEND_ARG_INFO( 0, date )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_date_optional, 0, 0, 1 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       ZEND_ARG_INFO( 0, date )
-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, 3 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       ZEND_ARG_INFO( 0, field )
-       ZEND_ARG_INFO( 0, amount )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_set_time_zone, 0, 0, 2 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       ZEND_ARG_INFO( 0, timeZone )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_set, 0, 0, 3 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       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_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       ZEND_ARG_INFO( 0, field )
-       ZEND_ARG_INFO( 0, amountOrUpOrDown )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_clear, 0, 0, 1 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       ZEND_ARG_INFO( 0, field )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_field_difference, 0, 0, 3 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       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, 2 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       ZEND_ARG_INFO( 0, localeType )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_set_lenient, 0, 0, 2 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       ZEND_ARG_INFO( 0, isLenient )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_set_minimal_days_in_first_week, 0, 0, 2 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       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, 2 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlCalendar, 0 )
-       ZEND_ARG_INFO( 0, wallTimeOption )
-ZEND_END_ARG_INFO()
-
-/* Gregorian Calendar */
-ZEND_BEGIN_ARG_INFO_EX( ainfo_gregcal_create_instance, 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_is_leap_year, 0, 0, 2 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlGregorianCalendar, 0 )
-       ZEND_ARG_INFO( 0, year )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_gregcal_only_gregcal, 0, 0, 1 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlGregorianCalendar, 0 )
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX( ainfo_gregcal_set_gregorian_change, 0, 0, 2 )
-       ZEND_ARG_OBJ_INFO( 0, calendar, IntlGregorianCalendar, 0 )
-       ZEND_ARG_INFO( 0, date )
-ZEND_END_ARG_INFO()
-
 /* }}} */
 
 /* {{{ intl_functions
@@ -543,56 +415,56 @@ static const zend_function_entry intl_functions[] = {
        PHP_FE( intltz_get_error_code, arginfo_intltz_get_error_code )
        PHP_FE( intltz_get_error_message, arginfo_intltz_get_error_message )
 
-       PHP_FE( intlcal_create_instance, ainfo_cal_create_instance )
-       PHP_FE( intlcal_get_keyword_values_for_locale, ainfo_cal_get_keyword_values_for_locale )
-       PHP_FE( intlcal_get_now, ainfo_cal_void )
-       PHP_FE( intlcal_get_available_locales, ainfo_cal_void )
-       PHP_FE( intlcal_get, ainfo_cal_field )
-       PHP_FE( intlcal_get_time, ainfo_cal_only_cal )
-       PHP_FE( intlcal_set_time, ainfo_cal_date )
-       PHP_FE( intlcal_add, ainfo_cal_add )
-       PHP_FE( intlcal_set_time_zone, ainfo_cal_set_time_zone )
-       PHP_FE( intlcal_after, ainfo_cal_other_cal )
-       PHP_FE( intlcal_before, ainfo_cal_other_cal )
-       PHP_FE( intlcal_set, ainfo_cal_set )
-       PHP_FE( intlcal_roll, ainfo_cal_roll )
-       PHP_FE( intlcal_clear, ainfo_cal_clear )
-       PHP_FE( intlcal_field_difference, ainfo_cal_field_difference )
-       PHP_FE( intlcal_get_actual_maximum, ainfo_cal_field )
-       PHP_FE( intlcal_get_actual_minimum, ainfo_cal_field )
-       PHP_FE( intlcal_get_day_of_week_type, ainfo_cal_dow )
-       PHP_FE( intlcal_get_first_day_of_week, ainfo_cal_only_cal )
-       PHP_FE( intlcal_get_greatest_minimum, ainfo_cal_field )
-       PHP_FE( intlcal_get_least_maximum, ainfo_cal_field )
-       PHP_FE( intlcal_get_locale, ainfo_cal_get_locale )
-       PHP_FE( intlcal_get_maximum, ainfo_cal_field )
-       PHP_FE( intlcal_get_minimal_days_in_first_week, ainfo_cal_only_cal )
-       PHP_FE( intlcal_get_minimum, ainfo_cal_field )
-       PHP_FE( intlcal_get_time_zone, ainfo_cal_only_cal )
-       PHP_FE( intlcal_get_type, ainfo_cal_only_cal )
-       PHP_FE( intlcal_get_weekend_transition, ainfo_cal_dow )
-       PHP_FE( intlcal_in_daylight_time, ainfo_cal_only_cal )
-       PHP_FE( intlcal_is_equivalent_to, ainfo_cal_other_cal )
-       PHP_FE( intlcal_is_lenient, ainfo_cal_only_cal )
-       PHP_FE( intlcal_is_set, ainfo_cal_field )
-       PHP_FE( intlcal_is_weekend, ainfo_cal_date_optional )
-       PHP_FE( intlcal_set_first_day_of_week, ainfo_cal_dow )
-       PHP_FE( intlcal_set_lenient, ainfo_cal_set_lenient )
-       PHP_FE( intlcal_set_minimal_days_in_first_week, ainfo_cal_set_minimal_days_in_first_week )
-       PHP_FE( intlcal_equals, ainfo_cal_other_cal )
-       PHP_FE( intlcal_from_date_time, ainfo_cal_from_date_time )
-       PHP_FE( intlcal_to_date_time, ainfo_cal_only_cal )
-       PHP_FE( intlcal_get_repeated_wall_time_option, ainfo_cal_only_cal )
-       PHP_FE( intlcal_get_skipped_wall_time_option, ainfo_cal_only_cal )
-       PHP_FE( intlcal_set_repeated_wall_time_option, ainfo_cal_wall_time_option )
-       PHP_FE( intlcal_set_skipped_wall_time_option, ainfo_cal_wall_time_option )
-       PHP_FE( intlcal_get_error_code, ainfo_cal_only_cal )
-       PHP_FE( intlcal_get_error_message, ainfo_cal_only_cal )
-
-       PHP_FE( intlgregcal_create_instance, ainfo_gregcal_create_instance )
-       PHP_FE( intlgregcal_set_gregorian_change, ainfo_gregcal_set_gregorian_change )
-       PHP_FE( intlgregcal_get_gregorian_change, ainfo_gregcal_only_gregcal )
-       PHP_FE( intlgregcal_is_leap_year, ainfo_gregcal_is_leap_year )
+       PHP_FE( intlcal_create_instance, arginfo_intlcal_create_instance )
+       PHP_FE( intlcal_get_keyword_values_for_locale, arginfo_intlcal_get_keyword_values_for_locale )
+       PHP_FE( intlcal_get_now, arginfo_intlcal_get_now )
+       PHP_FE( intlcal_get_available_locales, arginfo_intlcal_get_available_locales )
+       PHP_FE( intlcal_get, arginfo_intlcal_get )
+       PHP_FE( intlcal_get_time, arginfo_intlcal_get_time )
+       PHP_FE( intlcal_set_time, arginfo_intlcal_set_time )
+       PHP_FE( intlcal_add, arginfo_intlcal_add )
+       PHP_FE( intlcal_set_time_zone, arginfo_intlcal_set_time_zone )
+       PHP_FE( intlcal_after, arginfo_intlcal_after )
+       PHP_FE( intlcal_before, arginfo_intlcal_before )
+       PHP_FE( intlcal_set, arginfo_intlcal_set )
+       PHP_FE( intlcal_roll, arginfo_intlcal_roll )
+       PHP_FE( intlcal_clear, arginfo_intlcal_clear )
+       PHP_FE( intlcal_field_difference, arginfo_intlcal_field_difference )
+       PHP_FE( intlcal_get_actual_maximum, arginfo_intlcal_get_actual_maximum )
+       PHP_FE( intlcal_get_actual_minimum, arginfo_intlcal_get_actual_minimum )
+       PHP_FE( intlcal_get_day_of_week_type, arginfo_intlcal_get_day_of_week_type )
+       PHP_FE( intlcal_get_first_day_of_week, arginfo_intlcal_get_first_day_of_week )
+       PHP_FE( intlcal_get_greatest_minimum, arginfo_intlcal_get_greatest_minimum )
+       PHP_FE( intlcal_get_least_maximum, arginfo_intlcal_get_least_maximum )
+       PHP_FE( intlcal_get_locale, arginfo_intlcal_get_locale )
+       PHP_FE( intlcal_get_maximum, arginfo_intlcal_get_maximum )
+       PHP_FE( intlcal_get_minimal_days_in_first_week, arginfo_intlcal_get_minimal_days_in_first_week )
+       PHP_FE( intlcal_get_minimum, arginfo_intlcal_get_minimum )
+       PHP_FE( intlcal_get_time_zone, arginfo_intlcal_get_time_zone )
+       PHP_FE( intlcal_get_type, arginfo_intlcal_get_type )
+       PHP_FE( intlcal_get_weekend_transition, arginfo_intlcal_get_weekend_transition )
+       PHP_FE( intlcal_in_daylight_time, arginfo_intlcal_in_daylight_time )
+       PHP_FE( intlcal_is_equivalent_to, arginfo_intlcal_is_equivalent_to )
+       PHP_FE( intlcal_is_lenient, arginfo_intlcal_is_lenient )
+       PHP_FE( intlcal_is_set, arginfo_intlcal_is_set )
+       PHP_FE( intlcal_is_weekend, arginfo_intlcal_is_weekend )
+       PHP_FE( intlcal_set_first_day_of_week, arginfo_intlcal_set_first_day_of_week )
+       PHP_FE( intlcal_set_lenient, arginfo_intlcal_set_lenient )
+       PHP_FE( intlcal_set_minimal_days_in_first_week, arginfo_intlcal_set_minimal_days_in_first_week )
+       PHP_FE( intlcal_equals, arginfo_intlcal_equals )
+       PHP_FE( intlcal_from_date_time, arginfo_intlcal_from_date_time )
+       PHP_FE( intlcal_to_date_time, arginfo_intlcal_to_date_time )
+       PHP_FE( intlcal_get_repeated_wall_time_option, arginfo_intlcal_get_repeated_wall_time_option )
+       PHP_FE( intlcal_get_skipped_wall_time_option, arginfo_intlcal_get_skipped_wall_time_option )
+       PHP_FE( intlcal_set_repeated_wall_time_option, arginfo_intlcal_set_repeated_wall_time_option )
+       PHP_FE( intlcal_set_skipped_wall_time_option, arginfo_intlcal_set_skipped_wall_time_option )
+       PHP_FE( intlcal_get_error_code, arginfo_intlcal_get_error_code )
+       PHP_FE( intlcal_get_error_message, arginfo_intlcal_get_error_message )
+
+       PHP_FE( intlgregcal_create_instance, arginfo_intlgregcal_create_instance )
+       PHP_FE( intlgregcal_set_gregorian_change, arginfo_intlgregcal_set_gregorian_change )
+       PHP_FE( intlgregcal_get_gregorian_change, arginfo_intlgregcal_get_gregorian_change )
+       PHP_FE( intlgregcal_is_leap_year, arginfo_intlgregcal_is_leap_year )
 
        /* common functions */
        PHP_FE( intl_get_error_code, intl_0_args )