Lines Matching defs:tail
156 int tail; /* next available position index. */
173 P->tail = 0; \
183 GROW_ARRAY ((p)->contents, (p)->size, (p)->tail + (increase), \
193 memcpy ((p)->contents + (p)->tail, PA_beg, PA_size); \
194 (p)->tail += PA_size; \
203 (p)->contents[(p)->tail++] = PAC_char; \
207 #define POOL_REWIND(p) (p)->tail = 0
221 P->tail = 0; \
285 tagstack_push (struct tagstack_item **head, struct tagstack_item **tail)
290 *head = *tail = ts;
295 (*tail)->next = ts;
296 ts->prev = *tail;
297 *tail = ts;
306 tagstack_pop (struct tagstack_item **head, struct tagstack_item **tail,
312 if (ts == *tail)
317 *head = *tail = NULL;
322 *tail = ts->prev;
332 *tail = ts->prev;
348 tagstack_find (struct tagstack_item *tail, const char *tagname_begin,
352 while (tail)
354 if (len == (tail->tagname_end - tail->tagname_begin))
356 if (0 == strncasecmp (tail->tagname_begin, tagname_begin, len))
357 return tail;
359 tail = tail->prev;
454 int old_tail = pool->tail;
481 to = pool->contents + pool->tail;
500 assert (to - (pool->contents + pool->tail) <= end - beg);
502 /* Make POOL's tail point to the position following the string
504 pool->tail = to - pool->contents;
852 struct tagstack_item *tail = NULL;
923 struct tagstack_item *ts = tagstack_push (&head, &tail);
1082 pairs[nattrs].name_pool_index = pool.tail;
1085 pairs[nattrs].value_pool_index = pool.tail;
1093 if (!end_tag && tail && (tail->tagname_begin == tag_name_begin))
1095 tail->contents_begin = p+1;
1131 ts = tagstack_find (tail, tag_name_begin, tag_name_end);
1139 tagstack_pop (&head, &tail, ts);
1163 tagstack_pop (&head, &tail, head);