|
47 | 47 | #include "zend_smart_str.h"
|
48 | 48 | #include "ext/standard/base64.h"
|
49 | 49 | #include "ext/standard/quot_print.h"
|
| 50 | + |
| 51 | +#ifdef PHP_ICONV_IMPL |
| 52 | +#define PHP_ICONV_IMPL_VALUE PHP_ICONV_IMPL |
| 53 | +#elif HAVE_LIBICONV |
| 54 | +#define PHP_ICONV_IMPL_VALUE "libiconv" |
| 55 | +#else |
| 56 | +#define PHP_ICONV_IMPL_VALUE "unknown" |
| 57 | +#endif |
| 58 | + |
| 59 | +char *get_iconv_version(void) { |
| 60 | + char *version = "unknown"; |
| 61 | + |
| 62 | +#ifdef HAVE_LIBICONV |
| 63 | + static char buf[16]; |
| 64 | + snprintf(buf, sizeof(buf), "%d.%d", _libiconv_version >> 8, _libiconv_version & 0xff); |
| 65 | + version = buf; |
| 66 | +#elif HAVE_GLIBC_ICONV |
| 67 | + version = (char *) gnu_get_libc_version(); |
| 68 | +#endif |
| 69 | + |
| 70 | + return version; |
| 71 | +} |
| 72 | + |
| 73 | +#define PHP_ICONV_MIME_DECODE_STRICT (1<<0) |
| 74 | +#define PHP_ICONV_MIME_DECODE_CONTINUE_ON_ERROR (1<<1) |
| 75 | + |
50 | 76 | #include "iconv_arginfo.h"
|
51 | 77 |
|
52 | 78 | #define _php_iconv_memequal(a, b, c) \
|
@@ -104,9 +130,6 @@ typedef enum _php_iconv_enc_scheme_t {
|
104 | 130 | } php_iconv_enc_scheme_t;
|
105 | 131 | /* }}} */
|
106 | 132 |
|
107 |
| -#define PHP_ICONV_MIME_DECODE_STRICT (1<<0) |
108 |
| -#define PHP_ICONV_MIME_DECODE_CONTINUE_ON_ERROR (1<<1) |
109 |
| - |
110 | 133 | /* {{{ prototypes */
|
111 | 134 | static php_iconv_err_t _php_iconv_appendl(smart_str *d, const char *s, size_t l, iconv_t cd);
|
112 | 135 | static php_iconv_err_t _php_iconv_appendc(smart_str *d, const char c, iconv_t cd);
|
@@ -186,37 +209,14 @@ PHP_INI_END()
|
186 | 209 | /* {{{ PHP_MINIT_FUNCTION */
|
187 | 210 | PHP_MINIT_FUNCTION(miconv)
|
188 | 211 | {
|
189 |
| - char *version = "unknown"; |
190 |
| - |
191 | 212 | REGISTER_INI_ENTRIES();
|
192 | 213 |
|
193 |
| -#ifdef HAVE_LIBICONV |
194 |
| - { |
195 |
| - static char buf[16]; |
196 |
| - snprintf(buf, sizeof(buf), "%d.%d", |
197 |
| - _libiconv_version >> 8, _libiconv_version & 0xff); |
198 |
| - version = buf; |
199 |
| - } |
200 |
| -#elif HAVE_GLIBC_ICONV |
201 |
| - version = (char *)gnu_get_libc_version(); |
202 |
| -#endif |
203 |
| - |
204 |
| -#ifdef PHP_ICONV_IMPL |
205 |
| - REGISTER_STRING_CONSTANT("ICONV_IMPL", PHP_ICONV_IMPL, CONST_CS | CONST_PERSISTENT); |
206 |
| -#elif HAVE_LIBICONV |
207 |
| - REGISTER_STRING_CONSTANT("ICONV_IMPL", "libiconv", CONST_CS | CONST_PERSISTENT); |
208 |
| -#else |
209 |
| - REGISTER_STRING_CONSTANT("ICONV_IMPL", "unknown", CONST_CS | CONST_PERSISTENT); |
210 |
| -#endif |
211 |
| - REGISTER_STRING_CONSTANT("ICONV_VERSION", version, CONST_CS | CONST_PERSISTENT); |
212 |
| - |
213 |
| - REGISTER_LONG_CONSTANT("ICONV_MIME_DECODE_STRICT", PHP_ICONV_MIME_DECODE_STRICT, CONST_CS | CONST_PERSISTENT); |
214 |
| - REGISTER_LONG_CONSTANT("ICONV_MIME_DECODE_CONTINUE_ON_ERROR", PHP_ICONV_MIME_DECODE_CONTINUE_ON_ERROR, CONST_CS | CONST_PERSISTENT); |
215 |
| - |
216 | 214 | if (php_iconv_stream_filter_register_factory() != PHP_ICONV_ERR_SUCCESS) {
|
217 | 215 | return FAILURE;
|
218 | 216 | }
|
219 | 217 |
|
| 218 | + register_iconv_symbols(module_number); |
| 219 | + |
220 | 220 | php_output_handler_alias_register(ZEND_STRL("ob_iconv_handler"), php_iconv_output_handler_init);
|
221 | 221 | php_output_handler_conflict_register(ZEND_STRL("ob_iconv_handler"), php_iconv_output_conflict);
|
222 | 222 |
|
|
0 commit comments