Skip to content

Commit f9980e6

Browse files
committed
Convert gettext functions arginfo to php stubs
Closes GH-4506
1 parent b98bc5b commit f9980e6

File tree

3 files changed

+96
-60
lines changed

3 files changed

+96
-60
lines changed

ext/gettext/gettext.c

Lines changed: 1 addition & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -27,66 +27,7 @@
2727
#include <stdio.h>
2828
#include "ext/standard/info.h"
2929
#include "php_gettext.h"
30-
31-
/* {{{ arginfo */
32-
ZEND_BEGIN_ARG_INFO(arginfo_textdomain, 0)
33-
ZEND_ARG_INFO(0, domain)
34-
ZEND_END_ARG_INFO()
35-
36-
ZEND_BEGIN_ARG_INFO(arginfo_gettext, 0)
37-
ZEND_ARG_INFO(0, msgid)
38-
ZEND_END_ARG_INFO()
39-
40-
ZEND_BEGIN_ARG_INFO(arginfo_dgettext, 0)
41-
ZEND_ARG_INFO(0, domain_name)
42-
ZEND_ARG_INFO(0, msgid)
43-
ZEND_END_ARG_INFO()
44-
45-
ZEND_BEGIN_ARG_INFO(arginfo_dcgettext, 0)
46-
ZEND_ARG_INFO(0, domain_name)
47-
ZEND_ARG_INFO(0, msgid)
48-
ZEND_ARG_INFO(0, category)
49-
ZEND_END_ARG_INFO()
50-
51-
ZEND_BEGIN_ARG_INFO(arginfo_bindtextdomain, 0)
52-
ZEND_ARG_INFO(0, domain_name)
53-
ZEND_ARG_INFO(0, dir)
54-
ZEND_END_ARG_INFO()
55-
56-
#if HAVE_NGETTEXT
57-
ZEND_BEGIN_ARG_INFO(arginfo_ngettext, 0)
58-
ZEND_ARG_INFO(0, msgid1)
59-
ZEND_ARG_INFO(0, msgid2)
60-
ZEND_ARG_INFO(0, count)
61-
ZEND_END_ARG_INFO()
62-
#endif
63-
64-
#if HAVE_DNGETTEXT
65-
ZEND_BEGIN_ARG_INFO(arginfo_dngettext, 0)
66-
ZEND_ARG_INFO(0, domain)
67-
ZEND_ARG_INFO(0, msgid1)
68-
ZEND_ARG_INFO(0, msgid2)
69-
ZEND_ARG_INFO(0, count)
70-
ZEND_END_ARG_INFO()
71-
#endif
72-
73-
#if HAVE_DCNGETTEXT
74-
ZEND_BEGIN_ARG_INFO(arginfo_dcngettext, 0)
75-
ZEND_ARG_INFO(0, domain)
76-
ZEND_ARG_INFO(0, msgid1)
77-
ZEND_ARG_INFO(0, msgid2)
78-
ZEND_ARG_INFO(0, count)
79-
ZEND_ARG_INFO(0, category)
80-
ZEND_END_ARG_INFO()
81-
#endif
82-
83-
#if HAVE_BIND_TEXTDOMAIN_CODESET
84-
ZEND_BEGIN_ARG_INFO(arginfo_bind_textdomain_codeset, 0)
85-
ZEND_ARG_INFO(0, domain)
86-
ZEND_ARG_INFO(0, codeset)
87-
ZEND_END_ARG_INFO()
88-
#endif
89-
/* }}} */
30+
#include "gettext_arginfo.h"
9031

9132
/* {{{ php_gettext_functions[]
9233
*/

ext/gettext/gettext.stub.php

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
3+
/** @return string|false */
4+
function textdomain(?string $domain) {}
5+
6+
/** @return string|false */
7+
function gettext(string $msgid) {}
8+
9+
/** @return string|false */
10+
function dgettext(string $domain_name, string $msgid) {}
11+
12+
/** @return string|false */
13+
function dcgettext(string $domain_name, string $msgid, int $category) {}
14+
15+
/** @return string|false */
16+
function bindtextdomain(string $domain_name, string $dir) {}
17+
18+
#if HAVE_NGETTEXT
19+
/** @return string|false */
20+
function ngettext(string $msgid1, string $msgid2, int $n) {}
21+
#endif
22+
23+
#if HAVE_DNGETTEXT
24+
/** @return string|false */
25+
function dngettext(string $domain, string $msgid1, string $msgid2, int $count) {}
26+
#endif
27+
28+
#if HAVE_DCNGETTEXT
29+
/** @return string|false */
30+
function dcngettext(string $domain, string $msgid1, string $msgid2, int $count, int $category) {}
31+
#endif
32+
33+
#if HAVE_BIND_TEXTDOMAIN_CODESET
34+
/** @return string|false */
35+
function bind_textdomain_codeset(string $domain, string $codeset) {}
36+
#endif

