};
/* }}} */
+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
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;
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;
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);