Skip to content

Commit 400b7b8

Browse files
authored
Add Lexbor files for URL handling (#18656)
Relates to #14461 and https://wiki.php.net/rfc/url_parsing_api
1 parent d585a56 commit 400b7b8

File tree

15 files changed

+210811
-1
lines changed

15 files changed

+210811
-1
lines changed

codecov.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ ignore:
77
- "ext/lexbor/lexbor/html"
88
- "ext/lexbor/lexbor/ns"
99
- "ext/lexbor/lexbor/ports"
10+
- "ext/lexbor/lexbor/punycode"
1011
- "ext/lexbor/lexbor/tag"
12+
- "ext/lexbor/lexbor/unicode"
13+
- "ext/lexbor/lexbor/url"
1114
- "ext/pcre/pcre2lib"
1215
- "ext/uri/uriparser"

ext/lexbor/config.m4

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ PHP_NEW_EXTENSION([lexbor], m4_normalize([
1717
$LEXBOR_DIR/core/hash.c
1818
$LEXBOR_DIR/core/mem.c
1919
$LEXBOR_DIR/core/mraw.c
20+
$LEXBOR_DIR/core/plog.c
2021
$LEXBOR_DIR/core/print.c
2122
$LEXBOR_DIR/core/serialize.c
2223
$LEXBOR_DIR/core/shs.c
@@ -174,7 +175,11 @@ PHP_NEW_EXTENSION([lexbor], m4_normalize([
174175
$LEXBOR_DIR/html/tree/open_elements.c
175176
$LEXBOR_DIR/ns/ns.c
176177
$LEXBOR_DIR/ports/posix/lexbor/core/memory.c
178+
$LEXBOR_DIR/punycode/punycode.c
177179
$LEXBOR_DIR/tag/tag.c
180+
$LEXBOR_DIR/unicode/idna.c
181+
$LEXBOR_DIR/unicode/unicode.c
182+
$LEXBOR_DIR/url/url.c
178183
]),
179184
[no],,
180185
[-DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 $PHP_LEXBOR_CFLAGS])
@@ -193,7 +198,10 @@ PHP_ADD_BUILD_DIR([
193198
$ext_builddir/$LEXBOR_DIR/html/tree/insertion_mode
194199
$ext_builddir/$LEXBOR_DIR/ns
195200
$ext_builddir/$LEXBOR_DIR/ports/posix/lexbor/core
201+
$ext_builddir/$LEXBOR_DIR/punycode
196202
$ext_builddir/$LEXBOR_DIR/tag
203+
$ext_builddir/$LEXBOR_DIR/unicode
204+
$ext_builddir/$LEXBOR_DIR/url
197205
])
198206
PHP_ADD_INCLUDE([$ext_srcdir])
199207
PHP_INSTALL_HEADERS([ext/lexbor], m4_normalize([

ext/lexbor/config.w32

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
EXTENSION("lexbor", "php_lexbor.c", false, "/I " + configure_module_dirname + " /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
44
PHP_LEXBOR="yes";
55
ADD_SOURCES("ext/lexbor/lexbor/ports/windows_nt/lexbor/core", "memory.c", "lexbor");
6-
ADD_SOURCES("ext/lexbor/lexbor/core", "array_obj.c array.c avl.c bst.c diyfp.c conv.c dobject.c dtoa.c hash.c mem.c mraw.c print.c serialize.c shs.c str.c strtod.c", "lexbor");
6+
ADD_SOURCES("ext/lexbor/lexbor/core", "array_obj.c array.c avl.c bst.c diyfp.c conv.c dobject.c dtoa.c hash.c mem.c mraw.c plog.c print.c serialize.c shs.c str.c strtod.c", "lexbor");
77
ADD_SOURCES("ext/lexbor/lexbor/dom", "interface.c", "lexbor");
88
ADD_SOURCES("ext/lexbor/lexbor/dom/interfaces", "attr.c cdata_section.c character_data.c comment.c document.c document_fragment.c document_type.c element.c node.c processing_instruction.c shadow_root.c text.c", "lexbor");
99
ADD_SOURCES("ext/lexbor/lexbor/html/tokenizer", "error.c state_comment.c state_doctype.c state_rawtext.c state_rcdata.c state_script.c state.c", "lexbor");
@@ -17,7 +17,10 @@ ADD_SOURCES("ext/lexbor/lexbor/css/selectors", "state.c selectors.c selector.c p
1717
ADD_SOURCES("ext/lexbor/lexbor/css/syntax", "state.c parser.c syntax.c anb.c tokenizer.c token.c","lexbor");
1818
ADD_SOURCES("ext/lexbor/lexbor/css/syntax/tokenizer", "error.c","lexbor");
1919
ADD_SOURCES("ext/lexbor/lexbor/ns", "ns.c","lexbor");
20+
ADD_SOURCES("ext/lexbor/lexbor/punycode", "punycode.c","lexbor");
2021
ADD_SOURCES("ext/lexbor/lexbor/tag", "tag.c","lexbor");
22+
ADD_SOURCES("ext/lexbor/lexbor/unicode", "idna.c unicode.c","lexbor");
23+
ADD_SOURCES("ext/lexbor/lexbor/url", "url.c","lexbor");
2124
ADD_FLAG("CFLAGS_LEXBOR", "/D LEXBOR_BUILDING /utf-8");
2225

2326
AC_DEFINE("HAVE_LEXBOR", 1, "Define to 1 if the PHP extension 'lexbor' is available.");

ext/lexbor/lexbor/punycode/base.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Copyright (C) 2023-2024 Alexander Borisov
3+
*
4+
* Author: Alexander Borisov <borisov@lexbor.com>
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 1
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 */

0 commit comments

Comments
 (0)