summaryrefslogtreecommitdiff
path: root/ext/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'ext/calendar')
-rw-r--r--ext/calendar/cal_unix.c2
-rw-r--r--ext/calendar/calendar.c125
-rw-r--r--ext/calendar/calendar.stub.php46
-rw-r--r--ext/calendar/calendar_arginfo.h77
-rw-r--r--ext/calendar/easter.c2
-rw-r--r--ext/calendar/tests/jdtomonthname.phpt23
6 files changed, 138 insertions, 137 deletions
diff --git a/ext/calendar/cal_unix.c b/ext/calendar/cal_unix.c
index e24ac56a25..e2c7cf064a 100644
--- a/ext/calendar/cal_unix.c
+++ b/ext/calendar/cal_unix.c
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
diff --git a/ext/calendar/calendar.c b/ext/calendar/calendar.c
index 3c7236de9a..e450722dd0 100644
--- a/ext/calendar/calendar.c
+++ b/ext/calendar/calendar.c
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
@@ -25,6 +23,7 @@
#include "php.h"
#include "ext/standard/info.h"
+#include "calendar_arginfo.h"
#include "php_calendar.h"
#include "sdncal.h"
@@ -36,100 +35,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)
@@ -295,7 +200,7 @@ PHP_FUNCTION(cal_info)
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|l", &cal) == FAILURE) {
- RETURN_FALSE;
+ return;
}
if (cal == -1) {
@@ -331,7 +236,7 @@ PHP_FUNCTION(cal_days_in_month)
zend_long sdn_start, sdn_next;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "lll", &cal, &month, &year) == FAILURE) {
- RETURN_FALSE;
+ return;
}
if (cal < 0 || cal >= CAL_NUM_CALS) {
@@ -377,7 +282,7 @@ PHP_FUNCTION(cal_to_jd)
zend_long cal, month, day, year;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "llll", &cal, &month, &day, &year) != SUCCESS) {
- RETURN_FALSE;
+ return;
}
if (cal < 0 || cal >= CAL_NUM_CALS) {
@@ -398,7 +303,7 @@ PHP_FUNCTION(cal_from_jd)
const struct cal_entry_t *calendar;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ll", &jd, &cal) == FAILURE) {
- RETURN_FALSE;
+ return;
}
if (cal < 0 || cal >= CAL_NUM_CALS) {
@@ -449,7 +354,7 @@ PHP_FUNCTION(jdtogregorian)
int year, month, day;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &julday) == FAILURE) {
- RETURN_FALSE;
+ return;
}
SdnToGregorian(julday, &year, &month, &day);
@@ -465,7 +370,7 @@ PHP_FUNCTION(gregoriantojd)
zend_long year, month, day;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "lll", &month, &day, &year) == FAILURE) {
- RETURN_FALSE;
+ return;
}
RETURN_LONG(GregorianToSdn(year, month, day));
@@ -480,7 +385,7 @@ PHP_FUNCTION(jdtojulian)
int year, month, day;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &julday) == FAILURE) {
- RETURN_FALSE;
+ return;
}
SdnToJulian(julday, &year, &month, &day);
@@ -496,7 +401,7 @@ PHP_FUNCTION(juliantojd)
zend_long year, month, day;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "lll", &month, &day, &year) == FAILURE) {
- RETURN_FALSE;
+ return;
}
RETURN_LONG(JulianToSdn(year, month, day));
@@ -609,7 +514,7 @@ PHP_FUNCTION(jdtojewish)
char *dayp, *yearp;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "l|bl", &julday, &heb, &fl) == FAILURE) {
- RETURN_FALSE;
+ return;
}
SdnToJewish(julday, &year, &month, &day);
@@ -640,7 +545,7 @@ PHP_FUNCTION(jewishtojd)
zend_long year, month, day;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "lll", &month, &day, &year) == FAILURE) {
- RETURN_FALSE;
+ return;
}
RETURN_LONG(JewishToSdn(year, month, day));
@@ -655,7 +560,7 @@ PHP_FUNCTION(jdtofrench)
int year, month, day;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &julday) == FAILURE) {
- RETURN_FALSE;
+ return;
}
SdnToFrench(julday, &year, &month, &day);
@@ -671,7 +576,7 @@ PHP_FUNCTION(frenchtojd)
zend_long year, month, day;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "lll", &month, &day, &year) == FAILURE) {
- RETURN_FALSE;
+ return;
}
RETURN_LONG(FrenchToSdn(year, month, day));
@@ -687,7 +592,7 @@ PHP_FUNCTION(jddayofweek)
const char *daynamel, *daynames;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "l|l", &julday, &mode) == FAILURE) {
- RETURN_FALSE;
+ return;
}
day = DayOfWeek(julday);
@@ -718,7 +623,7 @@ PHP_FUNCTION(jdmonthname)
int month, day, year;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ll", &julday, &mode) == FAILURE) {
- RETURN_FALSE;
+ return;
}
switch (mode) {
diff --git a/ext/calendar/calendar.stub.php b/ext/calendar/calendar.stub.php
new file mode 100644
index 0000000000..da08cd7037
--- /dev/null
+++ b/ext/calendar/calendar.stub.php
@@ -0,0 +1,46 @@
+<?php
+
+/** @return int|false */
+function cal_days_in_month(int $calendar, int $month, int $year) {}
+
+/** @return array<string, array<int, string>&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) {}
+
+/** @return int|false */
+function easter_date(int $year = UNKNOWN, int $method = CAL_EASTER_DEFAULT) {}
+
+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..6e526062b0
--- /dev/null
+++ b/ext/calendar/calendar_arginfo.h
@@ -0,0 +1,77 @@
+/* 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_INFO_EX(arginfo_easter_date, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, year, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, method, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_easter_days, 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()
+
+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()
diff --git a/ext/calendar/easter.c b/ext/calendar/easter.c
index 2b9a2562e1..36c851d94f 100644
--- a/ext/calendar/easter.c
+++ b/ext/calendar/easter.c
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
diff --git a/ext/calendar/tests/jdtomonthname.phpt b/ext/calendar/tests/jdtomonthname.phpt
index 2ad50a450e..c7fa6cc774 100644
--- a/ext/calendar/tests/jdtomonthname.phpt
+++ b/ext/calendar/tests/jdtomonthname.phpt
@@ -9,7 +9,6 @@ $jd_days = Array(
2453396,
2440588,
-1,
- array(),
10000000
);
@@ -52,28 +51,6 @@ string(0) ""
string(0) ""
string(0) ""
-===
-Notice: Array to string conversion in %sjdtomonthname.php on line %d
-Array
-
-Warning: jdmonthname() expects parameter 1 to be int, array given in %s on line %d
-bool(false)
-
-Warning: jdmonthname() expects parameter 1 to be int, array given in %s on line %d
-bool(false)
-
-Warning: jdmonthname() expects parameter 1 to be int, array given in %s on line %d
-bool(false)
-
-Warning: jdmonthname() expects parameter 1 to be int, array given in %s on line %d
-bool(false)
-
-Warning: jdmonthname() expects parameter 1 to be int, array given in %s on line %d
-bool(false)
-
-Warning: jdmonthname() expects parameter 1 to be int, array given in %s on line %d
-bool(false)
-
=== 10000000
string(3) "Dec"
string(8) "December"