Lines Matching refs:api

34     UCharIterator api;
48 * api.start: first valid character & state in the arrays
49 * api.index: current position
50 * api.limit: one past the last valid character in chars[], but states[limit] is valid
55 /* the current iter->getState(), saved to avoid unnecessary setState() calls; may not correspond to api->index! */
69 /* do not pass api so that the compiler knows it's an alias pointer to uni itself */
70 UCharIterator *api=&uni->api;
74 api->start=api->index=api->limit=0;
79 api->start=api->index=api->limit=uni->capacity;
84 api->start=api->index=api->limit=uni->capacity/2;
91 /* do not pass api so that the compiler knows it's an alias pointer to uni itself */
92 UCharIterator *api=&uni->api;
106 start=api->start;
107 limit=api->limit;
117 api->start=start+delta;
118 api->index+=delta;
119 api->limit=limit+delta;
133 moveContentsTowardStart(UCharIterator *api, UChar chars[], uint32_t states[], int32_t delta) {
137 limit=api->limit;
139 if(srcIndex>api->start) {
147 api->start=destIndex=0;
156 api->limit=destIndex;
160 moveContentsTowardEnd(UCharIterator *api, UChar chars[], uint32_t states[], int32_t delta) {
164 start=api->start;
165 destIndex=((UNormIterator *)api)->capacity;
167 if(srcIndex<api->limit) {
175 api->limit=destIndex;
185 api->start=destIndex;
191 /* do not pass api so that the compiler knows it's an alias pointer to uni itself */
192 UCharIterator *api=&uni->api;
198 limit=api->limit;
203 moveContentsTowardStart(api, uni->chars, uni->states, room);
204 api->index=limit=api->limit;
224 api->start=api->index=api->limit=limit=0;
233 limit=api->limit;
254 api->limit=limit;
261 /* do not pass api so that the compiler knows it's an alias pointer to uni itself */
262 UCharIterator *api=&uni->api;
268 start=api->start;
273 moveContentsTowardEnd(api, uni->chars, uni->states, room);
274 api->index=start=api->start;
294 api->start=api->index=api->limit=start=capacity;
303 start=api->start;
325 api->start=start;
332 unormIteratorGetIndex(UCharIterator *api, UCharIteratorOrigin origin) {
349 unormIteratorMove(UCharIterator *api, int32_t delta, UCharIteratorOrigin origin) {
350 UNormIterator *uni=(UNormIterator *)api;
360 api->start=api->index=api->limit=0;
361 uni->states[api->limit]=uni->state=uiter_getState(iter);
366 api->index=api->start;
376 api->start=api->index=api->limit=uni->capacity;
377 uni->states[api->limit]=uni->state=uiter_getState(iter);
382 api->index=api->limit;
395 pos=api->index+delta; /* requested position */
396 delta=pos-api->limit; /* remainder beyond buffered text */
398 api->index=pos; /* position reached */
403 api->index=api->limit;
411 pos=api->index+delta; /* requested position */
412 delta=pos-api->start; /* remainder beyond buffered text */
414 api->index=pos; /* position reached */
419 api->index=api->start;
426 if(api->index==api->start && !uni->hasPrevious) {
434 unormIteratorHasNext(UCharIterator *api) {
435 return api->index<api->limit || ((UNormIterator *)api)->hasNext;
439 unormIteratorHasPrevious(UCharIterator *api) {
440 return api->index>api->start || ((UNormIterator *)api)->hasPrevious;
444 unormIteratorCurrent(UCharIterator *api) {
445 UNormIterator *uni=(UNormIterator *)api;
447 if( api->index<api->limit ||
450 return uni->chars[api->index];
457 unormIteratorNext(UCharIterator *api) {
458 UNormIterator *uni=(UNormIterator *)api;
460 if( api->index<api->limit ||
463 return uni->chars[api->index++];
470 unormIteratorPrevious(UCharIterator *api) {
471 UNormIterator *uni=(UNormIterator *)api;
473 if( api->index>api->start ||
476 return uni->chars[--api->index];
483 unormIteratorGetState(const UCharIterator *api) {
484 /* not uni->state because that may not be at api->index */
485 return ((UNormIterator *)api)->states[api->index];
489 unormIteratorSetState(UCharIterator *api, uint32_t state, UErrorCode *pErrorCode) {
492 } else if(api==NULL) {
497 UNormIterator *uni=(UNormIterator *)api;
498 UCharIterator *iter=((UNormIterator *)api)->iter;
510 if(state==uni->states[api->index]) {
512 } else if(state==uni->states[api->limit]) {
513 api->index=api->limit;
519 for(i=api->start; i<api->limit; ++i) {
521 api->index=i;
528 initIndexes((UNormIterator *)api, iter);
529 uni->states[api->limit]=state;
597 /* set a no-op iterator into the api */
598 uiter_setString(&uni->api, NULL, 0);
628 /* set a no-op iterator into the api */
629 uiter_setString(&uni->api, NULL, 0);
635 uprv_memcpy(&uni->api, &unormIterator, sizeof(unormIterator));
641 uni->states[uni->api.limit]=uni->state=uiter_getState(iter);
643 return &uni->api;