com php-src: Add php_mb_get_encoding() convenience function: ext/mbstring/mbstring.c

From: Date: Wed, 19 Jul 2017 21:59:42 +0000
Subject: com php-src: Add php_mb_get_encoding() convenience function: ext/mbstring/mbstring.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-98646@lists.php.net to get a copy of this message
Commit: 4128746b949355f588143ef18ad98fdfda089873 Author: Nikita Popov <nikita.ppv@gmail.com> Wed, 19 Jul 2017 23:29:36 +0200 Parents: 4cf22cbb2d3b777cceb0087cdfd2a571aaf76850 Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=4128746b949355f588143ef18ad98fdfda089873 Log: Add php_mb_get_encoding() convenience function Changed paths: M ext/mbstring/mbstring.c Diff: diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index a8b7016..9c64092 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -703,6 +703,19 @@ static sapi_post_entry mbstr_post_entries[] = { }; /* }}} */ +static const mbfl_encoding *php_mb_get_encoding(const char *encoding_name) { + if (encoding_name) { + const mbfl_encoding *encoding = mbfl_name2encoding(encoding_name); + if (!encoding) { + php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", encoding_name); + return NULL; + } + return encoding; + } else { + return MBSTRG(current_internal_encoding); + } +} + /* {{{ static int php_mb_parse_encoding_list() * Return 0 if input contains any illegal encoding, otherwise 1. * Even if any illegal encoding is detected the result may contain a list @@ -5143,14 +5156,9 @@ static inline zend_long php_mb_ord(const char* str, size_t str_len, const char* unsigned char char_len; zend_long cp; - if (enc_name == NULL) { - enc = MBSTRG(current_internal_encoding); - } else { - enc = mbfl_name2encoding(enc_name); - if (!enc) { - php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", enc_name); - return -1; - } + enc = php_mb_get_encoding(enc_name); + if (!enc) { + return -1; } no_enc = enc->no_encoding; @@ -5240,14 +5248,9 @@ static inline char* php_mb_chr(zend_long cp, const char* enc_name, size_t *outpu char* ret; size_t ret_len; - if (enc_name == NULL) { - enc = MBSTRG(current_internal_encoding); - } else { - enc = mbfl_name2encoding(enc_name); - if (!enc) { - php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", enc_name); - return NULL; - } + enc = php_mb_get_encoding(enc_name); + if (!enc) { + return NULL; } no_enc = enc->no_encoding; @@ -5434,14 +5437,9 @@ PHP_FUNCTION(mb_scrub) Z_PARAM_STRING(enc_name, enc_name_len) ZEND_PARSE_PARAMETERS_END(); - if (enc_name == NULL) { - enc = MBSTRG(current_internal_encoding); - } else { - enc = mbfl_name2encoding(enc_name); - if (!enc) { - php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", enc_name); - RETURN_FALSE; - } + enc = php_mb_get_encoding(enc_name); + if (!enc) { + RETURN_FALSE; } ret = php_mb_scrub(str, str_len, enc);

« previous php.cvs (#98646) next »