Lines Matching refs:iter

132 mbuiter_multi_next (struct mbuiter_multi *iter)  in mbuiter_multi_next()  argument
134 if (iter->next_done) in mbuiter_multi_next()
136 if (iter->in_shift) in mbuiter_multi_next()
139 if (is_basic (*iter->cur.ptr)) in mbuiter_multi_next()
144 iter->cur.bytes = 1; in mbuiter_multi_next()
145 iter->cur.wc = *iter->cur.ptr; in mbuiter_multi_next()
146 iter->cur.wc_valid = true; in mbuiter_multi_next()
150 assert (mbsinit (&iter->state)); in mbuiter_multi_next()
151 iter->in_shift = true; in mbuiter_multi_next()
153 iter->cur.bytes = mbrtowc (&iter->cur.wc, iter->cur.ptr, in mbuiter_multi_next()
154 strnlen1 (iter->cur.ptr, MB_CUR_MAX), in mbuiter_multi_next()
155 &iter->state); in mbuiter_multi_next()
156 if (iter->cur.bytes == (size_t) -1) in mbuiter_multi_next()
159 iter->cur.bytes = 1; in mbuiter_multi_next()
160 iter->cur.wc_valid = false; in mbuiter_multi_next()
164 else if (iter->cur.bytes == (size_t) -2) in mbuiter_multi_next()
167 iter->cur.bytes = strlen (iter->cur.ptr); in mbuiter_multi_next()
168 iter->cur.wc_valid = false; in mbuiter_multi_next()
174 if (iter->cur.bytes == 0) in mbuiter_multi_next()
177 iter->cur.bytes = 1; in mbuiter_multi_next()
178 assert (*iter->cur.ptr == '\0'); in mbuiter_multi_next()
179 assert (iter->cur.wc == 0); in mbuiter_multi_next()
181 iter->cur.wc_valid = true; in mbuiter_multi_next()
185 if (mbsinit (&iter->state)) in mbuiter_multi_next()
186 iter->in_shift = false; in mbuiter_multi_next()
189 iter->next_done = true; in mbuiter_multi_next()
193 mbuiter_multi_reloc (struct mbuiter_multi *iter, ptrdiff_t ptrdiff) in mbuiter_multi_reloc() argument
195 iter->cur.ptr += ptrdiff; in mbuiter_multi_reloc()
211 #define mbui_init(iter, startptr) \ argument
212 ((iter).cur.ptr = (startptr), \
213 (iter).in_shift = false, memset (&(iter).state, '\0', sizeof (mbstate_t)), \
214 (iter).next_done = false)
215 #define mbui_avail(iter) \ argument
216 (mbuiter_multi_next (&(iter)), !mb_isnul ((iter).cur))
217 #define mbui_advance(iter) \ argument
218 ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false)
221 #define mbui_cur(iter) (iter).cur argument
222 #define mbui_cur_ptr(iter) (iter).cur.ptr argument
225 #define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff) argument