54 unsigned int str_length,
65 return memcmp(str_ptr,
73 unsigned int str_length,
77 const char *current = str_ptr;
78 const char *end = str_ptr + str_length;
84 if (str_length == 0) {
88 while ((char_length =
grn_charlen_(ctx, current, end, encoding)) > 0) {
94 current += char_length;
101 unsigned int normalize_flags)
106 if (query_str == NULL) {
111 if ((num_args < 1) || (args == NULL) || (args[0] == NULL)) {
131 grn_obj *
const table = args[0];
138 if (query_buf == NULL) {
141 "[tokenizer] failed to duplicate query");
157 if (!normalized_query) {
161 "[tokenizer] failed to open normalized string");
166 query_buf[query_length] =
'\0';
168 query->
ptr = query_buf;
169 query->
length = query_length;
174 const char *normalized_string;
175 unsigned int normalized_string_length;
180 &normalized_string_length,
185 normalized_string_length,
237 const char *str_ptr,
unsigned int str_length,
250 unsigned int str_length,
253 size_t char_length = 0;
254 const char *start = str_ptr;
256 const char *end = str_ptr + str_length;
257 const char *next_start = NULL;
258 unsigned int token_length;
261 for (current = start; current < end; current += char_length) {
262 char_length =
grn_charlen_(ctx, current, end, encoding);
263 if (char_length == 0) {
268 next_start = str_ptr + (current - start + char_length);
273 token_length = current - start;
274 if (current == end) {
286 unsigned int plugin_name_length,
307 init, next, fin, 3, vars);