Lines Matching refs:pattern

38 	zend_string *pattern;  member
75 zend_string_release(entry->pattern);
85 zend_string_release(entry->pattern); in browscap_entry_dtor_persistent()
97 static uint8_t browscap_compute_prefix_len(zend_string *pattern) { in browscap_compute_prefix_len() argument
99 for (i = 0; i < ZSTR_LEN(pattern); i++) { in browscap_compute_prefix_len()
100 if (is_placeholder(ZSTR_VAL(pattern)[i])) { in browscap_compute_prefix_len()
108 zend_string *pattern, size_t start_pos, in browscap_compute_contains() argument
112 for (; i < ZSTR_LEN(pattern); i++) { in browscap_compute_contains()
113 if (!is_placeholder(ZSTR_VAL(pattern)[i])) { in browscap_compute_contains()
116 if (i + 1 < ZSTR_LEN(pattern) && in browscap_compute_contains()
117 !is_placeholder(ZSTR_VAL(pattern)[i + 1])) { in browscap_compute_contains()
125 for (; i < ZSTR_LEN(pattern); i++) { in browscap_compute_contains()
126 if (is_placeholder(ZSTR_VAL(pattern)[i])) { in browscap_compute_contains()
135 static size_t browscap_compute_regex_len(zend_string *pattern) { in browscap_compute_regex_len() argument
136 size_t i, len = ZSTR_LEN(pattern); in browscap_compute_regex_len()
137 for (i = 0; i < ZSTR_LEN(pattern); i++) { in browscap_compute_regex_len()
138 switch (ZSTR_VAL(pattern)[i]) { in browscap_compute_regex_len() local
154 static zend_string *browscap_convert_pattern(zend_string *pattern, int persistent) /* {{{ */ in browscap_convert_pattern() argument
162 res = zend_string_alloc(browscap_compute_regex_len(pattern), persistent); in browscap_convert_pattern()
165 lc_pattern = do_alloca(ZSTR_LEN(pattern) + 1, use_heap); in browscap_convert_pattern()
166 zend_str_tolower_copy(lc_pattern, ZSTR_VAL(pattern), ZSTR_LEN(pattern)); in browscap_convert_pattern()
171 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()
359 zend_string *pattern = Z_STR_P(arg1); in php_browscap_parser_cb() local
363 if (ZSTR_LEN(pattern) > UINT16_MAX) { in php_browscap_parser_cb()
365 "Skipping excessively long pattern of length %zd", ZSTR_LEN(pattern)); in php_browscap_parser_cb()
371 zend_hash_update_ptr(bdata->htab, pattern, entry); in php_browscap_parser_cb()
376 ctx->current_section_name = zend_string_copy(pattern); in php_browscap_parser_cb()
378 entry->pattern = zend_string_copy(pattern); in php_browscap_parser_cb()
382 pos = entry->prefix_len = browscap_compute_prefix_len(pattern); in php_browscap_parser_cb()
384 pos = browscap_compute_contains(pattern, pos, in php_browscap_parser_cb()
571 ZSTR_VAL(entry->pattern), entry->prefix_len) != 0) { in browser_reg_compare()
576 ZSTR_ALLOCA_ALLOC(pattern_lc, ZSTR_LEN(entry->pattern), use_heap); in browser_reg_compare()
577 zend_str_tolower_copy(ZSTR_VAL(pattern_lc), ZSTR_VAL(entry->pattern), ZSTR_LEN(entry->pattern)); in browser_reg_compare()
602 regex = browscap_convert_pattern(entry->pattern, 0); in browser_reg_compare()
616 zend_string *previous_match = found_entry->pattern; in browser_reg_compare()
617 zend_string *current_match = entry->pattern; in browser_reg_compare()