Skip to content

Declare ext/calendar constants in stubs #8630

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 25, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 21 additions & 43 deletions ext/calendar/calendar.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

#include "php.h"
#include "ext/standard/info.h"
#include "calendar_arginfo.h"
#include "php_calendar.h"
#include "sdncal.h"

Expand All @@ -35,23 +34,6 @@
#undef CAL_GREGORIAN
#endif

zend_module_entry calendar_module_entry = {
STANDARD_MODULE_HEADER,
"calendar",
ext_functions,
PHP_MINIT(calendar),
NULL,
NULL,
NULL,
PHP_MINFO(calendar),
PHP_CALENDAR_VERSION,
STANDARD_MODULE_PROPERTIES,
};

#ifdef COMPILE_DL_CALENDAR
ZEND_GET_MODULE(calendar)
#endif

/* this order must match the conversion table below */
enum cal_name_type_t {
CAL_GREGORIAN = 0,
Expand Down Expand Up @@ -107,33 +89,29 @@ static const char alef_bet[25] = "0\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEB\
#define CAL_JEWISH_ADD_ALAFIM 0x4
#define CAL_JEWISH_ADD_GERESHAYIM 0x8

#include "calendar_arginfo.h"

zend_module_entry calendar_module_entry = {
STANDARD_MODULE_HEADER,
"calendar",
ext_functions,
PHP_MINIT(calendar),
NULL,
NULL,
NULL,
PHP_MINFO(calendar),
PHP_CALENDAR_VERSION,
STANDARD_MODULE_PROPERTIES,
};

#ifdef COMPILE_DL_CALENDAR
ZEND_GET_MODULE(calendar)
#endif

PHP_MINIT_FUNCTION(calendar)
{
REGISTER_LONG_CONSTANT("CAL_GREGORIAN", CAL_GREGORIAN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_JULIAN", CAL_JULIAN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_JEWISH", CAL_JEWISH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_FRENCH", CAL_FRENCH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_NUM_CALS", CAL_NUM_CALS, CONST_CS | CONST_PERSISTENT);
/* constants for jddayofweek */
REGISTER_LONG_CONSTANT("CAL_DOW_DAYNO", CAL_DOW_DAYNO, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_DOW_SHORT", CAL_DOW_SHORT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_DOW_LONG", CAL_DOW_LONG, CONST_CS | CONST_PERSISTENT);
/* constants for jdmonthname */
REGISTER_LONG_CONSTANT("CAL_MONTH_GREGORIAN_SHORT", CAL_MONTH_GREGORIAN_SHORT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_MONTH_GREGORIAN_LONG", CAL_MONTH_GREGORIAN_LONG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_MONTH_JULIAN_SHORT", CAL_MONTH_JULIAN_SHORT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_MONTH_JULIAN_LONG", CAL_MONTH_JULIAN_LONG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_MONTH_JEWISH", CAL_MONTH_JEWISH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_MONTH_FRENCH", CAL_MONTH_FRENCH, CONST_CS | CONST_PERSISTENT);
/* constants for easter calculation */
REGISTER_LONG_CONSTANT("CAL_EASTER_DEFAULT", CAL_EASTER_DEFAULT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_EASTER_ROMAN", CAL_EASTER_ROMAN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_EASTER_ALWAYS_GREGORIAN", CAL_EASTER_ALWAYS_GREGORIAN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_EASTER_ALWAYS_JULIAN", CAL_EASTER_ALWAYS_JULIAN, CONST_CS | CONST_PERSISTENT);
/* constants for Jewish date formatting */
REGISTER_LONG_CONSTANT("CAL_JEWISH_ADD_ALAFIM_GERESH", CAL_JEWISH_ADD_ALAFIM_GERESH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_JEWISH_ADD_ALAFIM", CAL_JEWISH_ADD_ALAFIM, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_JEWISH_ADD_GERESHAYIM", CAL_JEWISH_ADD_GERESHAYIM, CONST_CS | CONST_PERSISTENT);
register_calendar_consts(module_number);

return SUCCESS;
}

Expand Down
110 changes: 110 additions & 0 deletions ext/calendar/calendar.stub.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,116 @@

/** @generate-class-entries */

/**
* @var int
* @cname CAL_GREGORIAN
*/
const CAL_GREGORIAN = UNKNOWN;
/**
* @var int
* @cname CAL_JULIAN
*/
const CAL_JULIAN = UNKNOWN;
/**
* @var int
* @cname CAL_JEWISH
*/
const CAL_JEWISH = UNKNOWN;
/**
* @var int
* @cname CAL_FRENCH
*/
const CAL_FRENCH = UNKNOWN;
/**
* @var int
* @cname CAL_NUM_CALS
*/
const CAL_NUM_CALS = UNKNOWN;

/**
* @var int
* @cname CAL_DOW_DAYNO
*/
const CAL_DOW_DAYNO = UNKNOWN;
/**
* @var int
* @cname CAL_DOW_SHORT
*/
const CAL_DOW_SHORT = UNKNOWN;
/**
* @var int
* @cname CAL_DOW_LONG
*/
const CAL_DOW_LONG = UNKNOWN;

/**
* @var int
* @cname CAL_MONTH_GREGORIAN_SHORT
*/
const CAL_MONTH_GREGORIAN_SHORT = UNKNOWN;
/**
* @var int
* @cname CAL_MONTH_GREGORIAN_LONG
*/
const CAL_MONTH_GREGORIAN_LONG = UNKNOWN;
/**
* @var int
* @cname CAL_MONTH_JULIAN_SHORT
*/
const CAL_MONTH_JULIAN_SHORT = UNKNOWN;
/**
* @var int
* @cname CAL_MONTH_JULIAN_LONG
*/
const CAL_MONTH_JULIAN_LONG = UNKNOWN;
/**
* @var int
* @cname CAL_MONTH_JEWISH
*/
const CAL_MONTH_JEWISH = UNKNOWN;
/**
* @var int
* @cname CAL_MONTH_FRENCH
*/
const CAL_MONTH_FRENCH = UNKNOWN;

/**
* @var int
* @cname CAL_EASTER_DEFAULT
*/
const CAL_EASTER_DEFAULT = UNKNOWN;
/**
* @var int
* @cname CAL_EASTER_ROMAN
*/
const CAL_EASTER_ROMAN = UNKNOWN;
/**
* @var int
* @cname CAL_EASTER_ALWAYS_GREGORIAN
*/
const CAL_EASTER_ALWAYS_GREGORIAN = UNKNOWN;
/**
* @var int
* @cname CAL_EASTER_ALWAYS_JULIAN
*/
const CAL_EASTER_ALWAYS_JULIAN = UNKNOWN;

/**
* @var int
* @cname CAL_JEWISH_ADD_ALAFIM_GERESH
*/
const CAL_JEWISH_ADD_ALAFIM_GERESH = UNKNOWN;
/**
* @var int
* @cname CAL_JEWISH_ADD_ALAFIM
*/
const CAL_JEWISH_ADD_ALAFIM = UNKNOWN;
/**
* @var int
* @cname CAL_JEWISH_ADD_GERESHAYIM
*/
const CAL_JEWISH_ADD_GERESHAYIM = UNKNOWN;

function cal_days_in_month(int $calendar, int $month, int $year): int {}

/**
Expand Down
27 changes: 26 additions & 1 deletion ext/calendar/calendar_arginfo.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: 574dfd0c871b5c71677a3bfa07fd605aea343477 */
* Stub hash: 6030cc249e7c1950818b3060ed2e565119710546 */

ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_cal_days_in_month, 0, 3, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, calendar, IS_LONG, 0)
Expand Down Expand Up @@ -116,3 +116,28 @@ static const zend_function_entry ext_functions[] = {
ZEND_FE(unixtojd, arginfo_unixtojd)
ZEND_FE_END
};

static void register_calendar_consts(int module_number)
{
REGISTER_LONG_CONSTANT("CAL_GREGORIAN", CAL_GREGORIAN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_JULIAN", CAL_JULIAN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_JEWISH", CAL_JEWISH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_FRENCH", CAL_FRENCH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_NUM_CALS", CAL_NUM_CALS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_DOW_DAYNO", CAL_DOW_DAYNO, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_DOW_SHORT", CAL_DOW_SHORT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_DOW_LONG", CAL_DOW_LONG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_MONTH_GREGORIAN_SHORT", CAL_MONTH_GREGORIAN_SHORT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_MONTH_GREGORIAN_LONG", CAL_MONTH_GREGORIAN_LONG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_MONTH_JULIAN_SHORT", CAL_MONTH_JULIAN_SHORT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_MONTH_JULIAN_LONG", CAL_MONTH_JULIAN_LONG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_MONTH_JEWISH", CAL_MONTH_JEWISH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_MONTH_FRENCH", CAL_MONTH_FRENCH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_EASTER_DEFAULT", CAL_EASTER_DEFAULT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_EASTER_ROMAN", CAL_EASTER_ROMAN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_EASTER_ALWAYS_GREGORIAN", CAL_EASTER_ALWAYS_GREGORIAN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_EASTER_ALWAYS_JULIAN", CAL_EASTER_ALWAYS_JULIAN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_JEWISH_ADD_ALAFIM_GERESH", CAL_JEWISH_ADD_ALAFIM_GERESH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_JEWISH_ADD_ALAFIM", CAL_JEWISH_ADD_ALAFIM, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CAL_JEWISH_ADD_GERESHAYIM", CAL_JEWISH_ADD_GERESHAYIM, CONST_CS | CONST_PERSISTENT);
}