]> granicus.if.org Git - php/commitdiff
Convert gettext functions arginfo to php stubs
authorCraig Duncan <php@duncanc.co.uk>
Sat, 10 Aug 2019 14:39:25 +0000 (15:39 +0100)
committerCraig Duncan <duncan3dc@php.net>
Sat, 10 Aug 2019 16:17:19 +0000 (17:17 +0100)
Closes GH-4506

ext/gettext/gettext.c
ext/gettext/gettext.stub.php [new file with mode: 0644]
ext/gettext/gettext_arginfo.h [new file with mode: 0644]

index 003787f5c08b43a2850904a5c1af8e0e0445cfbc..e9a113d893e6c0def587a31f36704aa5bf850286 100644 (file)
 #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 (file)
index 0000000..a1c09d2
--- /dev/null
@@ -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 (file)
index 0000000..6ac4cac
--- /dev/null
@@ -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