config.w32: fix missing icule.lib and iculx.lib
[m6w6/ext-http] / src / php_http_url.c
index ad4f14cb87d222c47c227602dd7c418b74d23d10..24a13ff6df31818563e9217ee58532f70cbf11a4 100644 (file)
@@ -19,6 +19,7 @@
 #      include <idn2.h>
 #endif
 #if PHP_HTTP_HAVE_LIBICU
+#      include <unicode/uchar.h>
 #      include <unicode/uidna.h>
 #endif
 #if PHP_HTTP_HAVE_LIBIDNKIT || PHP_HTTP_HAVE_LIBIDNKIT2
@@ -742,7 +743,11 @@ static inline size_t parse_mb(struct parse_state *state, parse_mb_what_t what, c
                        if (what == PARSE_HOSTINFO && (state->flags & PHP_HTTP_URL_PARSE_TOIDN)) {
                                /* idna */
                        } else if (state->flags & PHP_HTTP_URL_PARSE_MBUTF8) {
+#if PHP_HTTP_HAVE_LIBICU
+                               if (!u_isalnum(wchar)) {
+#else
                                if (!isualnum(wchar)) {
+#endif
                                        break;
                                }
 #if PHP_HTTP_HAVE_WCHAR
@@ -2030,7 +2035,7 @@ PHP_METHOD(HttpUrl, toArray)
 }
 
 static zend_function_entry php_http_url_methods[] = {
-       PHP_ME(HttpUrl, __construct,  ai_HttpUrl___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
+       PHP_ME(HttpUrl, __construct,  ai_HttpUrl___construct, ZEND_ACC_PUBLIC)
        PHP_ME(HttpUrl, mod,          ai_HttpUrl_mod, ZEND_ACC_PUBLIC)
        PHP_ME(HttpUrl, toString,     ai_HttpUrl_toString, ZEND_ACC_PUBLIC)
        ZEND_MALIAS(HttpUrl, __toString, toString, ai_HttpUrl_toString, ZEND_ACC_PUBLIC)
@@ -2083,14 +2088,14 @@ PHP_MINIT_FUNCTION(http_url)
 #endif
        zend_declare_class_constant_long(php_http_url_class_entry, ZEND_STRL("PARSE_TOPCT"), PHP_HTTP_URL_PARSE_TOPCT);
 
-       INIT_NS_CLASS_ENTRY(ce, "http\\Env", "Url", php_http_url_methods);
-       php_http_env_url_class_entry = zend_register_internal_class_ex(&ce, php_http_url_class_entry);
-
        zend_declare_class_constant_long(php_http_url_class_entry, ZEND_STRL("IGNORE_ERRORS"), PHP_HTTP_URL_IGNORE_ERRORS);
        zend_declare_class_constant_long(php_http_url_class_entry, ZEND_STRL("SILENT_ERRORS"), PHP_HTTP_URL_SILENT_ERRORS);
 
        zend_declare_class_constant_long(php_http_url_class_entry, ZEND_STRL("STDFLAGS"), PHP_HTTP_URL_STDFLAGS);
 
+       INIT_NS_CLASS_ENTRY(ce, "http\\Env", "Url", NULL);
+       php_http_env_url_class_entry = zend_register_internal_class_ex(&ce, php_http_url_class_entry);
+
        return SUCCESS;
 }