From: Simon Podlipsky Date: Sat, 17 Aug 2019 10:28:49 +0000 (+0200) Subject: Add Calendar ext PHP stubs X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3b2329dae9f8e393717d363976afa64fa220aaa2;p=php Add Calendar ext PHP stubs Closes GH-4552. --- diff --git a/ext/calendar/calendar.c b/ext/calendar/calendar.c index 3c84bc47b6..4f9b3a04f6 100644 --- a/ext/calendar/calendar.c +++ b/ext/calendar/calendar.c @@ -25,6 +25,7 @@ #include "php.h" #include "ext/standard/info.h" +#include "calendar_arginfo.h" #include "php_calendar.h" #include "sdncal.h" @@ -36,100 +37,6 @@ #undef CAL_GREGORIAN #endif -/* {{{ arginfo */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_unixtojd, 0, 0, 0) - ZEND_ARG_INFO(0, timestamp) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_jdtounix, 0) - ZEND_ARG_INFO(0, jday) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_cal_info, 0, 0, 0) - ZEND_ARG_INFO(0, calendar) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_cal_days_in_month, 0) - ZEND_ARG_INFO(0, calendar) - ZEND_ARG_INFO(0, month) - ZEND_ARG_INFO(0, year) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_cal_to_jd, 0) - ZEND_ARG_INFO(0, calendar) - ZEND_ARG_INFO(0, month) - ZEND_ARG_INFO(0, day) - ZEND_ARG_INFO(0, year) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_cal_from_jd, 0) - ZEND_ARG_INFO(0, jd) - ZEND_ARG_INFO(0, calendar) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_jdtogregorian, 0) - ZEND_ARG_INFO(0, juliandaycount) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gregoriantojd, 0) - ZEND_ARG_INFO(0, month) - ZEND_ARG_INFO(0, day) - ZEND_ARG_INFO(0, year) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_jdtojulian, 0) - ZEND_ARG_INFO(0, juliandaycount) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_juliantojd, 0) - ZEND_ARG_INFO(0, month) - ZEND_ARG_INFO(0, day) - ZEND_ARG_INFO(0, year) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_jdtojewish, 0, 0, 1) - ZEND_ARG_INFO(0, juliandaycount) - ZEND_ARG_INFO(0, hebrew) - ZEND_ARG_INFO(0, fl) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_jewishtojd, 0) - ZEND_ARG_INFO(0, month) - ZEND_ARG_INFO(0, day) - ZEND_ARG_INFO(0, year) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_jdtofrench, 0) - ZEND_ARG_INFO(0, juliandaycount) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_frenchtojd, 0) - ZEND_ARG_INFO(0, month) - ZEND_ARG_INFO(0, day) - ZEND_ARG_INFO(0, year) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_jddayofweek, 0, 0, 1) - ZEND_ARG_INFO(0, juliandaycount) - ZEND_ARG_INFO(0, mode) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_jdmonthname, 0) - ZEND_ARG_INFO(0, juliandaycount) - ZEND_ARG_INFO(0, mode) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_easter_date, 0, 0, 0) - ZEND_ARG_INFO(0, year) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_easter_days, 0, 0, 0) - ZEND_ARG_INFO(0, year) - ZEND_ARG_INFO(0, method) -ZEND_END_ARG_INFO() - -/* }}} */ - static const zend_function_entry calendar_functions[] = { PHP_FE(jdtogregorian, arginfo_jdtogregorian) PHP_FE(gregoriantojd, arginfo_gregoriantojd) diff --git a/ext/calendar/calendar.stub.php b/ext/calendar/calendar.stub.php new file mode 100644 index 0000000000..06e965f740 --- /dev/null +++ b/ext/calendar/calendar.stub.php @@ -0,0 +1,45 @@ +&int&string>|false */ +function cal_from_jd(int $jd, int $calendar) {} + +/** @return array|false */ +function cal_info(?int $calendar = UNKNOWN) {} + +/** @return int|false */ +function cal_to_jd(int $calendar, int $month, int $day, int $year) {} + +function easter_date(int $year = UNKNOWN, int $method = CAL_EASTER_DEFAULT): int {} + +function easter_days(int $year = UNKNOWN, int $method = CAL_EASTER_DEFAULT): int {} + +function frenchtojd(int $month, int $day, int $year): int {} + +function gregoriantojd(int $month, int $day, int $year): int {} + +/** @return int|string */ +function jddayofweek(int $juliandaycount, int $mode = CAL_DOW_DAYNO) {} + +function jdmonthname(int $juliandaycount, int $mode): string {} + +function jdtofrench(int $juliandaycount): string {} + +function jdtogregorian(int $juliandaycount): string {} + +/** @return string|false */ +function jdtojewish(int $juliandaycount, bool $hebrew = false, int $fl = 0) {} + +function jdtojulian(int $juliandaycount): string {} + +/** @return int|false */ +function jdtounix(int $jday) {} + +function jewishtojd(int $month, int $day, int $year): int {} + +function juliantojd(int $month, int $day, int $year): int {} + +/** @return int|false */ +function unixtojd(int $timestamp = UNKNOWN) {} diff --git a/ext/calendar/calendar_arginfo.h b/ext/calendar/calendar_arginfo.h new file mode 100644 index 0000000000..9c11c9ce82 --- /dev/null +++ b/ext/calendar/calendar_arginfo.h @@ -0,0 +1,74 @@ +/* This is a generated file, edit the .stub.php file instead. */ + +ZEND_BEGIN_ARG_INFO_EX(arginfo_cal_days_in_month, 0, 0, 3) + ZEND_ARG_TYPE_INFO(0, calendar, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, month, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, year, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_cal_from_jd, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, jd, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, calendar, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_cal_info, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, calendar, IS_LONG, 1) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_cal_to_jd, 0, 0, 4) + ZEND_ARG_TYPE_INFO(0, calendar, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, month, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, day, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, year, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_easter_date, 0, 0, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, year, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, method, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_easter_days arginfo_easter_date + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_frenchtojd, 0, 3, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, month, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, day, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, year, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_gregoriantojd arginfo_frenchtojd + +ZEND_BEGIN_ARG_INFO_EX(arginfo_jddayofweek, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, juliandaycount, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_jdmonthname, 0, 2, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, juliandaycount, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_jdtofrench, 0, 1, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, juliandaycount, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_jdtogregorian arginfo_jdtofrench + +ZEND_BEGIN_ARG_INFO_EX(arginfo_jdtojewish, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, juliandaycount, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, hebrew, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, fl, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_jdtojulian arginfo_jdtofrench + +ZEND_BEGIN_ARG_INFO_EX(arginfo_jdtounix, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, jday, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_jewishtojd arginfo_frenchtojd + +#define arginfo_juliantojd arginfo_frenchtojd + +ZEND_BEGIN_ARG_INFO_EX(arginfo_unixtojd, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, timestamp, IS_LONG, 0) +ZEND_END_ARG_INFO()