diff options
author | Anatol Belski <ab@php.net> | 2017-10-12 12:48:36 +0200 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2017-11-13 19:37:38 +0100 |
commit | a5bc5aed71f7a15f14f33bb31b8e17bf5f327e2d (patch) | |
tree | fe551e3a9eb951119e0b795f180e11e47a3f4c21 /ext/pcre/php_pcre.h | |
parent | fd463cfbad66c962d25647211602c69303369206 (diff) | |
download | php-git-a5bc5aed71f7a15f14f33bb31b8e17bf5f327e2d.tar.gz |
Patch core for PCRE2 support
RFC https://wiki.php.net/rfc/pcre2-migration
Diffstat (limited to 'ext/pcre/php_pcre.h')
-rw-r--r-- | ext/pcre/php_pcre.h | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/ext/pcre/php_pcre.h b/ext/pcre/php_pcre.h index 59221c04f3..afc03074a8 100644 --- a/ext/pcre/php_pcre.h +++ b/ext/pcre/php_pcre.h @@ -24,18 +24,18 @@ #if HAVE_PCRE || HAVE_BUNDLED_PCRE #if HAVE_BUNDLED_PCRE -#include "pcrelib/pcre.h" +#include "pcre2lib/pcre2.h" #else -#include "pcre.h" +#include "pcre2.h" #endif #if HAVE_LOCALE_H #include <locale.h> #endif -PHPAPI zend_string *php_pcre_replace(zend_string *regex, zend_string *subject_str, char *subject, int subject_len, zend_string *replace_str, int limit, int *replace_count); -PHPAPI pcre* pcre_get_compiled_regex(zend_string *regex, pcre_extra **extra, int *options); -PHPAPI pcre* pcre_get_compiled_regex_ex(zend_string *regex, pcre_extra **extra, int *preg_options, int *coptions); +PHPAPI zend_string *php_pcre_replace(zend_string *regex, zend_string *subject_str, char *subject, size_t subject_len, zend_string *replace_str, size_t limit, size_t *replace_count); +PHPAPI pcre2_code* pcre_get_compiled_regex(zend_string *regex, uint32_t *capture_count, uint32_t *options); +PHPAPI pcre2_code* pcre_get_compiled_regex_ex(zend_string *regex, uint32_t *capture_count, uint32_t *preg_options, uint32_t *coptions); extern zend_module_entry pcre_module_entry; #define pcre_module_ptr &pcre_module_entry @@ -43,26 +43,15 @@ extern zend_module_entry pcre_module_entry; #include "php_version.h" #define PHP_PCRE_VERSION PHP_VERSION -typedef struct { - pcre *re; - pcre_extra *extra; - int preg_options; - int capture_count; - int name_count; -#if HAVE_SETLOCALE - unsigned const char *tables; -#endif - int compile_options; - int refcount; -} pcre_cache_entry; +typedef struct _pcre_cache_entry pcre_cache_entry; PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache(zend_string *regex); -PHPAPI void php_pcre_match_impl( pcre_cache_entry *pce, char *subject, int subject_len, zval *return_value, - zval *subpats, int global, int use_flags, zend_long flags, zend_long start_offset); +PHPAPI void php_pcre_match_impl( pcre_cache_entry *pce, char *subject, size_t subject_len, zval *return_value, + zval *subpats, int global, int use_flags, zend_long flags, zend_off_t start_offset); -PHPAPI zend_string *php_pcre_replace_impl(pcre_cache_entry *pce, zend_string *subject_str, char *subject, int subject_len, zend_string *replace_str, - int limit, int *replace_count); +PHPAPI zend_string *php_pcre_replace_impl(pcre_cache_entry *pce, zend_string *subject_str, char *subject, size_t subject_len, zend_string *replace_str, + size_t limit, size_t *replace_count); PHPAPI void php_pcre_split_impl( pcre_cache_entry *pce, zend_string *subject_str, zval *return_value, zend_long limit_val, zend_long flags); @@ -70,6 +59,16 @@ PHPAPI void php_pcre_split_impl( pcre_cache_entry *pce, zend_string *subject_s PHPAPI void php_pcre_grep_impl( pcre_cache_entry *pce, zval *input, zval *return_value, zend_long flags); +PHPAPI pcre2_match_context *php_pcre_mctx(void); +PHPAPI pcre2_general_context *php_pcre_gctx(void); +PHPAPI pcre2_compile_context *php_pcre_cctx(void); +PHPAPI void php_pcre_pce_incref(pcre_cache_entry *); +PHPAPI void php_pcre_pce_decref(pcre_cache_entry *); +PHPAPI pcre2_code *php_pcre_pce_re(pcre_cache_entry *); +/* capture_count can be ignored, re is required. */ +PHPAPI pcre2_match_data *php_pcre_create_match_data(uint32_t, pcre2_code *); +PHPAPI void php_pcre_free_match_data(pcre2_match_data *); + ZEND_BEGIN_MODULE_GLOBALS(pcre) HashTable pcre_cache; zend_long backtrack_limit; |