summaryrefslogtreecommitdiff
path: root/textproc/php-intl
diff options
context:
space:
mode:
authoradam <adam@pkgsrc.org>2012-04-25 18:55:39 +0000
committeradam <adam@pkgsrc.org>2012-04-25 18:55:39 +0000
commitced585bb298174029399d5a4e334e45cfadad38c (patch)
tree5e8da72482894e537fb76f3a7bece89de089731e /textproc/php-intl
parent651bef01708940df5967fca7ea510007545fc72f (diff)
downloadpkgsrc-ced585bb298174029399d5a4e334e45cfadad38c.tar.gz
Changes 2.0.0:
* Fixed bug 61487 - bad bounds check in grapheme_strpos. * Fixed several tests.
Diffstat (limited to 'textproc/php-intl')
-rw-r--r--textproc/php-intl/DESCR12
-rw-r--r--textproc/php-intl/Makefile9
-rw-r--r--textproc/php-intl/distinfo19
-rw-r--r--textproc/php-intl/patches/patch-aa18
-rw-r--r--textproc/php-intl/patches/patch-ab31
-rw-r--r--textproc/php-intl/patches/patch-ac56
-rw-r--r--textproc/php-intl/patches/patch-ad81
-rw-r--r--textproc/php-intl/patches/patch-ae39
-rw-r--r--textproc/php-intl/patches/patch-af45
-rw-r--r--textproc/php-intl/patches/patch-ag13
-rw-r--r--textproc/php-intl/patches/patch-ah13
-rw-r--r--textproc/php-intl/patches/patch-aj20
-rw-r--r--textproc/php-intl/patches/patch-grapheme_grapheme__string.c26
13 files changed, 14 insertions, 368 deletions
diff --git a/textproc/php-intl/DESCR b/textproc/php-intl/DESCR
index ac504319f3f..c3e7e8b9ee6 100644
--- a/textproc/php-intl/DESCR
+++ b/textproc/php-intl/DESCR
@@ -1,14 +1,10 @@
PHP is a programming language designed to be embedded into web pages.
-
This module is an internationalization extension, enabling PHP programmers
to perform UCA-conformant collation and date/time/number/currency formatting
-in their scripts.
-
-It tends to closely follow ICU APIs, so that people having experience
-working with ICU in either C/C++ or Java could easily use the PHP
-API. Also, this way ICU documentation would be useful to understand
-various ICU functions.
-
+in their scripts. It tends to closely follow ICU APIs, so that people having
+experience working with ICU in either C/C++ or Java could easily use the PHP
+API. Also, this way ICU documentation would be useful to understand various
+ICU functions.
Intl consists of several modules, each of them exposes the corresponding ICU
API:
* Collator: provides string comparison capability with support
diff --git a/textproc/php-intl/Makefile b/textproc/php-intl/Makefile
index 65ec46e19bf..74e8c875554 100644
--- a/textproc/php-intl/Makefile
+++ b/textproc/php-intl/Makefile
@@ -1,18 +1,17 @@
-# $NetBSD: Makefile,v 1.8 2011/12/17 13:46:28 obache Exp $
+# $NetBSD: Makefile,v 1.9 2012/04/25 18:55:39 adam Exp $
MODNAME= intl
-PECL_VERSION= 1.1.2
-PKGREVISION= 2
+PECL_VERSION= 2.0.0
PECL_LEGACY_VERSION_SCHEME= yes
CATEGORIES+= textproc
COMMENT= PHP extension for i18n
+LICENSE= php
PKG_DESTDIR_SUPPORT= user-destdir
+USE_LANGUAGES= c c++
CONFIGURE_ARGS+= --enable-${MODNAME}=shared,${BUILDLINK_DIR}
-USE_LANGUAGES+= c c++
-
.include "../../lang/php/ext.mk"
.include "../../textproc/icu/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/textproc/php-intl/distinfo b/textproc/php-intl/distinfo
index 5a68b04067d..f0c0e6bb948 100644
--- a/textproc/php-intl/distinfo
+++ b/textproc/php-intl/distinfo
@@ -1,15 +1,6 @@
-$NetBSD: distinfo,v 1.3 2011/02/26 02:55:28 taca Exp $
+$NetBSD: distinfo,v 1.4 2012/04/25 18:55:39 adam Exp $
-SHA1 (php-intl/intl-1.1.2.tgz) = c86b3a4734c331ac3e7a56bb50b11766f4c4d5f7
-RMD160 (php-intl/intl-1.1.2.tgz) = 913c9f7fbb0f117e90affbbe5b17c1f881fb2fce
-Size (php-intl/intl-1.1.2.tgz) = 142511 bytes
-SHA1 (patch-aa) = 213d5c9c99c28e7fce16436df58d9b430745d5b1
-SHA1 (patch-ab) = 01b4fa84d71319f29e0869f25e0dd1be869eaad0
-SHA1 (patch-ac) = 635ac309125521018a13dbb84d741210e80fe635
-SHA1 (patch-ad) = 3e09a48471dcf6fcfdcfca295dac778814fd2bd1
-SHA1 (patch-ae) = 750d9284f86a730fce7733ce488cbb4ae13983ce
-SHA1 (patch-af) = 815006577c08b1cab7f0e5e601770f786c61c910
-SHA1 (patch-ag) = 66db6e293f9eb9e81ccd6f8055aed2e036791247
-SHA1 (patch-ah) = 024f97675087d3f282e6cd8af059179ea7faea60
-SHA1 (patch-aj) = edb43a597a43db653af7be4d3066bf9bd376e8be
-SHA1 (patch-grapheme_grapheme__string.c) = 46d02667c47f68671a166db3ffdd3a33c2678018
+SHA1 (php-intl/intl-2.0.0.tgz) = b5876f140ad7bb071d6a8d9505446800855b4645
+RMD160 (php-intl/intl-2.0.0.tgz) = a3816f670ff7ab1ff88254f1ae8936d0ad4403d9
+Size (php-intl/intl-2.0.0.tgz) = 145979 bytes
+SHA1 (patch-aj) = 6c0ea08f73d50b43afe442bd67decc9608c5db29
diff --git a/textproc/php-intl/patches/patch-aa b/textproc/php-intl/patches/patch-aa
deleted file mode 100644
index d1f140a8be3..00000000000
--- a/textproc/php-intl/patches/patch-aa
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD: patch-aa,v 1.2 2010/12/16 03:37:28 taca Exp $
-
---- php_intl.h.orig 1970-01-01 09:14:21.000000000 +0000
-+++ php_intl.h
-@@ -65,6 +65,13 @@ PHP_MINFO_FUNCTION(intl);
-
- #define PHP_INTL_VERSION "1.1.1"
-
-+#if (PHP_VERSION_ID >= 50300)
-+# define PHP_INTL_ZEND_ARG_STATIC
-+#else
-+# define PHP_INTL_ZEND_ARG_STATIC static
-+# define Z_DELREF_P(object) (object)->refcount--
-+#endif
-+
- #endif /* PHP_INTL_H */
-
- /*
diff --git a/textproc/php-intl/patches/patch-ab b/textproc/php-intl/patches/patch-ab
deleted file mode 100644
index 985eb4c8b3c..00000000000
--- a/textproc/php-intl/patches/patch-ab
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD: patch-ab,v 1.1.1.1 2010/03/21 16:57:13 jdolecek Exp $
-
---- collator/collator_class.c.orig 2010-03-11 00:13:52.000000000 +0100
-+++ collator/collator_class.c
-@@ -88,22 +88,22 @@ zend_object_value Collator_object_create
- modify approptiate 'collator_XX_args' for
- the procedural API.
- */
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX( collator_0_args, 0, 0, 0 )
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX( collator_1_arg, 0, 0, 1 )
- ZEND_ARG_INFO( 0, arg1 )
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX( collator_2_args, 0, 0, 2 )
- ZEND_ARG_INFO( 0, arg1 )
- ZEND_ARG_INFO( 0, arg2 )
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX( collator_sort_args, 0, 0, 1 )
- ZEND_ARG_ARRAY_INFO( 1, arr, 0 )
- ZEND_ARG_INFO( 0, flags )
diff --git a/textproc/php-intl/patches/patch-ac b/textproc/php-intl/patches/patch-ac
deleted file mode 100644
index 8296a8516e7..00000000000
--- a/textproc/php-intl/patches/patch-ac
+++ /dev/null
@@ -1,56 +0,0 @@
-$NetBSD: patch-ac,v 1.1.1.1 2010/03/21 16:57:13 jdolecek Exp $
-
---- dateformat/dateformat_class.c.orig 2010-03-11 00:19:56.000000000 +0100
-+++ dateformat/dateformat_class.c
-@@ -84,42 +84,43 @@ zend_object_value IntlDateFormatter_obje
- */
-
- /* {{{ arginfo */
--static ZEND_BEGIN_ARG_INFO_EX(datefmt_parse_args, 0, 0, 1)
-+PHP_INTL_ZEND_ARG_STATIC
-+ZEND_BEGIN_ARG_INFO_EX(datefmt_parse_args, 0, 0, 1)
- ZEND_ARG_INFO(0, string)
- ZEND_ARG_INFO(1, position)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_intldateformatter_format, 0, 0, 0)
- ZEND_ARG_INFO(0, args)
- ZEND_ARG_INFO(0, array)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO(arginfo_intldateformatter_getdatetype, 0)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_intldateformatter_settimezoneid, 0, 0, 1)
- ZEND_ARG_INFO(0, zone)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_intldateformatter_setpattern, 0, 0, 1)
- ZEND_ARG_INFO(0, pattern)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_intldateformatter_setlenient, 0, 0, 1)
- ZEND_ARG_INFO(0, lenient)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_intldateformatter_setcalendar, 0, 0, 1)
- ZEND_ARG_INFO(0, which)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_intldateformatter___construct, 0, 0, 3)
- ZEND_ARG_INFO(0, locale)
- ZEND_ARG_INFO(0, datetype)
diff --git a/textproc/php-intl/patches/patch-ad b/textproc/php-intl/patches/patch-ad
deleted file mode 100644
index 1349a8267df..00000000000
--- a/textproc/php-intl/patches/patch-ad
+++ /dev/null
@@ -1,81 +0,0 @@
-$NetBSD: patch-ad,v 1.1.1.1 2010/03/21 16:57:13 jdolecek Exp $
-
---- formatter/formatter_class.c.orig 2010-03-11 00:17:19.000000000 +0100
-+++ formatter/formatter_class.c
-@@ -80,63 +80,65 @@ zend_object_value NumberFormatter_object
- */
-
- /* {{{ arginfo */
--static ZEND_BEGIN_ARG_INFO_EX(number_parse_arginfo, 0, 0, 1)
-+PHP_INTL_ZEND_ARG_STATIC
-+ZEND_BEGIN_ARG_INFO_EX(number_parse_arginfo, 0, 0, 1)
- ZEND_ARG_INFO(0, string)
- ZEND_ARG_INFO(0, type)
- ZEND_ARG_INFO(1, position)
- ZEND_END_ARG_INFO()
-
--static ZEND_BEGIN_ARG_INFO_EX(number_parse_currency_arginfo, 0, 0, 2)
-+PHP_INTL_ZEND_ARG_STATIC
-+ZEND_BEGIN_ARG_INFO_EX(number_parse_currency_arginfo, 0, 0, 2)
- ZEND_ARG_INFO(0, string)
- ZEND_ARG_INFO(1, currency)
- ZEND_ARG_INFO(1, position)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_numberformatter_getattribute, 0, 0, 1)
- ZEND_ARG_INFO(0, attr)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_numberformatter_setattribute, 0, 0, 2)
- ZEND_ARG_INFO(0, attr)
- ZEND_ARG_INFO(0, value)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_numberformatter_setsymbol, 0, 0, 2)
- ZEND_ARG_INFO(0, attr)
- ZEND_ARG_INFO(0, symbol)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO(arginfo_numberformatter_getpattern, 0)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_numberformatter_setpattern, 0, 0, 1)
- ZEND_ARG_INFO(0, pattern)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_numberformatter_getlocale, 0, 0, 0)
- ZEND_ARG_INFO(0, type)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_numberformatter___construct, 0, 0, 2)
- ZEND_ARG_INFO(0, locale)
- ZEND_ARG_INFO(0, style)
- ZEND_ARG_INFO(0, pattern)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_numberformatter_formatcurrency, 0, 0, 2)
- ZEND_ARG_INFO(0, num)
- ZEND_ARG_INFO(0, currency)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_numberformatter_format, 0, 0, 1)
- ZEND_ARG_INFO(0, num)
- ZEND_ARG_INFO(0, type)
diff --git a/textproc/php-intl/patches/patch-ae b/textproc/php-intl/patches/patch-ae
deleted file mode 100644
index 53fa77186d8..00000000000
--- a/textproc/php-intl/patches/patch-ae
+++ /dev/null
@@ -1,39 +0,0 @@
-$NetBSD: patch-ae,v 1.1.1.1 2010/03/21 16:57:13 jdolecek Exp $
-
---- locale/locale_class.c.orig 2010-03-11 00:19:03.000000000 +0100
-+++ locale/locale_class.c
-@@ -35,29 +35,29 @@ zend_class_entry *Locale_ce_ptr = NULL;
- * approptiate 'locale_XX_args' for the procedural API!
- */
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX( locale_0_args, 0, 0, 0 )
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX( locale_1_arg, 0, 0, 1 )
- ZEND_ARG_INFO( 0, arg1 )
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX( locale_2_args, 0, 0, 2 )
- ZEND_ARG_INFO( 0, arg1 )
- ZEND_ARG_INFO( 0, arg2 )
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX( locale_3_args, 0, 0, 3 )
- ZEND_ARG_INFO( 0, arg1 )
- ZEND_ARG_INFO( 0, arg2 )
- ZEND_ARG_INFO( 0, arg3 )
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX( locale_4_args, 0, 0, 4 )
- ZEND_ARG_INFO( 0, arg1 )
- ZEND_ARG_INFO( 0, arg2 )
diff --git a/textproc/php-intl/patches/patch-af b/textproc/php-intl/patches/patch-af
deleted file mode 100644
index f4dfed91adc..00000000000
--- a/textproc/php-intl/patches/patch-af
+++ /dev/null
@@ -1,45 +0,0 @@
-$NetBSD: patch-af,v 1.1.1.1 2010/03/21 16:57:13 jdolecek Exp $
-
---- msgformat/msgformat_class.c.orig 2010-03-11 00:20:56.000000000 +0100
-+++ msgformat/msgformat_class.c
-@@ -77,34 +77,34 @@ zend_object_value MessageFormatter_objec
- */
-
- /* {{{ arginfo */
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_messageformatter___construct, 0, 0, 2)
- ZEND_ARG_INFO(0, locale)
- ZEND_ARG_INFO(0, pattern)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO(arginfo_messageformatter_geterrormessage, 0)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_messageformatter_formatmessage, 0, 0, 3)
- ZEND_ARG_INFO(0, locale)
- ZEND_ARG_INFO(0, pattern)
- ZEND_ARG_INFO(0, args)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_messageformatter_format, 0, 0, 1)
- ZEND_ARG_INFO(0, args)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_messageformatter_setpattern, 0, 0, 1)
- ZEND_ARG_INFO(0, pattern)
- ZEND_END_ARG_INFO()
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX(arginfo_messageformatter_parse, 0, 0, 1)
- ZEND_ARG_INFO(0, source)
- ZEND_END_ARG_INFO()
diff --git a/textproc/php-intl/patches/patch-ag b/textproc/php-intl/patches/patch-ag
deleted file mode 100644
index 79b9a811300..00000000000
--- a/textproc/php-intl/patches/patch-ag
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-ag,v 1.1.1.1 2010/03/21 16:57:13 jdolecek Exp $
-
---- normalizer/normalizer_class.c.orig 2010-03-11 00:18:31.000000000 +0100
-+++ normalizer/normalizer_class.c
-@@ -29,7 +29,7 @@ zend_class_entry *Normalizer_ce_ptr = NU
-
- /* {{{ Normalizer methods arguments info */
-
--static
-+PHP_INTL_ZEND_ARG_STATIC
- ZEND_BEGIN_ARG_INFO_EX( normalizer_3_args, 0, 0, 3 )
- ZEND_ARG_INFO( 0, arg1 )
- ZEND_ARG_INFO( 0, arg2 )
diff --git a/textproc/php-intl/patches/patch-ah b/textproc/php-intl/patches/patch-ah
deleted file mode 100644
index cd8b7046248..00000000000
--- a/textproc/php-intl/patches/patch-ah
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-ah,v 1.1.1.1 2010/03/21 16:57:13 jdolecek Exp $
-
---- resourcebundle/resourcebundle_class.c.orig 2010-03-21 16:45:18.000000000 +0100
-+++ resourcebundle/resourcebundle_class.c
-@@ -212,7 +212,7 @@ zval *resourcebundle_array_get(zval *obj
- MAKE_STD_ZVAL(retval);
-
- resourcebundle_array_fetch(object, offset, retval, 1 TSRMLS_CC);
-- retval->refcount--;
-+ Z_DELREF_P(retval);
- return retval;
- }
- /* }}} */
diff --git a/textproc/php-intl/patches/patch-aj b/textproc/php-intl/patches/patch-aj
index eee7237cf3a..e5464dd9f95 100644
--- a/textproc/php-intl/patches/patch-aj
+++ b/textproc/php-intl/patches/patch-aj
@@ -1,4 +1,4 @@
-$NetBSD: patch-aj,v 1.1.1.1 2010/03/21 16:57:13 jdolecek Exp $
+$NetBSD: patch-aj,v 1.2 2012/04/25 18:55:40 adam Exp $
--- resourcebundle/resourcebundle_iterator.c.orig 2010-03-15 23:03:30.000000000 +0100
+++ resourcebundle/resourcebundle_iterator.c
@@ -11,21 +11,3 @@ $NetBSD: patch-aj,v 1.1.1.1 2010/03/21 16:57:13 jdolecek Exp $
#include "resourcebundle/resourcebundle.h"
#include "resourcebundle/resourcebundle_class.h"
#include "resourcebundle/resourcebundle_iterator.h"
-@@ -75,7 +77,7 @@ static void resourcebundle_iterator_dtor
-
- resourcebundle_iterator_invalidate( iter TSRMLS_CC );
-
-- object->refcount--;
-+ Z_DELREF_P(object);
-
- efree(iterator);
- }
-@@ -162,7 +164,7 @@ zend_object_iterator *resourcebundle_get
- php_error( E_ERROR, "ResourceBundle does not support writable iterators" );
- }
-
-- object->refcount++;
-+ Z_DELREF_P(object);
- iterator->intern.data = (void *) object;
- iterator->intern.funcs = &resourcebundle_iterator_funcs;
-
diff --git a/textproc/php-intl/patches/patch-grapheme_grapheme__string.c b/textproc/php-intl/patches/patch-grapheme_grapheme__string.c
deleted file mode 100644
index f16db8ed36a..00000000000
--- a/textproc/php-intl/patches/patch-grapheme_grapheme__string.c
+++ /dev/null
@@ -1,26 +0,0 @@
-$NetBSD: patch-grapheme_grapheme__string.c,v 1.1 2011/02/26 02:55:28 taca Exp $
-
-A fix for CVE-2011-0420 (CERT: VU#210829) from PHP's repository, r306449.
-
---- grapheme/grapheme_string.c.orig 1970-01-01 09:13:08.000000000 +0000
-+++ grapheme/grapheme_string.c
-@@ -819,11 +819,17 @@ PHP_FUNCTION(grapheme_extract)
- }
-
- if ( lstart > INT32_MAX || lstart < 0 || lstart >= str_len ) {
-+ intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, "grapheme_extract: start not contained in string", 0 TSRMLS_CC );
-
-- intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, "grapheme_extract: start not contained in string", 1 TSRMLS_CC );
--
- RETURN_FALSE;
- }
-+ if ( size > INT32_MAX || size < 0) {
-+ intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, "grapheme_extract: size is invalid", 0 TSRMLS_CC );
-+ RETURN_FALSE;
-+ }
-+ if (size == 0) {
-+ RETURN_EMPTY_STRING();
-+ }
-
- /* we checked that it will fit: */
- start = (int32_t) lstart;