summaryrefslogtreecommitdiff
path: root/ext/intl/intl_data.h
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2008-07-14 06:42:11 +0000
committerStanislav Malyshev <stas@php.net>2008-07-14 06:42:11 +0000
commit44326938eb6ae1d73d08e8aca349f6ef5bcd779e (patch)
tree724e5b39f201f5efaa10587a56c11a690902e5f7 /ext/intl/intl_data.h
parent01e9895f416cf532965fd8d3098c1b8116eee2e9 (diff)
downloadphp-git-44326938eb6ae1d73d08e8aca349f6ef5bcd779e.tar.gz
- increase max locale to 80
- add some macros
Diffstat (limited to 'ext/intl/intl_data.h')
-rwxr-xr-xext/intl/intl_data.h27
1 files changed, 24 insertions, 3 deletions
diff --git a/ext/intl/intl_data.h b/ext/intl/intl_data.h
index 3f5205236e..ebbcb1660a 100755
--- a/ext/intl/intl_data.h
+++ b/ext/intl/intl_data.h
@@ -45,6 +45,16 @@ typedef struct _intl_data {
obj = (oclass##_object *) zend_object_store_get_object( object TSRMLS_CC ); \
intl_error_reset( INTL_DATA_ERROR_P(obj) TSRMLS_CC ); \
+// Check status by error code, if error - exit
+#define INTL_CHECK_STATUS(err, msg) \
+ intl_error_set_code( NULL, (err) TSRMLS_CC ); \
+ if( U_FAILURE((err)) ) \
+ { \
+ intl_errors_set_custom_msg( NULL, msg, 0 TSRMLS_CC ); \
+ RETURN_FALSE; \
+ }
+
+// Check status in object, if error - exit
#define INTL_METHOD_CHECK_STATUS(obj, msg) \
intl_error_set_code( NULL, INTL_DATA_ERROR_CODE((obj)) TSRMLS_CC ); \
if( U_FAILURE( INTL_DATA_ERROR_CODE((obj)) ) ) \
@@ -53,6 +63,17 @@ typedef struct _intl_data {
RETURN_FALSE; \
}
+// Check status, if error - destroy value and exit
+#define INTL_CTOR_CHECK_STATUS(obj, msg, val) \
+ intl_error_set_code( NULL, INTL_DATA_ERROR_CODE((obj)) TSRMLS_CC ); \
+ if( U_FAILURE( INTL_DATA_ERROR_CODE((obj)) ) ) \
+ { \
+ intl_errors_set_custom_msg( INTL_DATA_ERROR_P((obj)), msg, 0 TSRMLS_CC ); \
+ zval_dtor((val)); \
+ ZVAL_NULL((val)); \
+ RETURN_NULL(); \
+ }
+
#define INTL_METHOD_RETVAL_UTF8(obj, ustring, ulen, free_it) \
{ \
char *u8value; \
@@ -65,19 +86,19 @@ typedef struct _intl_data {
RETVAL_STRINGL(u8value, u8len, 0); \
}
-#define INTL_MAX_LOCALE_LEN 64
+#define INTL_MAX_LOCALE_LEN 80
#define INTL_CHECK_LOCALE_LEN(locale_len) \
if((locale_len) > INTL_MAX_LOCALE_LEN) { \
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, \
- "Locale string too long, should be no longer than 64 characters", 0 TSRMLS_CC ); \
+ "Locale string too long, should be no longer than 80 characters", 0 TSRMLS_CC ); \
RETURN_NULL(); \
}
#define INTL_CHECK_LOCALE_LEN_OBJ(locale_len, object) \
if((locale_len) > INTL_MAX_LOCALE_LEN) { \
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, \
- "Locale string too long, should be no longer than 64 characters", 0 TSRMLS_CC ); \
+ "Locale string too long, should be no longer than 80 characters", 0 TSRMLS_CC ); \
zval_dtor(object); \
ZVAL_NULL(object); \
RETURN_NULL(); \