summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Duncan <php@duncanc.co.uk>2019-08-10 15:39:25 +0100
committerCraig Duncan <duncan3dc@php.net>2019-08-10 17:17:19 +0100
commitf9980e609e268188446d00a6ee076ffc74cc06a6 (patch)
tree7868a2dcc774adf99cf24147c932ecec63b5b3d3
parentb98bc5bd9216be9d2ee47d251630d069d30e129d (diff)
downloadphp-git-f9980e609e268188446d00a6ee076ffc74cc06a6.tar.gz
Convert gettext functions arginfo to php stubs
Closes GH-4506
-rw-r--r--ext/gettext/gettext.c61
-rw-r--r--ext/gettext/gettext.stub.php36
-rw-r--r--ext/gettext/gettext_arginfo.h59
3 files changed, 96 insertions, 60 deletions
diff --git a/ext/gettext/gettext.c b/ext/gettext/gettext.c
index 003787f5c0..e9a113d893 100644
--- a/ext/gettext/gettext.c
+++ b/ext/gettext/gettext.c
@@ -27,66 +27,7 @@
#include <stdio.h>
#include "ext/standard/info.h"
#include "php_gettext.h"
-
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO(arginfo_textdomain, 0)
- ZEND_ARG_INFO(0, domain)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_gettext, 0)
- ZEND_ARG_INFO(0, msgid)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dgettext, 0)
- ZEND_ARG_INFO(0, domain_name)
- ZEND_ARG_INFO(0, msgid)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dcgettext, 0)
- ZEND_ARG_INFO(0, domain_name)
- ZEND_ARG_INFO(0, msgid)
- ZEND_ARG_INFO(0, category)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_bindtextdomain, 0)
- ZEND_ARG_INFO(0, domain_name)
- ZEND_ARG_INFO(0, dir)
-ZEND_END_ARG_INFO()
-
-#if HAVE_NGETTEXT
-ZEND_BEGIN_ARG_INFO(arginfo_ngettext, 0)
- ZEND_ARG_INFO(0, msgid1)
- ZEND_ARG_INFO(0, msgid2)
- ZEND_ARG_INFO(0, count)
-ZEND_END_ARG_INFO()
-#endif
-
-#if HAVE_DNGETTEXT
-ZEND_BEGIN_ARG_INFO(arginfo_dngettext, 0)
- ZEND_ARG_INFO(0, domain)
- ZEND_ARG_INFO(0, msgid1)
- ZEND_ARG_INFO(0, msgid2)
- ZEND_ARG_INFO(0, count)
-ZEND_END_ARG_INFO()
-#endif
-
-#if HAVE_DCNGETTEXT
-ZEND_BEGIN_ARG_INFO(arginfo_dcngettext, 0)
- ZEND_ARG_INFO(0, domain)
- ZEND_ARG_INFO(0, msgid1)
- ZEND_ARG_INFO(0, msgid2)
- ZEND_ARG_INFO(0, count)
- ZEND_ARG_INFO(0, category)
-ZEND_END_ARG_INFO()
-#endif
-
-#if HAVE_BIND_TEXTDOMAIN_CODESET
-ZEND_BEGIN_ARG_INFO(arginfo_bind_textdomain_codeset, 0)
- ZEND_ARG_INFO(0, domain)
- ZEND_ARG_INFO(0, codeset)
-ZEND_END_ARG_INFO()
-#endif
-/* }}} */
+#include "gettext_arginfo.h"
/* {{{ php_gettext_functions[]
*/
diff --git a/ext/gettext/gettext.stub.php b/ext/gettext/gettext.stub.php
new file mode 100644
index 0000000000..a1c09d2bd9
--- /dev/null
+++ b/ext/gettext/gettext.stub.php
@@ -0,0 +1,36 @@
+<?php
+
+/** @return string|false */
+function textdomain(?string $domain) {}
+
+/** @return string|false */
+function gettext(string $msgid) {}
+
+/** @return string|false */
+function dgettext(string $domain_name, string $msgid) {}
+
+/** @return string|false */
+function dcgettext(string $domain_name, string $msgid, int $category) {}
+
+/** @return string|false */
+function bindtextdomain(string $domain_name, string $dir) {}
+
+#if HAVE_NGETTEXT
+/** @return string|false */
+function ngettext(string $msgid1, string $msgid2, int $n) {}
+#endif
+
+#if HAVE_DNGETTEXT
+/** @return string|false */
+function dngettext(string $domain, string $msgid1, string $msgid2, int $count) {}
+#endif
+
+#if HAVE_DCNGETTEXT
+/** @return string|false */
+function dcngettext(string $domain, string $msgid1, string $msgid2, int $count, int $category) {}
+#endif
+
+#if HAVE_BIND_TEXTDOMAIN_CODESET
+/** @return string|false */
+function bind_textdomain_codeset(string $domain, string $codeset) {}
+#endif
diff --git a/ext/gettext/gettext_arginfo.h b/ext/gettext/gettext_arginfo.h
new file mode 100644
index 0000000000..6ac4cac5e5
--- /dev/null
+++ b/ext/gettext/gettext_arginfo.h
@@ -0,0 +1,59 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_textdomain, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, domain, IS_STRING, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_gettext, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, msgid, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dgettext, 0, 0, 2)
+ ZEND_ARG_TYPE_INFO(0, domain_name, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, msgid, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dcgettext, 0, 0, 3)
+ ZEND_ARG_TYPE_INFO(0, domain_name, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, msgid, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, category, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_bindtextdomain, 0, 0, 2)
+ ZEND_ARG_TYPE_INFO(0, domain_name, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, dir, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#if HAVE_NGETTEXT
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ngettext, 0, 0, 3)
+ ZEND_ARG_TYPE_INFO(0, msgid1, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, msgid2, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, n, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if HAVE_DNGETTEXT
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dngettext, 0, 0, 4)
+ ZEND_ARG_TYPE_INFO(0, domain, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, msgid1, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, msgid2, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if HAVE_DCNGETTEXT
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dcngettext, 0, 0, 5)
+ ZEND_ARG_TYPE_INFO(0, domain, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, msgid1, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, msgid2, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, category, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if HAVE_BIND_TEXTDOMAIN_CODESET
+ZEND_BEGIN_ARG_INFO_EX(arginfo_bind_textdomain_codeset, 0, 0, 2)
+ ZEND_ARG_TYPE_INFO(0, domain, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, codeset, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif