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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy