@@ -4647,8 +4647,10 @@ PHP_FUNCTION(mb_get_info)
46474647 size_t n ;
46484648 char * name ;
46494649 zval row ;
4650- const mbfl_language * lang = mbfl_no2language (MBSTRG (language ));
46514650 const mbfl_encoding * * entry ;
4651+ const mbfl_language * lang = mbfl_no2language (MBSTRG (language ));
4652+
4653+ ZEND_ASSERT (lang );
46524654
46534655 ZEND_PARSE_PARAMETERS_START (0 , 1 )
46544656 Z_PARAM_OPTIONAL
@@ -4666,29 +4668,32 @@ PHP_FUNCTION(mb_get_info)
46664668 if (MBSTRG (current_http_output_encoding )) {
46674669 add_assoc_string (return_value , "http_output" , (char * )MBSTRG (current_http_output_encoding )-> name );
46684670 }
4669- if (( name = ( char * ) zend_ini_string ( "mbstring.http_output_conv_mimetypes" , sizeof ( "mbstring.http_output_conv_mimetypes" ) - 1 , 0 )) != NULL ) {
4670- add_assoc_string (return_value , "http_output_conv_mimetypes" , name );
4671- }
4672- if ( lang != NULL ) {
4673- if (( name = ( char * ) mbfl_no_encoding2name ( lang -> mail_charset )) != NULL ) {
4674- add_assoc_string ( return_value , " mail_charset" , name );
4675- }
4676- if (( name = ( char * ) mbfl_no_encoding2name ( lang -> mail_header_encoding )) != NULL ) {
4677- add_assoc_string ( return_value , " mail_header_encoding" , name );
4678- }
4679- if (( name = ( char * ) mbfl_no_encoding2name ( lang -> mail_body_encoding )) != NULL ) {
4680- add_assoc_string ( return_value , " mail_body_encoding" , name );
4681- }
4682- }
4671+
4672+ add_assoc_str (return_value , "http_output_conv_mimetypes" ,
4673+ zend_ini_str ( "mbstring.http_output_conv_mimetypes" , sizeof ( "mbstring.http_output_conv_mimetypes" ) - 1 , 0 )
4674+ );
4675+
4676+ name = ( char * ) mbfl_no_encoding2name ( lang -> mail_charset );
4677+ add_assoc_string ( return_value , "mail_charset" , name );
4678+
4679+ name = ( char * ) mbfl_no_encoding2name ( lang -> mail_header_encoding );
4680+ add_assoc_string ( return_value , "mail_header_encoding" , name );
4681+
4682+ name = ( char * ) mbfl_no_encoding2name ( lang -> mail_body_encoding );
4683+ add_assoc_string ( return_value , "mail_body_encoding" , name );
4684+
46834685 add_assoc_long (return_value , "illegal_chars" , MBSTRG (illegalchars ));
4686+
46844687 if (MBSTRG (encoding_translation )) {
46854688 add_assoc_string (return_value , "encoding_translation" , "On" );
46864689 } else {
46874690 add_assoc_string (return_value , "encoding_translation" , "Off" );
46884691 }
4689- if ((name = (char * )mbfl_no_language2name (MBSTRG (language ))) != NULL ) {
4690- add_assoc_string (return_value , "language" , name );
4691- }
4692+
4693+ name = (char * )mbfl_no_language2name (MBSTRG (language ));
4694+ add_assoc_string (return_value , "language" , name );
4695+
4696+ // TODO Seems to always have one entry at least?
46924697 n = MBSTRG (current_detect_order_list_size );
46934698 entry = MBSTRG (current_detect_order_list );
46944699 if (n > 0 ) {
@@ -4715,46 +4720,46 @@ PHP_FUNCTION(mb_get_info)
47154720 add_assoc_string (return_value , "strict_detection" , "Off" );
47164721 }
47174722 } else if (zend_string_equals_literal_ci (type , "internal_encoding" )) {
4718- if (MBSTRG (current_internal_encoding )) {
4719- RETVAL_STRING ((char * )MBSTRG (current_internal_encoding )-> name );
4720- }
4723+ ZEND_ASSERT (MBSTRG (current_internal_encoding ));
4724+ RETURN_STRING ((char * )MBSTRG (current_internal_encoding )-> name );
47214725 } else if (zend_string_equals_literal_ci (type , "http_input" )) {
47224726 if (MBSTRG (http_input_identify )) {
4723- RETVAL_STRING ((char * )MBSTRG (http_input_identify )-> name );
4727+ RETURN_STRING ((char * )MBSTRG (http_input_identify )-> name );
47244728 }
4729+ RETURN_NULL ();
47254730 } else if (zend_string_equals_literal_ci (type , "http_output" )) {
4726- if (MBSTRG (current_http_output_encoding )) {
4727- RETVAL_STRING ((char * )MBSTRG (current_http_output_encoding )-> name );
4728- }
4731+ ZEND_ASSERT (MBSTRG (current_http_output_encoding ));
4732+ RETURN_STRING ((char * )MBSTRG (current_http_output_encoding )-> name );
47294733 } else if (zend_string_equals_literal_ci (type , "http_output_conv_mimetypes" )) {
4730- if ((name = (char * )zend_ini_string ("mbstring.http_output_conv_mimetypes" , sizeof ("mbstring.http_output_conv_mimetypes" ) - 1 , 0 )) != NULL ) {
4731- RETVAL_STRING (name );
4732- }
4734+ RETURN_STR (
4735+ zend_ini_str (
4736+ "mbstring.http_output_conv_mimetypes" ,
4737+ sizeof ("mbstring.http_output_conv_mimetypes" ) - 1 ,
4738+ false
4739+ )
4740+ );
47334741 } else if (zend_string_equals_literal_ci (type , "mail_charset" )) {
4734- if (lang != NULL && (name = (char * )mbfl_no_encoding2name (lang -> mail_charset )) != NULL ) {
4735- RETVAL_STRING (name );
4736- }
4742+ name = (char * )mbfl_no_encoding2name (lang -> mail_charset );
4743+ RETURN_STRING (name );
47374744 } else if (zend_string_equals_literal_ci (type , "mail_header_encoding" )) {
4738- if (lang != NULL && (name = (char * )mbfl_no_encoding2name (lang -> mail_header_encoding )) != NULL ) {
4739- RETVAL_STRING (name );
4740- }
4745+ name = (char * )mbfl_no_encoding2name (lang -> mail_header_encoding );
4746+ RETURN_STRING (name );
47414747 } else if (zend_string_equals_literal_ci (type , "mail_body_encoding" )) {
4742- if (lang != NULL && (name = (char * )mbfl_no_encoding2name (lang -> mail_body_encoding )) != NULL ) {
4743- RETVAL_STRING (name );
4744- }
4748+ name = (char * )mbfl_no_encoding2name (lang -> mail_body_encoding );
4749+ RETURN_STRING (name );
47454750 } else if (zend_string_equals_literal_ci (type , "illegal_chars" )) {
4746- RETVAL_LONG (MBSTRG (illegalchars ));
4751+ RETURN_LONG (MBSTRG (illegalchars ));
47474752 } else if (zend_string_equals_literal_ci (type , "encoding_translation" )) {
47484753 if (MBSTRG (encoding_translation )) {
4749- RETVAL_STRING ("On" );
4754+ RETURN_STRING ("On" );
47504755 } else {
4751- RETVAL_STRING ("Off" );
4756+ RETURN_STRING ("Off" );
47524757 }
47534758 } else if (zend_string_equals_literal_ci (type , "language" )) {
4754- if ((name = (char * )mbfl_no_language2name (MBSTRG (language ))) != NULL ) {
4755- RETVAL_STRING (name );
4756- }
4759+ name = (char * )mbfl_no_language2name (MBSTRG (language ));
4760+ RETURN_STRING (name );
47574761 } else if (zend_string_equals_literal_ci (type , "detect_order" )) {
4762+ // TODO Seems to always have one entry at least?
47584763 n = MBSTRG (current_detect_order_list_size );
47594764 entry = MBSTRG (current_detect_order_list );
47604765 if (n > 0 ) {
@@ -4767,22 +4772,22 @@ PHP_FUNCTION(mb_get_info)
47674772 }
47684773 } else if (zend_string_equals_literal_ci (type , "substitute_character" )) {
47694774 if (MBSTRG (current_filter_illegal_mode ) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE ) {
4770- RETVAL_STRING ("none" );
4775+ RETURN_STRING ("none" );
47714776 } else if (MBSTRG (current_filter_illegal_mode ) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG ) {
4772- RETVAL_STRING ("long" );
4777+ RETURN_STRING ("long" );
47734778 } else if (MBSTRG (current_filter_illegal_mode ) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_ENTITY ) {
4774- RETVAL_STRING ("entity" );
4779+ RETURN_STRING ("entity" );
47754780 } else {
4776- RETVAL_LONG (MBSTRG (current_filter_illegal_substchar ));
4781+ RETURN_LONG (MBSTRG (current_filter_illegal_substchar ));
47774782 }
47784783 } else if (zend_string_equals_literal_ci (type , "strict_detection" )) {
47794784 if (MBSTRG (strict_detection )) {
4780- RETVAL_STRING ("On" );
4785+ RETURN_STRING ("On" );
47814786 } else {
4782- RETVAL_STRING ("Off" );
4787+ RETURN_STRING ("Off" );
47834788 }
47844789 } else {
4785- // TODO Convert to ValueError
4790+ php_error_docref ( NULL , E_WARNING , "argument #1 ($type) must be a valid type" );
47864791 RETURN_FALSE ;
47874792 }
47884793}
0 commit comments