Lines Matching refs:pattern

36 	zend_string *pattern;  member
73 zend_string_release_ex(entry->pattern, 0);
83 zend_string_release_ex(entry->pattern, 1); in browscap_entry_dtor_persistent()
95 static uint8_t browscap_compute_prefix_len(zend_string *pattern) { in browscap_compute_prefix_len() argument
97 for (i = 0; i < ZSTR_LEN(pattern); i++) { in browscap_compute_prefix_len()
98 if (is_placeholder(ZSTR_VAL(pattern)[i])) { in browscap_compute_prefix_len()
106 zend_string *pattern, size_t start_pos, in browscap_compute_contains() argument
110 for (; i < ZSTR_LEN(pattern); i++) { in browscap_compute_contains()
111 if (!is_placeholder(ZSTR_VAL(pattern)[i])) { in browscap_compute_contains()
114 if (i + 1 < ZSTR_LEN(pattern) && in browscap_compute_contains()
115 !is_placeholder(ZSTR_VAL(pattern)[i + 1])) { in browscap_compute_contains()
123 for (; i < ZSTR_LEN(pattern); i++) { in browscap_compute_contains()
124 if (is_placeholder(ZSTR_VAL(pattern)[i])) { in browscap_compute_contains()
133 static size_t browscap_compute_regex_len(zend_string *pattern) { in browscap_compute_regex_len() argument
134 size_t i, len = ZSTR_LEN(pattern); in browscap_compute_regex_len()
135 for (i = 0; i < ZSTR_LEN(pattern); i++) { in browscap_compute_regex_len()
136 switch (ZSTR_VAL(pattern)[i]) { in browscap_compute_regex_len() local
152 static zend_string *browscap_convert_pattern(zend_string *pattern, int persistent) /* {{{ */ in browscap_convert_pattern() argument
160 res = zend_string_alloc(browscap_compute_regex_len(pattern), persistent); in browscap_convert_pattern()
163 lc_pattern = do_alloca(ZSTR_LEN(pattern) + 1, use_heap); in browscap_convert_pattern()
164 zend_str_tolower_copy(lc_pattern, ZSTR_VAL(pattern), ZSTR_LEN(pattern)); in browscap_convert_pattern()
169 for (i = 0; i < ZSTR_LEN(pattern); i++, j++) { in browscap_convert_pattern()
283 ZVAL_STR(&tmp, browscap_convert_pattern(entry->pattern, 0)); in browscap_entry_to_array()
286 ZVAL_STR_COPY(&tmp, entry->pattern); in browscap_entry_to_array()
360 zend_string *pattern = Z_STR_P(arg1); in php_browscap_parser_cb() local
364 if (ZSTR_LEN(pattern) > UINT16_MAX) { in php_browscap_parser_cb()
366 "Skipping excessively long pattern of length %zd", ZSTR_LEN(pattern)); in php_browscap_parser_cb()
371 pattern = zend_new_interned_string(zend_string_copy(pattern)); in php_browscap_parser_cb()
372 if (ZSTR_IS_INTERNED(pattern)) { in php_browscap_parser_cb()
375 zend_string_release(pattern); in php_browscap_parser_cb()
381 zend_hash_update_ptr(bdata->htab, pattern, entry); in php_browscap_parser_cb()
386 ctx->current_section_name = zend_string_copy(pattern); in php_browscap_parser_cb()
388 entry->pattern = zend_string_copy(pattern); in php_browscap_parser_cb()
392 pos = entry->prefix_len = browscap_compute_prefix_len(pattern); in php_browscap_parser_cb()
394 pos = browscap_compute_contains(pattern, pos, in php_browscap_parser_cb()
569 ZSTR_VAL(entry->pattern), entry->prefix_len) != 0) { in browser_reg_compare()
574 ZSTR_ALLOCA_ALLOC(pattern_lc, ZSTR_LEN(entry->pattern), use_heap); in browser_reg_compare()
575 zend_str_tolower_copy(ZSTR_VAL(pattern_lc), ZSTR_VAL(entry->pattern), ZSTR_LEN(entry->pattern)); in browser_reg_compare()
600 regex = browscap_convert_pattern(entry->pattern, 0); in browser_reg_compare()
622 zend_string *previous_match = found_entry->pattern; in browser_reg_compare()
623 zend_string *current_match = entry->pattern; in browser_reg_compare()