• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/ICU-531.30/icuSources/samples/uciter8/

Lines Matching refs:index

91  *   start          current UTF-8 index
92 * index current UTF-16 index; may be -1="unknown" after setState()
99 * point to after the corresponding byte sequence. The UTF-16 index will be
100 * one less than what it would otherwise be corresponding to the UTF-8 index.
116 if(iter->index<0) {
117 /* the current UTF-16 index is unknown after setState(), count from the beginning */
120 int32_t i, limit, index;
123 i=index=0;
124 limit=iter->start; /* count up to the UTF-8 index */
128 ++index;
130 index+=2;
136 iter->length=index; /* in case it was <0 or wrong */
139 --index; /* we are in the middle of a supplementary code point */
141 iter->index=index;
143 return iter->index;
152 if(iter->index<0) {
154 * the current UTF-16 index is unknown after setState(),
160 /* count from the beginning to the current index */
170 /* assume i==limit==iter->start, set the UTF-16 index */
172 iter->index= iter->reservedField!=0 ? length-1 : length;
175 length=iter->index;
181 /* count from the current index to the end */
205 int32_t pos; /* requested UTF-16 index */
206 int32_t i; /* UTF-8 index */
209 /* calculate the requested UTF-16 index */
215 /* iter->index<0 (unknown) is possible */
218 if(iter->index>=0) {
219 pos=iter->index+delta;
222 /* the current UTF-16 index is unknown after setState(), use only delta */
234 iter->index=-1;
240 /* the current UTF-16 index is unknown, use only delta */
253 iter->index=iter->start=iter->reservedField=0;
256 iter->index=iter->length;
259 return iter->index;
263 if(iter->index<0 || pos<iter->index/2) {
264 /* go forward from the start instead of backward from the current index */
265 iter->index=iter->start=iter->reservedField=0;
266 } else if(iter->length>=0 && (iter->length-pos)<(pos-iter->index)) {
268 * if we have the UTF-16 index and length and the new position is
269 * closer to the end than the current index,
270 * then go backward from the end instead of forward from the current index
272 iter->index=iter->length;
277 delta=pos-iter->index;
279 return iter->index; /* nothing to do */
282 /* move relative to unknown UTF-16 index */
287 iter->index=iter->start=iter->reservedField=0;
291 iter->index=iter->length; /* may or may not be <0 (unknown) */
294 return iter->index>=0 ? iter->index : UITER_UNKNOWN_INDEX;
302 pos=iter->index; /* could be <0 (unknown) */
328 if(iter->length<0 && iter->index>=0) {
330 } else if(iter->index<0 && iter->length>=0) {
331 iter->index= iter->reservedField==0 ? iter->length : iter->length-1;
361 if(iter->index>=0) {
362 return iter->index=pos;
364 /* we started with index<0 (unknown) so pos is bogus */
366 return iter->index=i; /* reached the beginning */
368 /* we still don't know the UTF-16 index */
408 int32_t index;
413 if((index=iter->index)>=0) {
414 iter->index=index+1;
422 if((index=iter->index)>=0) {
423 iter->index=++index;
425 iter->length= c<=0xffff ? index : index+1;
428 iter->index= c<=0xffff ? iter->length : iter->length-1;
445 int32_t index;
451 if((index=iter->index)>0) {
452 iter->index=index-1;
460 if((index=iter->index)>0) {
461 iter->index=index-1;
463 iter->index= c<=0xffff ? iter->start : iter->start+1;
497 int32_t index=(int32_t)(state>>1); /* UTF-8 index */
498 state&=1; /* 1 if in surrogate pair, must be index>=4 */
500 if((state==0 ? index<0 : index<4) || iter->limit<index) {
503 iter->start=index; /* restore UTF-8 byte index */
504 if(index<=1) {
505 iter->index=index;
507 iter->index=-1; /* unknown UTF-16 index */
512 /* verified index>=4 above */
514 L8_PREV((const uint8_t *)iter->context, 0, index, c);