41 "[strinig][fake] failed to allocate normalized text space");
49 const char *source_current = str;
50 const char *source_end = str + str_len;
52 unsigned int destination_length = 0;
53 while ((char_length =
grn_charlen(ctx, source_current, source_end)) > 0) {
55 source_current, char_length,
57 memcpy(destination, source_current, char_length);
58 destination += char_length;
59 destination_length += char_length;
61 source_current += char_length;
78 "[strinig][fake] failed to allocate checks space");
83 for (i = 0; i < str_len; i++) {
85 c = (
unsigned char) str[i];
86 f = ((c >= 0xa1U && c <= 0xfeU) || c == 0x8eU ? 2 : (c == 0x8fU ? 3 : 1)
96 for (i = 0; i < str_len; i++) {
98 c = (
unsigned char) str[i];
99 f = (c >= 0x81U && ((c <= 0x9fU) || (c >= 0xe0U && c <= 0xfcU)) ? 2 : 1);
108 for (i = 0; i < str_len; i++) {
110 c = (
unsigned char) str[i];
111 f = (c & 0x80U ? (c & 0x20U ? (c & 0x10U ? 4 : 3)
122 for (i = 0; i < str_len; i++) {
139 if (!str || !str_len) {
146 "[string][open] failed to allocate memory");
152 string->original = str;
153 string->original_length_in_bytes = str_len;
154 string->normalized = NULL;
155 string->normalized_length_in_bytes = 0;
156 string->n_characters = 0;
157 string->checks = NULL;
158 string->ctypes = NULL;
159 string->encoding = encoding;
160 string->flags = flags;
163 return (
grn_obj *)grn_fake_string_open(ctx,
string);
167 if (is_normalizer_auto) {
178 if (is_normalizer_auto) {
187 grn_obj *normalizer,
int flags)
194 const char **original,
195 unsigned int *length_in_bytes)
201 if (original) { *original = string_->
original; }
202 if (length_in_bytes) {
219 flags = string_->
flags;
226 const char **normalized,
227 unsigned int *length_in_bytes,
228 unsigned int *n_characters)
234 if (normalized) { *normalized = string_->
normalized; }
235 if (length_in_bytes) {
238 if (n_characters) { *n_characters = string_->
n_characters; }
248 char *normalized,
unsigned int length_in_bytes,
249 unsigned int n_characters)
269 int16_t *checks = NULL;
296 const unsigned char *
299 unsigned char *types = NULL;