summaryrefslogtreecommitdiff
path: root/ext/gettext/gettext.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/gettext/gettext.c')
-rw-r--r--ext/gettext/gettext.c54
1 files changed, 12 insertions, 42 deletions
diff --git a/ext/gettext/gettext.c b/ext/gettext/gettext.c
index 4fa2eef235..534a4feee6 100644
--- a/ext/gettext/gettext.c
+++ b/ext/gettext/gettext.c
@@ -31,31 +31,37 @@
#include "php_gettext.h"
/* {{{ arginfo */
+static
ZEND_BEGIN_ARG_INFO(arginfo_textdomain, 0)
ZEND_ARG_INFO(0, domain)
ZEND_END_ARG_INFO()
+static
ZEND_BEGIN_ARG_INFO(arginfo_gettext, 0)
ZEND_ARG_INFO(0, msgid)
ZEND_END_ARG_INFO()
+static
ZEND_BEGIN_ARG_INFO(arginfo_dgettext, 0)
ZEND_ARG_INFO(0, domain_name)
ZEND_ARG_INFO(0, msgid)
ZEND_END_ARG_INFO()
+static
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()
+static
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
+static
ZEND_BEGIN_ARG_INFO(arginfo_ngettext, 0)
ZEND_ARG_INFO(0, msgid1)
ZEND_ARG_INFO(0, msgid2)
@@ -64,6 +70,7 @@ ZEND_END_ARG_INFO()
#endif
#if HAVE_DNGETTEXT
+static
ZEND_BEGIN_ARG_INFO(arginfo_dngettext, 0)
ZEND_ARG_INFO(0, domain)
ZEND_ARG_INFO(0, msgid1)
@@ -73,6 +80,7 @@ ZEND_END_ARG_INFO()
#endif
#if HAVE_DCNGETTEXT
+static
ZEND_BEGIN_ARG_INFO(arginfo_dcngettext, 0)
ZEND_ARG_INFO(0, domain)
ZEND_ARG_INFO(0, msgid1)
@@ -83,6 +91,7 @@ ZEND_END_ARG_INFO()
#endif
#if HAVE_BIND_TEXTDOMAIN_CODESET
+static
ZEND_BEGIN_ARG_INFO(arginfo_bind_textdomain_codeset, 0)
ZEND_ARG_INFO(0, domain)
ZEND_ARG_INFO(0, codeset)
@@ -135,21 +144,6 @@ zend_module_entry php_gettext_module_entry = {
ZEND_GET_MODULE(php_gettext)
#endif
-#define PHP_GETTEXT_MAX_DOMAIN_LENGTH 1024
-#define PHP_GETTEXT_MAX_MSGID_LENGTH 4096
-
-#define PHP_GETTEXT_DOMAIN_LENGTH_CHECK \
- if (domain_len > PHP_GETTEXT_MAX_DOMAIN_LENGTH) { \
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "domain passed too long"); \
- RETURN_FALSE; \
- }
-
-#define PHP_GETTEXT_LENGTH_CHECK(check_name, check_len) \
- if (check_len > PHP_GETTEXT_MAX_MSGID_LENGTH) { \
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s passed too long", check_name); \
- RETURN_FALSE; \
- }
-
PHP_MINFO_FUNCTION(php_gettext)
{
php_info_print_table_start();
@@ -168,8 +162,6 @@ PHP_NAMED_FUNCTION(zif_textdomain)
return;
}
- PHP_GETTEXT_DOMAIN_LENGTH_CHECK
-
if (strcmp(domain, "") && strcmp(domain, "0")) {
domain_name = domain;
} else {
@@ -193,7 +185,6 @@ PHP_NAMED_FUNCTION(zif_gettext)
return;
}
- PHP_GETTEXT_LENGTH_CHECK("msgid", msgid_len)
msgstr = gettext(msgid);
RETURN_STRING(msgstr, 1);
@@ -211,9 +202,6 @@ PHP_NAMED_FUNCTION(zif_dgettext)
return;
}
- PHP_GETTEXT_DOMAIN_LENGTH_CHECK
- PHP_GETTEXT_LENGTH_CHECK("msgid", msgid_len)
-
msgstr = dgettext(domain, msgid);
RETURN_STRING(msgstr, 1);
@@ -232,9 +220,6 @@ PHP_NAMED_FUNCTION(zif_dcgettext)
return;
}
- PHP_GETTEXT_DOMAIN_LENGTH_CHECK
- PHP_GETTEXT_LENGTH_CHECK("msgid", msgid_len)
-
msgstr = dcgettext(domain, msgid, category);
RETURN_STRING(msgstr, 1);
@@ -253,13 +238,11 @@ PHP_NAMED_FUNCTION(zif_bindtextdomain)
return;
}
- PHP_GETTEXT_DOMAIN_LENGTH_CHECK
-
if (domain[0] == '\0') {
php_error(E_WARNING, "The first parameter of bindtextdomain must not be empty");
RETURN_FALSE;
}
-
+
if (dir[0] != '\0' && strcmp(dir, "0")) {
if (!VCWD_REALPATH(dir, dir_name)) {
RETURN_FALSE;
@@ -287,9 +270,6 @@ PHP_NAMED_FUNCTION(zif_ngettext)
return;
}
- PHP_GETTEXT_LENGTH_CHECK("msgid1", msgid1_len)
- PHP_GETTEXT_LENGTH_CHECK("msgid2", msgid2_len)
-
msgstr = ngettext(msgid1, msgid2, count);
if (msgstr) {
RETVAL_STRING(msgstr, 1);
@@ -306,16 +286,12 @@ PHP_NAMED_FUNCTION(zif_dngettext)
char *domain, *msgid1, *msgid2, *msgstr = NULL;
int domain_len, msgid1_len, msgid2_len;
long count;
-
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sssl", &domain, &domain_len,
&msgid1, &msgid1_len, &msgid2, &msgid2_len, &count) == FAILURE) {
return;
}
- PHP_GETTEXT_DOMAIN_LENGTH_CHECK
- PHP_GETTEXT_LENGTH_CHECK("msgid1", msgid1_len)
- PHP_GETTEXT_LENGTH_CHECK("msgid2", msgid2_len)
-
msgstr = dngettext(domain, msgid1, msgid2, count);
if (msgstr) {
RETVAL_STRING(msgstr, 1);
@@ -326,7 +302,7 @@ PHP_NAMED_FUNCTION(zif_dngettext)
#if HAVE_DCNGETTEXT
/* {{{ proto string dcngettext (string domain, string msgid1, string msgid2, int n, int category)
- Plural version of dcgettext() */
+ Plural version of dcgettext() */
PHP_NAMED_FUNCTION(zif_dcngettext)
{
char *domain, *msgid1, *msgid2, *msgstr = NULL;
@@ -340,10 +316,6 @@ PHP_NAMED_FUNCTION(zif_dcngettext)
return;
}
- PHP_GETTEXT_DOMAIN_LENGTH_CHECK
- PHP_GETTEXT_LENGTH_CHECK("msgid1", msgid1_len)
- PHP_GETTEXT_LENGTH_CHECK("msgid2", msgid2_len)
-
msgstr = dcngettext(domain, msgid1, msgid2, count, category);
if (msgstr) {
@@ -366,8 +338,6 @@ PHP_NAMED_FUNCTION(zif_bind_textdomain_codeset)
return;
}
- PHP_GETTEXT_DOMAIN_LENGTH_CHECK
-
retval = bind_textdomain_codeset(domain, codeset);
if (!retval) {