ext/gettext/gettext_arginfo.h

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/* This is a generated file, edit the .stub.php file instead. */
2+
3+
ZEND_BEGIN_ARG_INFO_EX(arginfo_textdomain, 0, 0, 0)
4+
ZEND_ARG_TYPE_INFO(0, domain, IS_STRING, 1)
5+
ZEND_END_ARG_INFO()
6+
7+
ZEND_BEGIN_ARG_INFO_EX(arginfo_gettext, 0, 0, 1)
8+
ZEND_ARG_TYPE_INFO(0, msgid, IS_STRING, 0)
9+
ZEND_END_ARG_INFO()
10+
11+
ZEND_BEGIN_ARG_INFO_EX(arginfo_dgettext, 0, 0, 2)
12+
ZEND_ARG_TYPE_INFO(0, domain_name, IS_STRING, 0)
13+
ZEND_ARG_TYPE_INFO(0, msgid, IS_STRING, 0)
14+
ZEND_END_ARG_INFO()
15+
16+
ZEND_BEGIN_ARG_INFO_EX(arginfo_dcgettext, 0, 0, 3)
17+
ZEND_ARG_TYPE_INFO(0, domain_name, IS_STRING, 0)
18+
ZEND_ARG_TYPE_INFO(0, msgid, IS_STRING, 0)
19+
ZEND_ARG_TYPE_INFO(0, category, IS_LONG, 0)
20+
ZEND_END_ARG_INFO()
21+
22+
ZEND_BEGIN_ARG_INFO_EX(arginfo_bindtextdomain, 0, 0, 2)
23+
ZEND_ARG_TYPE_INFO(0, domain_name, IS_STRING, 0)
24+
ZEND_ARG_TYPE_INFO(0, dir, IS_STRING, 0)
25+
ZEND_END_ARG_INFO()
26+
27+
#if HAVE_NGETTEXT
28+
ZEND_BEGIN_ARG_INFO_EX(arginfo_ngettext, 0, 0, 3)
29+
ZEND_ARG_TYPE_INFO(0, msgid1, IS_STRING, 0)
30+
ZEND_ARG_TYPE_INFO(0, msgid2, IS_STRING, 0)
31+
ZEND_ARG_TYPE_INFO(0, n, IS_LONG, 0)
32+
ZEND_END_ARG_INFO()
33+
#endif
34+
35+
#if HAVE_DNGETTEXT
36+
ZEND_BEGIN_ARG_INFO_EX(arginfo_dngettext, 0, 0, 4)
37+
ZEND_ARG_TYPE_INFO(0, domain, IS_STRING, 0)
38+
ZEND_ARG_TYPE_INFO(0, msgid1, IS_STRING, 0)
39+
ZEND_ARG_TYPE_INFO(0, msgid2, IS_STRING, 0)
40+
ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0)
41+
ZEND_END_ARG_INFO()
42+
#endif
43+
44+
#if HAVE_DCNGETTEXT
45+
ZEND_BEGIN_ARG_INFO_EX(arginfo_dcngettext, 0, 0, 5)
46+
ZEND_ARG_TYPE_INFO(0, domain, IS_STRING, 0)
47+
ZEND_ARG_TYPE_INFO(0, msgid1, IS_STRING, 0)
48+
ZEND_ARG_TYPE_INFO(0, msgid2, IS_STRING, 0)
49+
ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0)
50+
ZEND_ARG_TYPE_INFO(0, category, IS_LONG, 0)
51+
ZEND_END_ARG_INFO()
52+
#endif
53+
54+
#if HAVE_BIND_TEXTDOMAIN_CODESET
55+
ZEND_BEGIN_ARG_INFO_EX(arginfo_bind_textdomain_codeset, 0, 0, 2)
56+
ZEND_ARG_TYPE_INFO(0, domain, IS_STRING, 0)
57+
ZEND_ARG_TYPE_INFO(0, codeset, IS_STRING, 0)
58+
ZEND_END_ARG_INFO()
59+
#endif

0 commit comments

Comments
 (0)