Lines Matching refs:iter

24       char *iter;
25 for (iter = buf; *iter != '\0'; iter++)
27 do_something (*iter);
32 mbui_iterator_t iter;
33 for (mbui_init (iter, buf); mbui_avail (iter); mbui_advance (iter))
35 do_something (mbui_cur_ptr (iter), mb_len (mbui_cur (iter)));
54 mbui_init (iter, startptr)
57 mbui_avail (iter)
59 the end of string is reached. In this case, mbui_cur (iter) is
62 mbui_advance (iter)
65 mbui_cur (iter)
69 mbui_cur_ptr (iter)
72 mbui_reloc (iter, ptrdiff)
80 extern void mbui_init (mbui_iterator_t iter, const char *startptr);
81 extern bool mbui_avail (mbui_iterator_t iter);
82 extern void mbui_advance (mbui_iterator_t iter);
83 extern mbchar_t mbui_cur (mbui_iterator_t iter);
84 extern const char * mbui_cur_ptr (mbui_iterator_t iter);
85 extern void mbui_reloc (mbui_iterator_t iter, ptrdiff_t ptrdiff);
129 mbuiter_multi_next (struct mbuiter_multi *iter)
131 if (iter->next_done)
133 if (iter->in_shift)
136 if (is_basic (*iter->cur.ptr))
141 iter->cur.bytes = 1;
142 iter->cur.wc = *iter->cur.ptr;
143 iter->cur.wc_valid = true;
147 assert (mbsinit (&iter->state));
148 iter->in_shift = true;
150 iter->cur.bytes = mbrtowc (&iter->cur.wc, iter->cur.ptr,
151 strnlen1 (iter->cur.ptr, MB_CUR_MAX),
152 &iter->state);
153 if (iter->cur.bytes == (size_t) -1)
156 iter->cur.bytes = 1;
157 iter->cur.wc_valid = false;
158 /* Whether to set iter->in_shift = false and reset iter->state
161 else if (iter->cur.bytes == (size_t) -2)
164 iter->cur.bytes = strlen (iter->cur.ptr);
165 iter->cur.wc_valid = false;
166 /* Whether to set iter->in_shift = false and reset iter->state
171 if (iter->cur.bytes == 0)
174 iter->cur.bytes = 1;
175 assert (*iter->cur.ptr == '\0');
176 assert (iter->cur.wc == 0);
178 iter->cur.wc_valid = true;
182 if (mbsinit (&iter->state))
183 iter->in_shift = false;
186 iter->next_done = true;
190 mbuiter_multi_reloc (struct mbuiter_multi *iter, ptrdiff_t ptrdiff)
192 iter->cur.ptr += ptrdiff;
208 #define mbui_init(iter, startptr) \
209 ((iter).cur.ptr = (startptr), \
210 (iter).in_shift = false, memset (&(iter).state, '\0', sizeof (mbstate_t)), \
211 (iter).next_done = false)
212 #define mbui_avail(iter) \
213 (mbuiter_multi_next (&(iter)), !mb_isnul ((iter).cur))
214 #define mbui_advance(iter) \
215 ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false)
218 #define mbui_cur(iter) (iter).cur
219 #define mbui_cur_ptr(iter) (iter).cur.ptr
222 #define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff)