diff options
author | Muhammad Moinur Rahman <bofh@FreeBSD.org> | 2025-08-19 08:21:03 +0200 |
---|---|---|
committer | Muhammad Moinur Rahman <bofh@FreeBSD.org> | 2025-08-19 08:45:45 +0200 |
commit | e000de2adb6a7bb79613530d9e9ebf62fd9495d9 (patch) | |
tree | a306215a5e095ac2a6d492334aa5c4533ff40717 | |
parent | devel/libfaketime: Update version 0.9.10=>0.9.12 (diff) |
lang/php85: Update version 8.5.0alpha4=>8.5.0beta1
Please DO NOT use this version in production, it is an early test
version.
Changelog: https://github.com/php/php-src/blob/php-8.5.0beta1/NEWS
-rw-r--r-- | archivers/php85-phar/files/patch-phar__internal.h | 18 | ||||
-rw-r--r-- | archivers/php85-phar/files/patch-phar__path__check.c | 241 | ||||
-rw-r--r-- | archivers/php85-phar/files/patch-pharzip.h | 19 | ||||
-rw-r--r-- | databases/php85-pdo/files/patch-pdo__sql__parser.c | 729 | ||||
-rw-r--r-- | databases/php85-pdo_mysql/files/patch-mysql__sql__parser.c | 398 | ||||
-rw-r--r-- | databases/php85-pdo_pgsql/files/patch-pgsql__sql__parser.c | 528 | ||||
-rw-r--r-- | databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c | 398 | ||||
-rw-r--r-- | lang/php85/Makefile | 10 | ||||
-rw-r--r-- | lang/php85/distinfo | 6 | ||||
-rw-r--r-- | lang/php85/pkg-plist | 1 |
10 files changed, 45 insertions, 2303 deletions
diff --git a/archivers/php85-phar/files/patch-phar__internal.h b/archivers/php85-phar/files/patch-phar__internal.h new file mode 100644 index 000000000000..8e78b1e703f8 --- /dev/null +++ b/archivers/php85-phar/files/patch-phar__internal.h @@ -0,0 +1,18 @@ +--- phar_internal.h.orig 2025-08-19 05:47:26 UTC ++++ phar_internal.h +@@ -17,6 +17,9 @@ + +----------------------------------------------------------------------+ + */ + ++#ifndef PHAR_PHAR_INTERNAL_H ++#define PHAR_PHAR_INTERNAL_H ++ + #ifdef HAVE_CONFIG_H + #include <config.h> + #endif +@@ -487,3 +490,5 @@ END_EXTERN_C() + phar_path_check_result phar_path_check(char **p, size_t *len, const char **error); + + END_EXTERN_C() ++ ++#endif /* PHAR_PHAR_INTERNAL_H */ diff --git a/archivers/php85-phar/files/patch-phar__path__check.c b/archivers/php85-phar/files/patch-phar__path__check.c deleted file mode 100644 index 8e599176ec86..000000000000 --- a/archivers/php85-phar/files/patch-phar__path__check.c +++ /dev/null @@ -1,241 +0,0 @@ ---- phar_path_check.c.orig 2025-07-02 12:00:06 UTC -+++ phar_path_check.c -@@ -0,0 +1,238 @@ -+/* Generated by re2c 3.1 */ -+/* -+ +----------------------------------------------------------------------+ -+ | phar php single-file executable PHP extension | -+ +----------------------------------------------------------------------+ -+ | Copyright (c) The PHP Group | -+ +----------------------------------------------------------------------+ -+ | This source file is subject to version 3.01 of the PHP license, | -+ | that is bundled with this package in the file LICENSE, and is | -+ | available through the world-wide-web at the following url: | -+ | https://www.php.net/license/3_01.txt | -+ | If you did not receive a copy of the PHP license and are unable to | -+ | obtain it through the world-wide-web, please send a note to | -+ | license@php.net so we can mail you a copy immediately. | -+ +----------------------------------------------------------------------+ -+ | Authors: Marcus Boerger <helly@php.net> | -+ +----------------------------------------------------------------------+ -+*/ -+ -+#include "phar_internal.h" -+ -+phar_path_check_result phar_path_check(char **s, size_t *len, const char **error) -+{ -+ const unsigned char *p = (const unsigned char*)*s; -+ const unsigned char *m; -+ -+ if (*len == 1 && *p == '.') { -+ *error = "current directory reference"; -+ return pcr_err_curr_dir; -+ } else if (*len == 2 && p[0] == '.' && p[1] == '.') { -+ *error = "upper directory reference"; -+ return pcr_err_up_dir; -+ } -+ -+#define YYCTYPE unsigned char -+#define YYCURSOR p -+#define YYLIMIT p+*len -+#define YYMARKER m -+#define YYFILL(n) do {} while (0) -+ -+loop: -+ -+{ -+ YYCTYPE yych; -+ unsigned int yyaccept = 0; -+ if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); -+ yych = *YYCURSOR; -+ if (yych <= '[') { -+ if (yych <= ')') { -+ if (yych <= '\f') { -+ if (yych >= 0x01) goto yy1; -+ } else { -+ if (yych <= '\r') goto yy3; -+ if (yych <= 0x19) goto yy1; -+ goto yy4; -+ } -+ } else { -+ if (yych <= '/') { -+ if (yych <= '*') goto yy6; -+ if (yych <= '.') goto yy4; -+ goto yy7; -+ } else { -+ if (yych == '?') goto yy8; -+ goto yy4; -+ } -+ } -+ } else { -+ if (yych <= 0xEC) { -+ if (yych <= 0xC1) { -+ if (yych <= '\\') goto yy9; -+ if (yych <= 0x7F) goto yy4; -+ goto yy1; -+ } else { -+ if (yych <= 0xDF) goto yy10; -+ if (yych <= 0xE0) goto yy11; -+ goto yy12; -+ } -+ } else { -+ if (yych <= 0xF0) { -+ if (yych <= 0xED) goto yy13; -+ if (yych <= 0xEF) goto yy12; -+ goto yy14; -+ } else { -+ if (yych <= 0xF3) goto yy15; -+ if (yych <= 0xF4) goto yy16; -+ goto yy1; -+ } -+ } -+ } -+ ++YYCURSOR; -+ { -+ if (**s == '/') { -+ (*s)++; -+ (*len)--; -+ } -+ if ((p - (const unsigned char*)*s) - 1 != *len) -+ { -+ *error ="illegal character"; -+ return pcr_err_illegal_char; -+ } -+ *error = NULL; -+ return pcr_is_ok; -+ } -+yy1: -+ ++YYCURSOR; -+yy2: -+ { -+ *error ="illegal character"; -+ return pcr_err_illegal_char; -+ } -+yy3: -+ yych = *++YYCURSOR; -+ if (yych == '\n') goto yy1; -+ goto yy2; -+yy4: -+ ++YYCURSOR; -+yy5: -+ { -+ goto loop; -+ } -+yy6: -+ ++YYCURSOR; -+ { -+ *error = "star"; -+ return pcr_err_star; -+ } -+yy7: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= '-') goto yy5; -+ if (yych <= '.') goto yy17; -+ if (yych <= '/') goto yy19; -+ goto yy5; -+yy8: -+ ++YYCURSOR; -+ { -+ if (**s == '/') { -+ (*s)++; -+ } -+ *len = (p - (const unsigned char*)*s) -1; -+ *error = NULL; -+ return pcr_use_query; -+ } -+yy9: -+ ++YYCURSOR; -+ { -+ *error = "back-slash"; -+ return pcr_err_back_slash; -+ } -+yy10: -+ yych = *++YYCURSOR; -+ if (yych <= 0x7F) goto yy2; -+ if (yych <= 0xBF) goto yy4; -+ goto yy2; -+yy11: -+ yyaccept = 1; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x9F) goto yy2; -+ if (yych <= 0xBF) goto yy20; -+ goto yy2; -+yy12: -+ yyaccept = 1; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x7F) goto yy2; -+ if (yych <= 0xBF) goto yy20; -+ goto yy2; -+yy13: -+ yyaccept = 1; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x7F) goto yy2; -+ if (yych <= 0x9F) goto yy20; -+ goto yy2; -+yy14: -+ yyaccept = 1; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x8F) goto yy2; -+ if (yych <= 0xBF) goto yy21; -+ goto yy2; -+yy15: -+ yyaccept = 1; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x7F) goto yy2; -+ if (yych <= 0xBF) goto yy21; -+ goto yy2; -+yy16: -+ yyaccept = 1; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x7F) goto yy2; -+ if (yych <= 0x8F) goto yy21; -+ goto yy2; -+yy17: -+ yych = *++YYCURSOR; -+ if (yych <= 0x00) goto yy22; -+ if (yych <= '-') goto yy18; -+ if (yych <= '.') goto yy23; -+ if (yych <= '/') goto yy22; -+yy18: -+ YYCURSOR = YYMARKER; -+ if (yyaccept == 0) { -+ goto yy5; -+ } else { -+ goto yy2; -+ } -+yy19: -+ ++YYCURSOR; -+ { -+ *error = "double slash"; -+ return pcr_err_double_slash; -+ } -+yy20: -+ yych = *++YYCURSOR; -+ if (yych <= 0x7F) goto yy18; -+ if (yych <= 0xBF) goto yy4; -+ goto yy18; -+yy21: -+ yych = *++YYCURSOR; -+ if (yych <= 0x7F) goto yy18; -+ if (yych <= 0xBF) goto yy20; -+ goto yy18; -+yy22: -+ ++YYCURSOR; -+ { -+ *error = "current directory reference"; -+ return pcr_err_curr_dir; -+ } -+yy23: -+ yych = *++YYCURSOR; -+ if (yych <= 0x00) goto yy24; -+ if (yych != '/') goto yy18; -+yy24: -+ ++YYCURSOR; -+ { -+ *error = "upper directory reference"; -+ return pcr_err_up_dir; -+ } -+} -+ -+} diff --git a/archivers/php85-phar/files/patch-pharzip.h b/archivers/php85-phar/files/patch-pharzip.h new file mode 100644 index 000000000000..5e0e89f2a844 --- /dev/null +++ b/archivers/php85-phar/files/patch-pharzip.h @@ -0,0 +1,19 @@ +--- pharzip.h.orig 2025-08-19 05:41:37 UTC ++++ pharzip.h +@@ -17,6 +17,10 @@ + +----------------------------------------------------------------------+ + */ + ++/* Add missing include guard to avoid multiple inclusion */ ++#ifndef PHAR_PHARZIP_H ++#define PHAR_PHARZIP_H ++ + typedef struct _phar_zip_file_header { + char signature[4]; /* local file header signature 4 bytes (0x04034b50) */ + char zipversion[2]; /* version needed to extract 2 bytes */ +@@ -238,3 +242,5 @@ typedef struct _phar_zip_dir_end { + char comment_len[2]; /* .ZIP file comment length 2 bytes */ + /* .ZIP file comment (variable size) */ + } phar_zip_dir_end; ++ ++#endif /* PHAR_PHARZIP_H */ diff --git a/databases/php85-pdo/files/patch-pdo__sql__parser.c b/databases/php85-pdo/files/patch-pdo__sql__parser.c deleted file mode 100644 index 191eea16a3bd..000000000000 --- a/databases/php85-pdo/files/patch-pdo__sql__parser.c +++ /dev/null @@ -1,729 +0,0 @@ ---- pdo_sql_parser.c.orig 2025-07-02 12:59:51 UTC -+++ pdo_sql_parser.c -@@ -0,0 +1,726 @@ -+/* Generated by re2c 3.1 */ -+/* -+ +----------------------------------------------------------------------+ -+ | Copyright (c) The PHP Group | -+ +----------------------------------------------------------------------+ -+ | This source file is subject to version 3.01 of the PHP license, | -+ | that is bundled with this package in the file LICENSE, and is | -+ | available through the world-wide-web at the following url: | -+ | https://www.php.net/license/3_01.txt | -+ | If you did not receive a copy of the PHP license and are unable to | -+ | obtain it through the world-wide-web, please send a note to | -+ | license@php.net so we can mail you a copy immediately. | -+ +----------------------------------------------------------------------+ -+ | Author: George Schlossnagle <george@omniti.com> | -+ +----------------------------------------------------------------------+ -+*/ -+ -+#include "php.h" -+#include "php_pdo_driver.h" -+#include "pdo_sql_parser.h" -+ -+static int default_scanner(pdo_scanner_t *s) -+{ -+ const char *cursor = s->cur; -+ -+ s->tok = cursor; -+ -+ -+ -+{ -+ YYCTYPE yych; -+ unsigned int yyaccept = 0; -+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '"': goto yy4; -+ case '\'': goto yy6; -+ case '-': goto yy7; -+ case '/': goto yy8; -+ case ':': goto yy9; -+ case '?': goto yy10; -+ default: goto yy2; -+ } -+yy1: -+ YYCURSOR = YYMARKER; -+ switch (yyaccept) { -+ case 0: goto yy5; -+ case 1: goto yy15; -+ default: goto yy19; -+ } -+yy2: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: -+ case '"': -+ case '\'': -+ case '-': -+ case '/': -+ case ':': -+ case '?': goto yy3; -+ default: goto yy2; -+ } -+yy3: -+ { RET(PDO_PARSER_TEXT); } -+yy4: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych >= 0x01) goto yy13; -+yy5: -+ { SKIP_ONE(PDO_PARSER_TEXT); } -+yy6: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x00) goto yy5; -+ goto yy17; -+yy7: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '-': goto yy20; -+ default: goto yy5; -+ } -+yy8: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '*': goto yy22; -+ default: goto yy5; -+ } -+yy9: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '0': -+ case '1': -+ case '2': -+ case '3': -+ case '4': -+ case '5': -+ case '6': -+ case '7': -+ case '8': -+ case '9': -+ case 'A': -+ case 'B': -+ case 'C': -+ case 'D': -+ case 'E': -+ case 'F': -+ case 'G': -+ case 'H': -+ case 'I': -+ case 'J': -+ case 'K': -+ case 'L': -+ case 'M': -+ case 'N': -+ case 'O': -+ case 'P': -+ case 'Q': -+ case 'R': -+ case 'S': -+ case 'T': -+ case 'U': -+ case 'V': -+ case 'W': -+ case 'X': -+ case 'Y': -+ case 'Z': -+ case '_': -+ case 'a': -+ case 'b': -+ case 'c': -+ case 'd': -+ case 'e': -+ case 'f': -+ case 'g': -+ case 'h': -+ case 'i': -+ case 'j': -+ case 'k': -+ case 'l': -+ case 'm': -+ case 'n': -+ case 'o': -+ case 'p': -+ case 'q': -+ case 'r': -+ case 's': -+ case 't': -+ case 'u': -+ case 'v': -+ case 'w': -+ case 'x': -+ case 'y': -+ case 'z': goto yy23; -+ case ':': goto yy25; -+ default: goto yy5; -+ } -+yy10: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '?': goto yy27; -+ default: goto yy11; -+ } -+yy11: -+ { RET(PDO_PARSER_BIND_POS); } -+yy12: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+yy13: -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '"': goto yy14; -+ default: goto yy12; -+ } -+yy14: -+ yyaccept = 1; -+ YYMARKER = ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '"': goto yy12; -+ default: goto yy15; -+ } -+yy15: -+ { RET(PDO_PARSER_TEXT); } -+yy16: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+yy17: -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '\'': goto yy18; -+ default: goto yy16; -+ } -+yy18: -+ yyaccept = 2; -+ YYMARKER = ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '\'': goto yy16; -+ default: goto yy19; -+ } -+yy19: -+ { RET(PDO_PARSER_TEXT); } -+yy20: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '\n': goto yy21; -+ default: goto yy20; -+ } -+yy21: -+ { RET(PDO_PARSER_TEXT); } -+yy22: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '*': goto yy28; -+ default: goto yy22; -+ } -+yy23: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '0': -+ case '1': -+ case '2': -+ case '3': -+ case '4': -+ case '5': -+ case '6': -+ case '7': -+ case '8': -+ case '9': -+ case 'A': -+ case 'B': -+ case 'C': -+ case 'D': -+ case 'E': -+ case 'F': -+ case 'G': -+ case 'H': -+ case 'I': -+ case 'J': -+ case 'K': -+ case 'L': -+ case 'M': -+ case 'N': -+ case 'O': -+ case 'P': -+ case 'Q': -+ case 'R': -+ case 'S': -+ case 'T': -+ case 'U': -+ case 'V': -+ case 'W': -+ case 'X': -+ case 'Y': -+ case 'Z': -+ case '_': -+ case 'a': -+ case 'b': -+ case 'c': -+ case 'd': -+ case 'e': -+ case 'f': -+ case 'g': -+ case 'h': -+ case 'i': -+ case 'j': -+ case 'k': -+ case 'l': -+ case 'm': -+ case 'n': -+ case 'o': -+ case 'p': -+ case 'q': -+ case 'r': -+ case 's': -+ case 't': -+ case 'u': -+ case 'v': -+ case 'w': -+ case 'x': -+ case 'y': -+ case 'z': goto yy23; -+ default: goto yy24; -+ } -+yy24: -+ { RET(PDO_PARSER_BIND); } -+yy25: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case ':': goto yy25; -+ default: goto yy26; -+ } -+yy26: -+ { RET(PDO_PARSER_TEXT); } -+yy27: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '?': goto yy27; -+ default: goto yy26; -+ } -+yy28: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '*': goto yy28; -+ case '/': goto yy29; -+ default: goto yy22; -+ } -+yy29: -+ ++YYCURSOR; -+ goto yy21; -+} -+ -+} -+ -+struct placeholder { -+ const char *pos; -+ size_t len; -+ zend_string *quoted; /* quoted value */ -+ int bindno; -+ struct placeholder *next; -+}; -+ -+struct custom_quote { -+ const char *pos; -+ size_t len; -+}; -+ -+static void free_param_name(zval *el) { -+ zend_string_release(Z_PTR_P(el)); -+} -+ -+PDO_API int pdo_parse_params(pdo_stmt_t *stmt, zend_string *inquery, zend_string **outquery) -+{ -+ pdo_scanner_t s; -+ char *newbuffer; -+ ptrdiff_t t; -+ uint32_t bindno = 0; -+ int ret = 0, escapes = 0; -+ size_t newbuffer_len; -+ HashTable *params; -+ struct pdo_bound_param_data *param; -+ int query_type = PDO_PLACEHOLDER_NONE; -+ struct placeholder *placeholders = NULL, *placetail = NULL, *plc = NULL; -+ int (*scan)(pdo_scanner_t *s); -+ struct custom_quote custom_quote = {NULL, 0}; -+ -+ scan = stmt->dbh->methods->scanner ? stmt->dbh->methods->scanner : default_scanner; -+ -+ s.cur = ZSTR_VAL(inquery); -+ s.end = s.cur + ZSTR_LEN(inquery) + 1; -+ -+ /* phase 1: look for args */ -+ while((t = scan(&s)) != PDO_PARSER_EOI) { -+ if (custom_quote.pos) { -+ /* Inside a custom quote */ -+ if (t == PDO_PARSER_CUSTOM_QUOTE && custom_quote.len == s.cur - s.tok && !strncmp(s.tok, custom_quote.pos, custom_quote.len)) { -+ /* Matching closing quote found, end custom quoting */ -+ custom_quote.pos = NULL; -+ custom_quote.len = 0; -+ } else if (t == PDO_PARSER_ESCAPED_QUESTION) { -+ /* An escaped question mark has been used inside a dollar quoted string, most likely as a workaround -+ * as a single "?" would have been parsed as placeholder, due to the lack of support for dollar quoted -+ * strings. For now, we emit a deprecation notice, but still process it */ -+ php_error_docref(NULL, E_DEPRECATED, "Escaping question marks inside dollar quoted strings is not required anymore and is deprecated"); -+ -+ goto placeholder; -+ } -+ -+ continue; -+ } -+ -+ if (t == PDO_PARSER_CUSTOM_QUOTE) { -+ /* Start of a custom quote, keep a reference to search for the matching closing quote */ -+ custom_quote.pos = s.tok; -+ custom_quote.len = s.cur - s.tok; -+ -+ continue; -+ } -+ -+ if (t == PDO_PARSER_BIND || t == PDO_PARSER_BIND_POS || t == PDO_PARSER_ESCAPED_QUESTION) { -+ if (t == PDO_PARSER_ESCAPED_QUESTION && stmt->supports_placeholders == PDO_PLACEHOLDER_POSITIONAL) { -+ /* escaped question marks unsupported, treat as text */ -+ continue; -+ } -+ -+ if (t == PDO_PARSER_BIND) { -+ ptrdiff_t len = s.cur - s.tok; -+ if ((ZSTR_VAL(inquery) < (s.cur - len)) && isalnum(*(s.cur - len - 1))) { -+ continue; -+ } -+ query_type |= PDO_PLACEHOLDER_NAMED; -+ } else if (t == PDO_PARSER_BIND_POS) { -+ query_type |= PDO_PLACEHOLDER_POSITIONAL; -+ } -+ -+placeholder: -+ plc = emalloc(sizeof(*plc)); -+ memset(plc, 0, sizeof(*plc)); -+ plc->next = NULL; -+ plc->pos = s.tok; -+ plc->len = s.cur - s.tok; -+ -+ if (t == PDO_PARSER_ESCAPED_QUESTION) { -+ plc->bindno = PDO_PARSER_BINDNO_ESCAPED_CHAR; -+ plc->quoted = ZSTR_CHAR('?'); -+ escapes++; -+ } else { -+ plc->bindno = bindno++; -+ } -+ -+ if (placetail) { -+ placetail->next = plc; -+ } else { -+ placeholders = plc; -+ } -+ placetail = plc; -+ } -+ } -+ -+ /* did the query make sense to me? */ -+ if (query_type == (PDO_PLACEHOLDER_NAMED|PDO_PLACEHOLDER_POSITIONAL)) { -+ /* they mixed both types; punt */ -+ pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "mixed named and positional parameters"); -+ ret = -1; -+ goto clean_up; -+ } -+ -+ params = stmt->bound_params; -+ if (stmt->supports_placeholders == PDO_PLACEHOLDER_NONE && params && bindno != zend_hash_num_elements(params)) { -+ /* extra bit of validation for instances when same params are bound more than once */ -+ if (query_type != PDO_PLACEHOLDER_POSITIONAL && bindno > zend_hash_num_elements(params)) { -+ int ok = 1; -+ for (plc = placeholders; plc; plc = plc->next) { -+ if ((param = zend_hash_str_find_ptr(params, plc->pos, plc->len)) == NULL) { -+ ok = 0; -+ break; -+ } -+ } -+ if (ok) { -+ goto safe; -+ } -+ } -+ pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "number of bound variables does not match number of tokens"); -+ ret = -1; -+ goto clean_up; -+ } -+ -+ if (!placeholders) { -+ /* nothing to do; good! */ -+ return 0; -+ } -+ -+ if (stmt->supports_placeholders == query_type && !stmt->named_rewrite_template) { -+ /* query matches native syntax */ -+ if (escapes) { -+ newbuffer_len = ZSTR_LEN(inquery); -+ goto rewrite; -+ } -+ -+ ret = 0; -+ goto clean_up; -+ } -+ -+ if (query_type == PDO_PLACEHOLDER_NAMED && stmt->named_rewrite_template) { -+ /* magic/hack. -+ * We we pretend that the query was positional even if -+ * it was named so that we fall into the -+ * named rewrite case below. Not too pretty, -+ * but it works. */ -+ query_type = PDO_PLACEHOLDER_POSITIONAL; -+ } -+ -+safe: -+ /* what are we going to do ? */ -+ if (stmt->supports_placeholders == PDO_PLACEHOLDER_NONE) { -+ /* query generation */ -+ -+ newbuffer_len = ZSTR_LEN(inquery); -+ -+ /* let's quote all the values */ -+ for (plc = placeholders; plc && params; plc = plc->next) { -+ if (plc->bindno == PDO_PARSER_BINDNO_ESCAPED_CHAR) { -+ /* escaped character */ -+ continue; -+ } -+ -+ if (query_type == PDO_PLACEHOLDER_NONE) { -+ continue; -+ } -+ -+ if (query_type == PDO_PLACEHOLDER_POSITIONAL) { -+ param = zend_hash_index_find_ptr(params, plc->bindno); -+ } else { -+ param = zend_hash_str_find_ptr(params, plc->pos, plc->len); -+ } -+ if (param == NULL) { -+ /* parameter was not defined */ -+ ret = -1; -+ pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "parameter was not defined"); -+ goto clean_up; -+ } -+ if (stmt->dbh->methods->quoter) { -+ zval *parameter; -+ if (Z_ISREF(param->parameter)) { -+ parameter = Z_REFVAL(param->parameter); -+ } else { -+ parameter = ¶m->parameter; -+ } -+ if (param->param_type == PDO_PARAM_LOB && Z_TYPE_P(parameter) == IS_RESOURCE) { -+ php_stream *stm; -+ -+ php_stream_from_zval_no_verify(stm, parameter); -+ if (stm) { -+ zend_string *buf; -+ -+ buf = php_stream_copy_to_mem(stm, PHP_STREAM_COPY_ALL, 0); -+ if (!buf) { -+ buf = ZSTR_EMPTY_ALLOC(); -+ } -+ -+ plc->quoted = stmt->dbh->methods->quoter(stmt->dbh, buf, param->param_type); -+ -+ if (buf) { -+ zend_string_release_ex(buf, 0); -+ } -+ if (plc->quoted == NULL) { -+ /* bork */ -+ ret = -1; -+ strncpy(stmt->error_code, stmt->dbh->error_code, 6); -+ goto clean_up; -+ } -+ -+ } else { -+ pdo_raise_impl_error(stmt->dbh, stmt, "HY105", "Expected a stream resource"); -+ ret = -1; -+ goto clean_up; -+ } -+ } else { -+ enum pdo_param_type param_type = param->param_type; -+ zend_string *buf = NULL; -+ -+ /* assume all types are nullable */ -+ if (Z_TYPE_P(parameter) == IS_NULL) { -+ param_type = PDO_PARAM_NULL; -+ } -+ -+ switch (param_type) { -+ case PDO_PARAM_BOOL: -+ plc->quoted = zend_is_true(parameter) ? ZSTR_CHAR('1') : ZSTR_CHAR('0'); -+ break; -+ -+ case PDO_PARAM_INT: -+ plc->quoted = zend_long_to_str(zval_get_long(parameter)); -+ break; -+ -+ case PDO_PARAM_NULL: -+ plc->quoted = ZSTR_KNOWN(ZEND_STR_NULL); -+ break; -+ -+ default: { -+ buf = zval_try_get_string(parameter); -+ /* parameter does not have a string representation, buf == NULL */ -+ if (EG(exception)) { -+ /* bork */ -+ ret = -1; -+ strncpy(stmt->error_code, stmt->dbh->error_code, 6); -+ goto clean_up; -+ } -+ -+ plc->quoted = stmt->dbh->methods->quoter(stmt->dbh, buf, param_type); -+ } -+ } -+ -+ if (buf) { -+ zend_string_release_ex(buf, 0); -+ } -+ } -+ } else { -+ zval *parameter; -+ if (Z_ISREF(param->parameter)) { -+ parameter = Z_REFVAL(param->parameter); -+ } else { -+ parameter = ¶m->parameter; -+ } -+ plc->quoted = zend_string_copy(Z_STR_P(parameter)); -+ } -+ newbuffer_len += ZSTR_LEN(plc->quoted); -+ } -+ -+rewrite: -+ /* allocate output buffer */ -+ *outquery = zend_string_alloc(newbuffer_len, 0); -+ newbuffer = ZSTR_VAL(*outquery); -+ -+ /* and build the query */ -+ const char *ptr = ZSTR_VAL(inquery); -+ plc = placeholders; -+ -+ do { -+ t = plc->pos - ptr; -+ if (t) { -+ memcpy(newbuffer, ptr, t); -+ newbuffer += t; -+ } -+ if (plc->quoted) { -+ memcpy(newbuffer, ZSTR_VAL(plc->quoted), ZSTR_LEN(plc->quoted)); -+ newbuffer += ZSTR_LEN(plc->quoted); -+ } else { -+ memcpy(newbuffer, plc->pos, plc->len); -+ newbuffer += plc->len; -+ } -+ ptr = plc->pos + plc->len; -+ -+ plc = plc->next; -+ } while (plc); -+ -+ t = ZSTR_VAL(inquery) + ZSTR_LEN(inquery) - ptr; -+ if (t) { -+ memcpy(newbuffer, ptr, t); -+ newbuffer += t; -+ } -+ *newbuffer = '\0'; -+ ZSTR_LEN(*outquery) = newbuffer - ZSTR_VAL(*outquery); -+ -+ ret = 1; -+ goto clean_up; -+ -+ } else if (query_type == PDO_PLACEHOLDER_POSITIONAL) { -+ /* rewrite ? to :pdoX */ -+ const char *tmpl = stmt->named_rewrite_template ? stmt->named_rewrite_template : ":pdo%d"; -+ int bind_no = 1; -+ -+ newbuffer_len = ZSTR_LEN(inquery); -+ -+ if (stmt->bound_param_map == NULL) { -+ ALLOC_HASHTABLE(stmt->bound_param_map); -+ zend_hash_init(stmt->bound_param_map, 13, NULL, free_param_name, 0); -+ } -+ -+ for (plc = placeholders; plc; plc = plc->next) { -+ int skip_map = 0; -+ zend_string *p; -+ zend_string *idxbuf; -+ -+ if (plc->bindno == PDO_PARSER_BINDNO_ESCAPED_CHAR) { -+ continue; -+ } -+ -+ zend_string *name = zend_string_init(plc->pos, plc->len, 0); -+ -+ /* check if bound parameter is already available */ -+ if (zend_string_equals_literal(name, "?") || (p = zend_hash_find_ptr(stmt->bound_param_map, name)) == NULL) { -+ idxbuf = zend_strpprintf(0, tmpl, bind_no++); -+ } else { -+ idxbuf = zend_string_copy(p); -+ skip_map = 1; -+ } -+ -+ plc->quoted = idxbuf; -+ newbuffer_len += ZSTR_LEN(plc->quoted); -+ -+ if (!skip_map && stmt->named_rewrite_template) { -+ /* create a mapping */ -+ zend_hash_update_ptr(stmt->bound_param_map, name, zend_string_copy(plc->quoted)); -+ } -+ -+ /* map number to name */ -+ zend_hash_index_update_ptr(stmt->bound_param_map, plc->bindno, zend_string_copy(plc->quoted)); -+ -+ zend_string_release(name); -+ } -+ -+ goto rewrite; -+ -+ } else { -+ /* rewrite :name to ? */ -+ -+ newbuffer_len = ZSTR_LEN(inquery); -+ -+ if (stmt->bound_param_map == NULL) { -+ ALLOC_HASHTABLE(stmt->bound_param_map); -+ zend_hash_init(stmt->bound_param_map, 13, NULL, free_param_name, 0); -+ } -+ -+ for (plc = placeholders; plc; plc = plc->next) { -+ zend_string *name = zend_string_init(plc->pos, plc->len, 0); -+ zend_hash_index_update_ptr(stmt->bound_param_map, plc->bindno, name); -+ plc->quoted = ZSTR_CHAR('?'); -+ newbuffer_len -= plc->len - 1; -+ } -+ -+ goto rewrite; -+ } -+ -+clean_up: -+ -+ while (placeholders) { -+ plc = placeholders; -+ placeholders = plc->next; -+ if (plc->quoted) { -+ zend_string_release_ex(plc->quoted, 0); -+ } -+ efree(plc); -+ } -+ -+ return ret; -+} diff --git a/databases/php85-pdo_mysql/files/patch-mysql__sql__parser.c b/databases/php85-pdo_mysql/files/patch-mysql__sql__parser.c deleted file mode 100644 index 9a6c3b11bb6e..000000000000 --- a/databases/php85-pdo_mysql/files/patch-mysql__sql__parser.c +++ /dev/null @@ -1,398 +0,0 @@ ---- mysql_sql_parser.c.orig 2025-07-02 13:18:02 UTC -+++ mysql_sql_parser.c -@@ -0,0 +1,395 @@ -+/* Generated by re2c 3.1 */ -+/* -+ +----------------------------------------------------------------------+ -+ | Copyright (c) The PHP Group | -+ +----------------------------------------------------------------------+ -+ | This source file is subject to version 3.01 of the PHP license, | -+ | that is bundled with this package in the file LICENSE, and is | -+ | available through the world-wide-web at the following url: | -+ | https://www.php.net/license/3_01.txt | -+ | If you did not receive a copy of the PHP license and are unable to | -+ | obtain it through the world-wide-web, please send a note to | -+ | license@php.net so we can mail you a copy immediately. | -+ +----------------------------------------------------------------------+ -+ | Author: Matteo Beccati <mbeccati@php.net> | -+ +----------------------------------------------------------------------+ -+*/ -+ -+ -+#include "php.h" -+#include "ext/pdo/php_pdo_driver.h" -+#include "ext/pdo/pdo_sql_parser.h" -+ -+int pdo_mysql_scanner(pdo_scanner_t *s) -+{ -+ const char *cursor = s->cur; -+ -+ s->tok = cursor; -+ -+ -+ -+{ -+ YYCTYPE yych; -+ unsigned int yyaccept = 0; -+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '"': goto yy4; -+ case '#': goto yy6; -+ case '\'': goto yy7; -+ case '-': goto yy8; -+ case '/': goto yy9; -+ case ':': goto yy10; -+ case '?': goto yy11; -+ case '`': goto yy13; -+ default: goto yy2; -+ } -+yy1: -+ YYCURSOR = YYMARKER; -+ switch (yyaccept) { -+ case 0: goto yy5; -+ case 1: goto yy17; -+ case 2: goto yy24; -+ default: goto yy36; -+ } -+yy2: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: -+ case '"': -+ case '#': -+ case '\'': -+ case '-': -+ case '/': -+ case ':': -+ case '?': -+ case '`': goto yy3; -+ default: goto yy2; -+ } -+yy3: -+ { RET(PDO_PARSER_TEXT); } -+yy4: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych >= 0x01) goto yy15; -+yy5: -+ { SKIP_ONE(PDO_PARSER_TEXT); } -+yy6: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '\n': goto yy5; -+ default: goto yy19; -+ } -+yy7: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x00) goto yy5; -+ goto yy22; -+yy8: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ switch (yych) { -+ case '-': goto yy26; -+ default: goto yy5; -+ } -+yy9: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '*': goto yy27; -+ default: goto yy5; -+ } -+yy10: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '0': -+ case '1': -+ case '2': -+ case '3': -+ case '4': -+ case '5': -+ case '6': -+ case '7': -+ case '8': -+ case '9': -+ case 'A': -+ case 'B': -+ case 'C': -+ case 'D': -+ case 'E': -+ case 'F': -+ case 'G': -+ case 'H': -+ case 'I': -+ case 'J': -+ case 'K': -+ case 'L': -+ case 'M': -+ case 'N': -+ case 'O': -+ case 'P': -+ case 'Q': -+ case 'R': -+ case 'S': -+ case 'T': -+ case 'U': -+ case 'V': -+ case 'W': -+ case 'X': -+ case 'Y': -+ case 'Z': -+ case '_': -+ case 'a': -+ case 'b': -+ case 'c': -+ case 'd': -+ case 'e': -+ case 'f': -+ case 'g': -+ case 'h': -+ case 'i': -+ case 'j': -+ case 'k': -+ case 'l': -+ case 'm': -+ case 'n': -+ case 'o': -+ case 'p': -+ case 'q': -+ case 'r': -+ case 's': -+ case 't': -+ case 'u': -+ case 'v': -+ case 'w': -+ case 'x': -+ case 'y': -+ case 'z': goto yy28; -+ case ':': goto yy30; -+ default: goto yy5; -+ } -+yy11: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '?': goto yy32; -+ default: goto yy12; -+ } -+yy12: -+ { RET(PDO_PARSER_BIND_POS); } -+yy13: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x00) goto yy5; -+ goto yy34; -+yy14: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+yy15: -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '"': goto yy16; -+ case '\\': goto yy18; -+ default: goto yy14; -+ } -+yy16: -+ yyaccept = 1; -+ YYMARKER = ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '"': goto yy14; -+ default: goto yy17; -+ } -+yy17: -+ { RET(PDO_PARSER_TEXT); } -+yy18: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ if (yych <= 0x00) goto yy1; -+ goto yy14; -+yy19: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '\n': goto yy20; -+ default: goto yy19; -+ } -+yy20: -+ { RET(PDO_PARSER_TEXT); } -+yy21: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+yy22: -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '\'': goto yy23; -+ case '\\': goto yy25; -+ default: goto yy21; -+ } -+yy23: -+ yyaccept = 2; -+ YYMARKER = ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '\'': goto yy21; -+ default: goto yy24; -+ } -+yy24: -+ { RET(PDO_PARSER_TEXT); } -+yy25: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ if (yych <= 0x00) goto yy1; -+ goto yy21; -+yy26: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '\t': -+ case '\v': -+ case '\f': -+ case '\r': -+ case ' ': goto yy19; -+ default: goto yy1; -+ } -+yy27: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '*': goto yy37; -+ default: goto yy27; -+ } -+yy28: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '0': -+ case '1': -+ case '2': -+ case '3': -+ case '4': -+ case '5': -+ case '6': -+ case '7': -+ case '8': -+ case '9': -+ case 'A': -+ case 'B': -+ case 'C': -+ case 'D': -+ case 'E': -+ case 'F': -+ case 'G': -+ case 'H': -+ case 'I': -+ case 'J': -+ case 'K': -+ case 'L': -+ case 'M': -+ case 'N': -+ case 'O': -+ case 'P': -+ case 'Q': -+ case 'R': -+ case 'S': -+ case 'T': -+ case 'U': -+ case 'V': -+ case 'W': -+ case 'X': -+ case 'Y': -+ case 'Z': -+ case '_': -+ case 'a': -+ case 'b': -+ case 'c': -+ case 'd': -+ case 'e': -+ case 'f': -+ case 'g': -+ case 'h': -+ case 'i': -+ case 'j': -+ case 'k': -+ case 'l': -+ case 'm': -+ case 'n': -+ case 'o': -+ case 'p': -+ case 'q': -+ case 'r': -+ case 's': -+ case 't': -+ case 'u': -+ case 'v': -+ case 'w': -+ case 'x': -+ case 'y': -+ case 'z': goto yy28; -+ default: goto yy29; -+ } -+yy29: -+ { RET(PDO_PARSER_BIND); } -+yy30: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case ':': goto yy30; -+ default: goto yy31; -+ } -+yy31: -+ { RET(PDO_PARSER_TEXT); } -+yy32: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '?': goto yy32; -+ default: goto yy31; -+ } -+yy33: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+yy34: -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '`': goto yy35; -+ default: goto yy33; -+ } -+yy35: -+ yyaccept = 3; -+ YYMARKER = ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '`': goto yy33; -+ default: goto yy36; -+ } -+yy36: -+ { RET(PDO_PARSER_TEXT); } -+yy37: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '*': goto yy37; -+ case '/': goto yy38; -+ default: goto yy27; -+ } -+yy38: -+ ++YYCURSOR; -+ goto yy20; -+} -+ -+} diff --git a/databases/php85-pdo_pgsql/files/patch-pgsql__sql__parser.c b/databases/php85-pdo_pgsql/files/patch-pgsql__sql__parser.c deleted file mode 100644 index e2f535ec545e..000000000000 --- a/databases/php85-pdo_pgsql/files/patch-pgsql__sql__parser.c +++ /dev/null @@ -1,528 +0,0 @@ ---- pgsql_sql_parser.c.orig 2025-07-02 13:28:41 UTC -+++ pgsql_sql_parser.c -@@ -0,0 +1,525 @@ -+/* Generated by re2c 3.1 */ -+/* -+ +----------------------------------------------------------------------+ -+ | Copyright (c) The PHP Group | -+ +----------------------------------------------------------------------+ -+ | This source file is subject to version 3.01 of the PHP license, | -+ | that is bundled with this package in the file LICENSE, and is | -+ | available through the world-wide-web at the following url: | -+ | https://www.php.net/license/3_01.txt | -+ | If you did not receive a copy of the PHP license and are unable to | -+ | obtain it through the world-wide-web, please send a note to | -+ | license@php.net so we can mail you a copy immediately. | -+ +----------------------------------------------------------------------+ -+ | Author: Matteo Beccati <mbeccati@php.net> | -+ +----------------------------------------------------------------------+ -+*/ -+ -+ -+#include "php.h" -+#include "ext/pdo/php_pdo_driver.h" -+#include "ext/pdo/pdo_sql_parser.h" -+ -+int pdo_pgsql_scanner(pdo_scanner_t *s) -+{ -+ const char *cursor = s->cur; -+ -+ s->tok = cursor; -+ -+ -+ -+{ -+ YYCTYPE yych; -+ unsigned int yyaccept = 0; -+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '"': goto yy4; -+ case '$': goto yy6; -+ case '\'': goto yy7; -+ case '-': goto yy8; -+ case '/': goto yy9; -+ case ':': goto yy10; -+ case '?': goto yy11; -+ case 'E': -+ case 'e': goto yy13; -+ default: goto yy2; -+ } -+yy1: -+ YYCURSOR = YYMARKER; -+ switch (yyaccept) { -+ case 0: goto yy5; -+ case 1: goto yy17; -+ case 2: goto yy23; -+ default: goto yy35; -+ } -+yy2: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: -+ case '"': -+ case '$': -+ case '\'': -+ case '-': -+ case '/': -+ case ':': -+ case '?': -+ case 'E': -+ case 'e': goto yy3; -+ default: goto yy2; -+ } -+yy3: -+ { RET(PDO_PARSER_TEXT); } -+yy4: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych >= 0x01) goto yy15; -+yy5: -+ { SKIP_ONE(PDO_PARSER_TEXT); } -+yy6: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ switch (yych) { -+ case 0x00: -+ case 0x01: -+ case 0x02: -+ case 0x03: -+ case 0x04: -+ case 0x05: -+ case 0x06: -+ case 0x07: -+ case 0x08: -+ case '\t': -+ case '\n': -+ case '\v': -+ case '\f': -+ case '\r': -+ case 0x0E: -+ case 0x0F: -+ case 0x10: -+ case 0x11: -+ case 0x12: -+ case 0x13: -+ case 0x14: -+ case 0x15: -+ case 0x16: -+ case 0x17: -+ case 0x18: -+ case 0x19: -+ case 0x1A: -+ case 0x1B: -+ case 0x1C: -+ case 0x1D: -+ case 0x1E: -+ case 0x1F: -+ case ' ': -+ case '!': -+ case '"': -+ case '#': -+ case '%': -+ case '&': -+ case '\'': -+ case '(': -+ case ')': -+ case '*': -+ case '+': -+ case ',': -+ case '-': -+ case '.': -+ case '/': -+ case '0': -+ case '1': -+ case '2': -+ case '3': -+ case '4': -+ case '5': -+ case '6': -+ case '7': -+ case '8': -+ case '9': -+ case ':': -+ case ';': -+ case '<': -+ case '=': -+ case '>': -+ case '?': -+ case '@': -+ case '[': -+ case '\\': -+ case ']': -+ case '^': -+ case '`': -+ case '{': -+ case '|': -+ case '}': -+ case '~': -+ case 0x7F: goto yy5; -+ case '$': goto yy18; -+ default: goto yy19; -+ } -+yy7: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x00) goto yy5; -+ goto yy21; -+yy8: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '-': goto yy24; -+ default: goto yy5; -+ } -+yy9: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '*': goto yy26; -+ default: goto yy5; -+ } -+yy10: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '0': -+ case '1': -+ case '2': -+ case '3': -+ case '4': -+ case '5': -+ case '6': -+ case '7': -+ case '8': -+ case '9': -+ case 'A': -+ case 'B': -+ case 'C': -+ case 'D': -+ case 'E': -+ case 'F': -+ case 'G': -+ case 'H': -+ case 'I': -+ case 'J': -+ case 'K': -+ case 'L': -+ case 'M': -+ case 'N': -+ case 'O': -+ case 'P': -+ case 'Q': -+ case 'R': -+ case 'S': -+ case 'T': -+ case 'U': -+ case 'V': -+ case 'W': -+ case 'X': -+ case 'Y': -+ case 'Z': -+ case '_': -+ case 'a': -+ case 'b': -+ case 'c': -+ case 'd': -+ case 'e': -+ case 'f': -+ case 'g': -+ case 'h': -+ case 'i': -+ case 'j': -+ case 'k': -+ case 'l': -+ case 'm': -+ case 'n': -+ case 'o': -+ case 'p': -+ case 'q': -+ case 'r': -+ case 's': -+ case 't': -+ case 'u': -+ case 'v': -+ case 'w': -+ case 'x': -+ case 'y': -+ case 'z': goto yy27; -+ case ':': goto yy29; -+ default: goto yy5; -+ } -+yy11: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '?': goto yy31; -+ default: goto yy12; -+ } -+yy12: -+ { RET(PDO_PARSER_BIND_POS); } -+yy13: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ switch (yych) { -+ case '\'': goto yy32; -+ default: goto yy5; -+ } -+yy14: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+yy15: -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '"': goto yy16; -+ default: goto yy14; -+ } -+yy16: -+ yyaccept = 1; -+ YYMARKER = ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '"': goto yy14; -+ default: goto yy17; -+ } -+yy17: -+ { RET(PDO_PARSER_TEXT); } -+yy18: -+ ++YYCURSOR; -+ { RET(PDO_PARSER_CUSTOM_QUOTE); } -+yy19: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: -+ case 0x01: -+ case 0x02: -+ case 0x03: -+ case 0x04: -+ case 0x05: -+ case 0x06: -+ case 0x07: -+ case 0x08: -+ case '\t': -+ case '\n': -+ case '\v': -+ case '\f': -+ case '\r': -+ case 0x0E: -+ case 0x0F: -+ case 0x10: -+ case 0x11: -+ case 0x12: -+ case 0x13: -+ case 0x14: -+ case 0x15: -+ case 0x16: -+ case 0x17: -+ case 0x18: -+ case 0x19: -+ case 0x1A: -+ case 0x1B: -+ case 0x1C: -+ case 0x1D: -+ case 0x1E: -+ case 0x1F: -+ case ' ': -+ case '!': -+ case '"': -+ case '#': -+ case '%': -+ case '&': -+ case '\'': -+ case '(': -+ case ')': -+ case '*': -+ case '+': -+ case ',': -+ case '-': -+ case '.': -+ case '/': -+ case ':': -+ case ';': -+ case '<': -+ case '=': -+ case '>': -+ case '?': -+ case '@': -+ case '[': -+ case '\\': -+ case ']': -+ case '^': -+ case '`': -+ case '{': -+ case '|': -+ case '}': -+ case '~': -+ case 0x7F: goto yy1; -+ case '$': goto yy18; -+ default: goto yy19; -+ } -+yy20: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+yy21: -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '\'': goto yy22; -+ default: goto yy20; -+ } -+yy22: -+ yyaccept = 2; -+ YYMARKER = ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '\'': goto yy20; -+ default: goto yy23; -+ } -+yy23: -+ { RET(PDO_PARSER_TEXT); } -+yy24: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '\n': goto yy25; -+ default: goto yy24; -+ } -+yy25: -+ { RET(PDO_PARSER_TEXT); } -+yy26: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '*': goto yy33; -+ default: goto yy26; -+ } -+yy27: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '0': -+ case '1': -+ case '2': -+ case '3': -+ case '4': -+ case '5': -+ case '6': -+ case '7': -+ case '8': -+ case '9': -+ case 'A': -+ case 'B': -+ case 'C': -+ case 'D': -+ case 'E': -+ case 'F': -+ case 'G': -+ case 'H': -+ case 'I': -+ case 'J': -+ case 'K': -+ case 'L': -+ case 'M': -+ case 'N': -+ case 'O': -+ case 'P': -+ case 'Q': -+ case 'R': -+ case 'S': -+ case 'T': -+ case 'U': -+ case 'V': -+ case 'W': -+ case 'X': -+ case 'Y': -+ case 'Z': -+ case '_': -+ case 'a': -+ case 'b': -+ case 'c': -+ case 'd': -+ case 'e': -+ case 'f': -+ case 'g': -+ case 'h': -+ case 'i': -+ case 'j': -+ case 'k': -+ case 'l': -+ case 'm': -+ case 'n': -+ case 'o': -+ case 'p': -+ case 'q': -+ case 'r': -+ case 's': -+ case 't': -+ case 'u': -+ case 'v': -+ case 'w': -+ case 'x': -+ case 'y': -+ case 'z': goto yy27; -+ default: goto yy28; -+ } -+yy28: -+ { RET(PDO_PARSER_BIND); } -+yy29: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case ':': goto yy29; -+ default: goto yy30; -+ } -+yy30: -+ { RET(PDO_PARSER_TEXT); } -+yy31: -+ ++YYCURSOR; -+ { RET(PDO_PARSER_ESCAPED_QUESTION); } -+yy32: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '\'': goto yy34; -+ case '\\': goto yy36; -+ default: goto yy32; -+ } -+yy33: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '*': goto yy33; -+ case '/': goto yy37; -+ default: goto yy26; -+ } -+yy34: -+ yyaccept = 3; -+ YYMARKER = ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '\'': goto yy32; -+ default: goto yy35; -+ } -+yy35: -+ { RET(PDO_PARSER_TEXT); } -+yy36: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ if (yych <= 0x00) goto yy1; -+ goto yy32; -+yy37: -+ ++YYCURSOR; -+ goto yy25; -+} -+ -+} diff --git a/databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c b/databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c deleted file mode 100644 index 5770c5cf3f7f..000000000000 --- a/databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c +++ /dev/null @@ -1,398 +0,0 @@ ---- sqlite_sql_parser.c.orig 2025-07-02 13:27:28 UTC -+++ sqlite_sql_parser.c -@@ -0,0 +1,395 @@ -+/* Generated by re2c 3.1 */ -+/* -+ +----------------------------------------------------------------------+ -+ | Copyright (c) The PHP Group | -+ +----------------------------------------------------------------------+ -+ | This source file is subject to version 3.01 of the PHP license, | -+ | that is bundled with this package in the file LICENSE, and is | -+ | available through the world-wide-web at the following url: | -+ | https://www.php.net/license/3_01.txt | -+ | If you did not receive a copy of the PHP license and are unable to | -+ | obtain it through the world-wide-web, please send a note to | -+ | license@php.net so we can mail you a copy immediately. | -+ +----------------------------------------------------------------------+ -+ | Author: Matteo Beccati <mbeccati@php.net> | -+ +----------------------------------------------------------------------+ -+*/ -+ -+ -+#include "php.h" -+#include "ext/pdo/php_pdo_driver.h" -+#include "ext/pdo/pdo_sql_parser.h" -+ -+int pdo_sqlite_scanner(pdo_scanner_t *s) -+{ -+ const char *cursor = s->cur; -+ -+ s->tok = cursor; -+ -+ -+ -+{ -+ YYCTYPE yych; -+ unsigned int yyaccept = 0; -+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '"': goto yy4; -+ case '\'': goto yy6; -+ case '-': goto yy7; -+ case '/': goto yy8; -+ case ':': goto yy9; -+ case '?': goto yy10; -+ case '[': goto yy12; -+ case '`': goto yy13; -+ default: goto yy2; -+ } -+yy1: -+ YYCURSOR = YYMARKER; -+ switch (yyaccept) { -+ case 0: goto yy5; -+ case 1: goto yy17; -+ case 2: goto yy21; -+ case 3: goto yy33; -+ default: goto yy37; -+ } -+yy2: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: -+ case '"': -+ case '\'': -+ case '-': -+ case '/': -+ case ':': -+ case '?': -+ case '[': -+ case '`': goto yy3; -+ default: goto yy2; -+ } -+yy3: -+ { RET(PDO_PARSER_TEXT); } -+yy4: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych >= 0x01) goto yy15; -+yy5: -+ { SKIP_ONE(PDO_PARSER_TEXT); } -+yy6: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x00) goto yy5; -+ goto yy19; -+yy7: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '-': goto yy22; -+ default: goto yy5; -+ } -+yy8: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '*': goto yy24; -+ default: goto yy5; -+ } -+yy9: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '0': -+ case '1': -+ case '2': -+ case '3': -+ case '4': -+ case '5': -+ case '6': -+ case '7': -+ case '8': -+ case '9': -+ case 'A': -+ case 'B': -+ case 'C': -+ case 'D': -+ case 'E': -+ case 'F': -+ case 'G': -+ case 'H': -+ case 'I': -+ case 'J': -+ case 'K': -+ case 'L': -+ case 'M': -+ case 'N': -+ case 'O': -+ case 'P': -+ case 'Q': -+ case 'R': -+ case 'S': -+ case 'T': -+ case 'U': -+ case 'V': -+ case 'W': -+ case 'X': -+ case 'Y': -+ case 'Z': -+ case '_': -+ case 'a': -+ case 'b': -+ case 'c': -+ case 'd': -+ case 'e': -+ case 'f': -+ case 'g': -+ case 'h': -+ case 'i': -+ case 'j': -+ case 'k': -+ case 'l': -+ case 'm': -+ case 'n': -+ case 'o': -+ case 'p': -+ case 'q': -+ case 'r': -+ case 's': -+ case 't': -+ case 'u': -+ case 'v': -+ case 'w': -+ case 'x': -+ case 'y': -+ case 'z': goto yy25; -+ case ':': goto yy27; -+ default: goto yy5; -+ } -+yy10: -+ yych = *++YYCURSOR; -+ switch (yych) { -+ case '?': goto yy29; -+ default: goto yy11; -+ } -+yy11: -+ { RET(PDO_PARSER_BIND_POS); } -+yy12: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x00) goto yy5; -+ goto yy31; -+yy13: -+ yyaccept = 0; -+ yych = *(YYMARKER = ++YYCURSOR); -+ if (yych <= 0x00) goto yy5; -+ goto yy35; -+yy14: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+yy15: -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '"': goto yy16; -+ default: goto yy14; -+ } -+yy16: -+ yyaccept = 1; -+ YYMARKER = ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: goto yy17; -+ case '"': goto yy16; -+ default: goto yy14; -+ } -+yy17: -+ { RET(PDO_PARSER_TEXT); } -+yy18: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+yy19: -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '\'': goto yy20; -+ default: goto yy18; -+ } -+yy20: -+ yyaccept = 2; -+ YYMARKER = ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: goto yy21; -+ case '\'': goto yy20; -+ default: goto yy18; -+ } -+yy21: -+ { RET(PDO_PARSER_TEXT); } -+yy22: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '\n': goto yy23; -+ default: goto yy22; -+ } -+yy23: -+ { RET(PDO_PARSER_TEXT); } -+yy24: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '*': goto yy38; -+ default: goto yy24; -+ } -+yy25: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '0': -+ case '1': -+ case '2': -+ case '3': -+ case '4': -+ case '5': -+ case '6': -+ case '7': -+ case '8': -+ case '9': -+ case 'A': -+ case 'B': -+ case 'C': -+ case 'D': -+ case 'E': -+ case 'F': -+ case 'G': -+ case 'H': -+ case 'I': -+ case 'J': -+ case 'K': -+ case 'L': -+ case 'M': -+ case 'N': -+ case 'O': -+ case 'P': -+ case 'Q': -+ case 'R': -+ case 'S': -+ case 'T': -+ case 'U': -+ case 'V': -+ case 'W': -+ case 'X': -+ case 'Y': -+ case 'Z': -+ case '_': -+ case 'a': -+ case 'b': -+ case 'c': -+ case 'd': -+ case 'e': -+ case 'f': -+ case 'g': -+ case 'h': -+ case 'i': -+ case 'j': -+ case 'k': -+ case 'l': -+ case 'm': -+ case 'n': -+ case 'o': -+ case 'p': -+ case 'q': -+ case 'r': -+ case 's': -+ case 't': -+ case 'u': -+ case 'v': -+ case 'w': -+ case 'x': -+ case 'y': -+ case 'z': goto yy25; -+ default: goto yy26; -+ } -+yy26: -+ { RET(PDO_PARSER_BIND); } -+yy27: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case ':': goto yy27; -+ default: goto yy28; -+ } -+yy28: -+ { RET(PDO_PARSER_TEXT); } -+yy29: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '?': goto yy29; -+ default: goto yy28; -+ } -+yy30: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+yy31: -+ switch (yych) { -+ case 0x00: goto yy1; -+ case ']': goto yy32; -+ default: goto yy30; -+ } -+yy32: -+ yyaccept = 3; -+ YYMARKER = ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: goto yy33; -+ case ']': goto yy32; -+ default: goto yy30; -+ } -+yy33: -+ { RET(PDO_PARSER_TEXT); } -+yy34: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+yy35: -+ switch (yych) { -+ case 0x00: goto yy1; -+ case '`': goto yy36; -+ default: goto yy34; -+ } -+yy36: -+ yyaccept = 4; -+ YYMARKER = ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case 0x00: goto yy37; -+ case '`': goto yy36; -+ default: goto yy34; -+ } -+yy37: -+ { RET(PDO_PARSER_TEXT); } -+yy38: -+ ++YYCURSOR; -+ if (YYLIMIT <= YYCURSOR) YYFILL(1); -+ yych = *YYCURSOR; -+ switch (yych) { -+ case '*': goto yy38; -+ case '/': goto yy39; -+ default: goto yy24; -+ } -+yy39: -+ ++YYCURSOR; -+ goto yy23; -+} -+ -+} diff --git a/lang/php85/Makefile b/lang/php85/Makefile index a2789381c584..4cd024aca5ea 100644 --- a/lang/php85/Makefile +++ b/lang/php85/Makefile @@ -1,8 +1,8 @@ PORTNAME= php85 -DISTVERSION= 8.5.0alpha4 +DISTVERSION= 8.5.0beta1 PORTREVISION?= 0 CATEGORIES?= lang devel www -MASTER_SITES= LOCAL/bofh/lang/${PORTNAME} +MASTER_SITES= https://downloads.php.net/~edorian/ DISTNAME= php-${DISTVERSION} MAINTAINER= bofh@FreeBSD.org @@ -15,8 +15,6 @@ USES+= compiler:c11 cpe gnome localbase pkgconfig #tar:xz CPE_PRODUCT= php PHP_VER= 85 -PHP_WRKSRC= php-src-php-${DISTVERSION} -WRKSRC= ${WRKDIR}/${PHP_WRKSRC} CONFLICTS_INSTALL?= php[0-9][0-9]${PKGNAMESUFFIX} .if !defined(PKGNAMESUFFIX) @@ -204,7 +202,7 @@ PHP_MODNAME= ${PKGNAMESUFFIX:S/-//} PHP_VER= 85 IGNORE_WITH_PHP= 81 82 83 84 -EXTSUBDIR= ${PHP_WRKSRC}/ext/${PHP_MODNAME} +EXTSUBDIR= ${DISTNAME}/ext/${PHP_MODNAME} WRKSRC= ${WRKDIR}/${EXTSUBDIR} PATCHDIR= ${.CURDIR}/files PLIST= ${NONEXISTENT} @@ -324,7 +322,7 @@ CONFIGURE_ARGS+= --enable-gd \ --with-external-gd EXTRACT_AFTER_ARGS= --no-same-owner --no-same-permissions --exclude libgd \ - ${PHP_WRKSRC}/ext/gd + php-${DISTVERSION}/ext/gd OPTIONS_DEFINE= JIS WEBP X11 diff --git a/lang/php85/distinfo b/lang/php85/distinfo index a9e0d22ffb76..4c473c0e48cd 100644 --- a/lang/php85/distinfo +++ b/lang/php85/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1754375752 -SHA256 (php-8.5.0alpha4.tar.gz) = 17975c72ac7d019df1385690f82dca2052362e3182becb88ccb458063b9abb38 -SIZE (php-8.5.0alpha4.tar.gz) = 23062941 +TIMESTAMP = 1755580765 +SHA256 (php-8.5.0beta1.tar.gz) = d28f6de0744fa733db898ddcdeaa784a5e87ec1b4b4822e83529d9a76229ea61 +SIZE (php-8.5.0beta1.tar.gz) = 23797736 diff --git a/lang/php85/pkg-plist b/lang/php85/pkg-plist index 3b6491e7c801..15aebd735077 100644 --- a/lang/php85/pkg-plist +++ b/lang/php85/pkg-plist @@ -401,6 +401,7 @@ include/php/ext/libxml/php_libxml.h %%BUNDLED_PCRE%%include/php/ext/pcre/pcre2lib/pcre2_jit_neon_inc.h %%BUNDLED_PCRE%%include/php/ext/pcre/pcre2lib/pcre2_jit_simd_inc.h %%BUNDLED_PCRE%%include/php/ext/pcre/pcre2lib/pcre2_ucp.h +include/php/ext/opcache/zend_accelerator_api.h include/php/ext/pcre/php_pcre.h include/php/ext/random/php_random.h include/php/ext/random/php_random_csprng.h |