Skip to content

Commit 823e4c6

Browse files
committed
Add ext/url based on Lexbor
1 parent bbbe56e commit 823e4c6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+266456
-7
lines changed

.cirrus.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ freebsd_task:
1414
- pkg install -y autoconf bison gmake re2c icu libiconv png freetype2 enchant2 bzip2 t1lib gmp tidyp libsodium libzip libxml2 libxslt openssl oniguruma pkgconf webp libavif
1515
script:
1616
- ./buildconf -f
17-
- ./configure --prefix=/usr/local --enable-debug --enable-option-checking=fatal --enable-fpm --with-pdo-sqlite --without-pear --with-bz2 --with-avif --with-jpeg --with-webp --with-freetype --enable-gd --enable-exif --with-zip --with-zlib --enable-soap --enable-xmlreader --with-xsl --with-libxml --enable-shmop --enable-pcntl --enable-mbstring --with-curl --enable-sockets --with-openssl --with-iconv=/usr/local --enable-bcmath --enable-calendar --enable-ftp --with-ffi --enable-zend-test --enable-dl-test=shared --enable-intl --with-mhash --with-sodium --enable-werror --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d
17+
- ./configure --prefix=/usr/local --enable-debug --enable-option-checking=fatal --enable-fpm --with-pdo-sqlite --without-pear --with-bz2 --with-avif --with-jpeg --with-webp --with-freetype --enable-gd --enable-exif --with-zip --with-zlib --enable-soap --enable-xmlreader --with-xsl --with-libxml --enable-shmop --enable-pcntl --enable-mbstring --enable-url --with-curl --enable-sockets --with-openssl --with-iconv=/usr/local --enable-bcmath --enable-calendar --enable-ftp --with-ffi --enable-zend-test --enable-dl-test=shared --enable-intl --with-mhash --with-sodium --enable-werror --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d
1818
- gmake -j2
1919
- mkdir /etc/php.d
2020
- gmake install

.github/actions/configure-macos/action.yml

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ runs:
4747
--enable-pcntl \
4848
--with-readline="$BREW_OPT"/readline \
4949
--enable-mbstring \
50+
--enable-url \
5051
--with-curl \
5152
--with-gettext="$BREW_OPT"/gettext \
5253
--enable-sockets \

.github/actions/configure-x64/action.yml

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ runs:
4343
--enable-pcntl \
4444
--with-readline \
4545
--enable-mbstring \
46+
--enable-url \
4647
--with-curl \
4748
--with-gettext \
4849
--enable-sockets \

EXTENSIONS

+6
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,12 @@ PRIMARY MAINTAINER: Andrei Zmievski <[email protected]> (2002 - 2002)
493493
MAINTENANCE: Maintained
494494
STATUS: Working
495495
-------------------------------------------------------------------------------
496+
EXTENSION: url
497+
PRIMARY MAINTAINER Máté Kocsis <[email protected]> (2024 - 2024)
498+
MAINTENANCE: Maintained
499+
STATUS: Working
500+
SINCE: 8.3.0
501+
-------------------------------------------------------------------------------
496502
EXTENSION: zip
497503
PRIMARY MAINTAINER: Pierre-Alain Joye <[email protected]> (2006 - 2011)
498504
Remi Collet <[email protected]> (2013-2020)

Zend/zend_string.h

+1
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,7 @@ EMPTY_SWITCH_DEFAULT_CASE()
595595
_(ZEND_STR_PORT, "port") \
596596
_(ZEND_STR_USER, "user") \
597597
_(ZEND_STR_PASS, "pass") \
598+
_(ZEND_STR_PASSWORD, "password") \
598599
_(ZEND_STR_PATH, "path") \
599600
_(ZEND_STR_QUERY, "query") \
600601
_(ZEND_STR_FRAGMENT, "fragment") \

ext/dom/config.m4

+9-3
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ if test "$PHP_DOM" != "no"; then
1212

1313
PHP_SETUP_LIBXML(DOM_SHARED_LIBADD, [
1414
AC_DEFINE(HAVE_DOM,1,[ ])
15-
PHP_LEXBOR_CFLAGS="-I@ext_srcdir@/lexbor -DLEXBOR_STATIC"
15+
PHP_LEXBOR_CFLAGS="-I@ext_srcdir@/lexbor -DLEXBOR_STATIC -Wno-uninitialized"
1616
LEXBOR_DIR="lexbor/lexbor"
1717
LEXBOR_SOURCES="$LEXBOR_DIR/ports/posix/lexbor/core/memory.c \
18-
$LEXBOR_DIR/core/array_obj.c $LEXBOR_DIR/core/array.c $LEXBOR_DIR/core/avl.c $LEXBOR_DIR/core/bst.c $LEXBOR_DIR/core/diyfp.c $LEXBOR_DIR/core/conv.c $LEXBOR_DIR/core/dobject.c $LEXBOR_DIR/core/dtoa.c $LEXBOR_DIR/core/hash.c $LEXBOR_DIR/core/mem.c $LEXBOR_DIR/core/mraw.c $LEXBOR_DIR/core/print.c $LEXBOR_DIR/core/serialize.c $LEXBOR_DIR/core/shs.c $LEXBOR_DIR/core/str.c $LEXBOR_DIR/core/strtod.c \
18+
$LEXBOR_DIR/core/array_obj.c $LEXBOR_DIR/core/array.c $LEXBOR_DIR/core/avl.c $LEXBOR_DIR/core/bst.c $LEXBOR_DIR/core/diyfp.c $LEXBOR_DIR/core/conv.c $LEXBOR_DIR/core/dobject.c $LEXBOR_DIR/core/dtoa.c $LEXBOR_DIR/core/hash.c $LEXBOR_DIR/core/mem.c $LEXBOR_DIR/core/mraw.c $LEXBOR_DIR/core/plog.c $LEXBOR_DIR/core/print.c $LEXBOR_DIR/core/serialize.c $LEXBOR_DIR/core/shs.c $LEXBOR_DIR/core/str.c $LEXBOR_DIR/core/strtod.c \
1919
$LEXBOR_DIR/dom/interface.c $LEXBOR_DIR/dom/interfaces/attr.c $LEXBOR_DIR/dom/interfaces/cdata_section.c $LEXBOR_DIR/dom/interfaces/character_data.c $LEXBOR_DIR/dom/interfaces/comment.c $LEXBOR_DIR/dom/interfaces/document.c $LEXBOR_DIR/dom/interfaces/document_fragment.c $LEXBOR_DIR/dom/interfaces/document_type.c $LEXBOR_DIR/dom/interfaces/element.c $LEXBOR_DIR/dom/interfaces/node.c $LEXBOR_DIR/dom/interfaces/processing_instruction.c $LEXBOR_DIR/dom/interfaces/shadow_root.c $LEXBOR_DIR/dom/interfaces/text.c \
2020
$LEXBOR_DIR/html/tokenizer/error.c $LEXBOR_DIR/html/tokenizer/state_comment.c $LEXBOR_DIR/html/tokenizer/state_doctype.c $LEXBOR_DIR/html/tokenizer/state_rawtext.c $LEXBOR_DIR/html/tokenizer/state_rcdata.c $LEXBOR_DIR/html/tokenizer/state_script.c $LEXBOR_DIR/html/tokenizer/state.c \
2121
$LEXBOR_DIR/html/tree/active_formatting.c $LEXBOR_DIR/html/tree/error.c $LEXBOR_DIR/html/tree/insertion_mode/after_after_body.c $LEXBOR_DIR/html/tree/insertion_mode/after_after_frameset.c $LEXBOR_DIR/html/tree/insertion_mode/after_body.c $LEXBOR_DIR/html/tree/insertion_mode/after_frameset.c $LEXBOR_DIR/html/tree/insertion_mode/after_head.c $LEXBOR_DIR/html/tree/insertion_mode/before_head.c $LEXBOR_DIR/html/tree/insertion_mode/before_html.c $LEXBOR_DIR/html/tree/insertion_mode/foreign_content.c $LEXBOR_DIR/html/tree/insertion_mode/in_body.c $LEXBOR_DIR/html/tree/insertion_mode/in_caption.c $LEXBOR_DIR/html/tree/insertion_mode/in_cell.c $LEXBOR_DIR/html/tree/insertion_mode/in_column_group.c $LEXBOR_DIR/html/tree/insertion_mode/in_frameset.c $LEXBOR_DIR/html/tree/insertion_mode/in_head.c $LEXBOR_DIR/html/tree/insertion_mode/in_head_noscript.c $LEXBOR_DIR/html/tree/insertion_mode/initial.c $LEXBOR_DIR/html/tree/insertion_mode/in_row.c $LEXBOR_DIR/html/tree/insertion_mode/in_select.c $LEXBOR_DIR/html/tree/insertion_mode/in_select_in_table.c $LEXBOR_DIR/html/tree/insertion_mode/in_table_body.c $LEXBOR_DIR/html/tree/insertion_mode/in_table.c $LEXBOR_DIR/html/tree/insertion_mode/in_table_text.c $LEXBOR_DIR/html/tree/insertion_mode/in_template.c $LEXBOR_DIR/html/tree/insertion_mode/text.c $LEXBOR_DIR/html/tree/open_elements.c \
@@ -24,7 +24,10 @@ if test "$PHP_DOM" != "no"; then
2424
$LEXBOR_DIR/html/interfaces/anchor_element.c $LEXBOR_DIR/html/interfaces/area_element.c $LEXBOR_DIR/html/interfaces/audio_element.c $LEXBOR_DIR/html/interfaces/base_element.c $LEXBOR_DIR/html/interfaces/body_element.c $LEXBOR_DIR/html/interfaces/br_element.c $LEXBOR_DIR/html/interfaces/button_element.c $LEXBOR_DIR/html/interfaces/canvas_element.c $LEXBOR_DIR/html/interfaces/data_element.c $LEXBOR_DIR/html/interfaces/data_list_element.c $LEXBOR_DIR/html/interfaces/details_element.c $LEXBOR_DIR/html/interfaces/dialog_element.c $LEXBOR_DIR/html/interfaces/directory_element.c $LEXBOR_DIR/html/interfaces/div_element.c $LEXBOR_DIR/html/interfaces/d_list_element.c $LEXBOR_DIR/html/interfaces/document.c $LEXBOR_DIR/html/interfaces/element.c $LEXBOR_DIR/html/interfaces/embed_element.c $LEXBOR_DIR/html/interfaces/field_set_element.c $LEXBOR_DIR/html/interfaces/font_element.c $LEXBOR_DIR/html/interfaces/form_element.c $LEXBOR_DIR/html/interfaces/frame_element.c $LEXBOR_DIR/html/interfaces/frame_set_element.c $LEXBOR_DIR/html/interfaces/head_element.c $LEXBOR_DIR/html/interfaces/heading_element.c $LEXBOR_DIR/html/interfaces/hr_element.c $LEXBOR_DIR/html/interfaces/html_element.c $LEXBOR_DIR/html/interfaces/iframe_element.c $LEXBOR_DIR/html/interfaces/image_element.c $LEXBOR_DIR/html/interfaces/input_element.c $LEXBOR_DIR/html/interfaces/label_element.c $LEXBOR_DIR/html/interfaces/legend_element.c $LEXBOR_DIR/html/interfaces/li_element.c $LEXBOR_DIR/html/interfaces/link_element.c $LEXBOR_DIR/html/interfaces/map_element.c $LEXBOR_DIR/html/interfaces/marquee_element.c $LEXBOR_DIR/html/interfaces/media_element.c $LEXBOR_DIR/html/interfaces/menu_element.c $LEXBOR_DIR/html/interfaces/meta_element.c $LEXBOR_DIR/html/interfaces/meter_element.c $LEXBOR_DIR/html/interfaces/mod_element.c $LEXBOR_DIR/html/interfaces/object_element.c $LEXBOR_DIR/html/interfaces/o_list_element.c $LEXBOR_DIR/html/interfaces/opt_group_element.c $LEXBOR_DIR/html/interfaces/option_element.c $LEXBOR_DIR/html/interfaces/output_element.c $LEXBOR_DIR/html/interfaces/paragraph_element.c $LEXBOR_DIR/html/interfaces/param_element.c $LEXBOR_DIR/html/interfaces/picture_element.c $LEXBOR_DIR/html/interfaces/pre_element.c $LEXBOR_DIR/html/interfaces/progress_element.c $LEXBOR_DIR/html/interfaces/quote_element.c $LEXBOR_DIR/html/interfaces/script_element.c $LEXBOR_DIR/html/interfaces/select_element.c $LEXBOR_DIR/html/interfaces/slot_element.c $LEXBOR_DIR/html/interfaces/source_element.c $LEXBOR_DIR/html/interfaces/span_element.c $LEXBOR_DIR/html/interfaces/style_element.c $LEXBOR_DIR/html/interfaces/table_caption_element.c $LEXBOR_DIR/html/interfaces/table_cell_element.c $LEXBOR_DIR/html/interfaces/table_col_element.c $LEXBOR_DIR/html/interfaces/table_element.c $LEXBOR_DIR/html/interfaces/table_row_element.c $LEXBOR_DIR/html/interfaces/table_section_element.c $LEXBOR_DIR/html/interfaces/template_element.c $LEXBOR_DIR/html/interfaces/text_area_element.c $LEXBOR_DIR/html/interfaces/time_element.c $LEXBOR_DIR/html/interfaces/title_element.c $LEXBOR_DIR/html/interfaces/track_element.c $LEXBOR_DIR/html/interfaces/u_list_element.c $LEXBOR_DIR/html/interfaces/unknown_element.c $LEXBOR_DIR/html/interfaces/video_element.c $LEXBOR_DIR/html/interfaces/window.c \
2525
$LEXBOR_DIR/selectors/selectors.c \
2626
$LEXBOR_DIR/ns/ns.c \
27-
$LEXBOR_DIR/tag/tag.c"
27+
$LEXBOR_DIR/tag/tag.c \
28+
$LEXBOR_DIR/punycode/punycode.c \
29+
$LEXBOR_DIR/unicode/idna.c $LEXBOR_DIR/unicode/unicode.c \
30+
$LEXBOR_DIR/url/url.c"
2831
PHP_NEW_EXTENSION(dom, [php_dom.c attr.c document.c \
2932
xml_document.c html_document.c xml_serializer.c html5_serializer.c html5_parser.c namespace_compat.c \
3033
domexception.c parentnode.c \
@@ -48,6 +51,9 @@ if test "$PHP_DOM" != "no"; then
4851
PHP_ADD_BUILD_DIR($ext_builddir/$LEXBOR_DIR/selectors)
4952
PHP_ADD_BUILD_DIR($ext_builddir/$LEXBOR_DIR/ns)
5053
PHP_ADD_BUILD_DIR($ext_builddir/$LEXBOR_DIR/tag)
54+
PHP_ADD_BUILD_DIR($ext_builddir/$LEXBOR_DIR/punycode)
55+
PHP_ADD_BUILD_DIR($ext_builddir/$LEXBOR_DIR/unicode)
56+
PHP_ADD_BUILD_DIR($ext_builddir/$LEXBOR_DIR/url)
5157
PHP_SUBST(DOM_SHARED_LIBADD)
5258
PHP_INSTALL_HEADERS([ext/dom], [xml_common.h xpath_callbacks.h namespace_compat.h])
5359
PHP_ADD_EXTENSION_DEP(dom, libxml)

ext/dom/lexbor/lexbor/punycode/base.h

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Copyright (C) 2023 Alexander Borisov
3+
*
4+
* Author: Alexander Borisov <[email protected]>
5+
*/
6+
7+
#ifndef LEXBOR_PUNYCODE_BASE_H
8+
#define LEXBOR_PUNYCODE_BASE_H
9+
10+
#ifdef __cplusplus
11+
extern "C" {
12+
#endif
13+
14+
#include "lexbor/core/base.h"
15+
16+
17+
#define LXB_PUNYCODE_VERSION_MAJOR 1
18+
#define LXB_PUNYCODE_VERSION_MINOR 0
19+
#define LXB_PUNYCODE_VERSION_PATCH 0
20+
21+
#define LEXBOR_PUNYCODE_VERSION_STRING LEXBOR_STRINGIZE(LXB_PUNYCODE_VERSION_MAJOR) "." \
22+
LEXBOR_STRINGIZE(LXB_PUNYCODE_VERSION_MINOR) "." \
23+
LEXBOR_STRINGIZE(LXB_PUNYCODE_VERSION_PATCH)
24+
25+
26+
#ifdef __cplusplus
27+
} /* extern "C" */
28+
#endif
29+
30+
#endif /* LEXBOR_PUNYCODE_BASE_H */
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
set(DEPENDENCIES "core encoding")
2+
set(DESCRIPTION "The module implemented by PUNYCODE specification.
3+
Specification: https://www.rfc-editor.org/rfc/inline-errata/rfc3492.html")

0 commit comments

Comments
 (0)