Lines Matching refs:iter

64 g_mime_part_iter_push (GMimePartIter *iter, GMimeObject *object, int index)  in g_mime_part_iter_push()  argument
69 g_array_append_val (iter->path, index); in g_mime_part_iter_push()
73 node->parent = iter->parent; in g_mime_part_iter_push()
75 iter->parent = node; in g_mime_part_iter_push()
79 g_mime_part_iter_pop (GMimePartIter *iter) in g_mime_part_iter_pop() argument
83 if (!iter->parent || !iter->parent->parent) in g_mime_part_iter_pop()
86 if (iter->parent->indexed) { in g_mime_part_iter_pop()
87 iter->index = g_array_index (iter->path, int, iter->path->len - 1); in g_mime_part_iter_pop()
88 g_array_set_size (iter->path, iter->path->len - 1); in g_mime_part_iter_pop()
91 iter->current = iter->parent->object; in g_mime_part_iter_pop()
93 node = iter->parent; in g_mime_part_iter_pop()
94 iter->parent = node->parent; in g_mime_part_iter_pop()
113 GMimePartIter *iter; in g_mime_part_iter_new() local
117 iter = g_slice_new (GMimePartIter); in g_mime_part_iter_new()
118 iter->path = g_array_new (FALSE, FALSE, sizeof (int)); in g_mime_part_iter_new()
119 iter->toplevel = toplevel; in g_mime_part_iter_new()
121 iter->parent = NULL; in g_mime_part_iter_new()
123 g_mime_part_iter_reset (iter); in g_mime_part_iter_new()
125 return iter; in g_mime_part_iter_new()
136 g_mime_part_iter_free (GMimePartIter *iter) in g_mime_part_iter_free() argument
138 if (iter == NULL) in g_mime_part_iter_free()
141 g_object_unref (iter->toplevel); in g_mime_part_iter_free()
142 g_array_free (iter->path, TRUE); in g_mime_part_iter_free()
143 if (iter->parent != NULL) in g_mime_part_iter_free()
144 g_slice_free_chain (GMimeObjectStack, iter->parent, parent); in g_mime_part_iter_free()
145 g_slice_free (GMimePartIter, iter); in g_mime_part_iter_free()
156 g_mime_part_iter_reset (GMimePartIter *iter) in g_mime_part_iter_reset() argument
158 g_return_if_fail (iter != NULL); in g_mime_part_iter_reset()
160 if (GMIME_IS_MESSAGE (iter->toplevel)) in g_mime_part_iter_reset()
161 iter->current = g_mime_message_get_mime_part ((GMimeMessage *) iter->toplevel); in g_mime_part_iter_reset()
163 iter->current = iter->toplevel; in g_mime_part_iter_reset()
165 g_slice_free_chain (GMimeObjectStack, iter->parent, parent); in g_mime_part_iter_reset()
166 g_array_set_size (iter->path, 0); in g_mime_part_iter_reset()
167 iter->parent = NULL; in g_mime_part_iter_reset()
168 iter->index = -1; in g_mime_part_iter_reset()
170 if (!GMIME_IS_PART (iter->current)) { in g_mime_part_iter_reset()
172 g_mime_part_iter_next (iter); in g_mime_part_iter_reset()
189 g_mime_part_iter_jump_to (GMimePartIter *iter, const char *path) in g_mime_part_iter_jump_to() argument
200 g_return_val_if_fail (iter != NULL, FALSE); in g_mime_part_iter_jump_to()
205 g_mime_part_iter_reset (iter); in g_mime_part_iter_jump_to()
210 parent = iter->parent->object; in g_mime_part_iter_jump_to()
211 iter->current = NULL; in g_mime_part_iter_jump_to()
244 iter->index = index; in g_mime_part_iter_jump_to()
250 iter->index = -1; in g_mime_part_iter_jump_to()
258 g_mime_part_iter_push (iter, current, iter->index); in g_mime_part_iter_jump_to()
269 iter->current = current; in g_mime_part_iter_jump_to()
270 iter->index = index; in g_mime_part_iter_jump_to()
285 g_mime_part_iter_is_valid (GMimePartIter *iter) in g_mime_part_iter_is_valid() argument
287 g_return_val_if_fail (iter != NULL, FALSE); in g_mime_part_iter_is_valid()
289 return iter->current != NULL; in g_mime_part_iter_is_valid()
303 g_mime_part_iter_next (GMimePartIter *iter) in g_mime_part_iter_next() argument
310 if (!g_mime_part_iter_is_valid (iter)) in g_mime_part_iter_next()
313 if (GMIME_IS_MESSAGE_PART (iter->current)) { in g_mime_part_iter_next()
315 message_part = (GMimeMessagePart *) iter->current; in g_mime_part_iter_next()
319 g_mime_part_iter_push (iter, iter->current, iter->index); in g_mime_part_iter_next()
320 iter->current = mime_part; in g_mime_part_iter_next()
323 iter->index = -1; in g_mime_part_iter_next()
327 iter->index = 0; in g_mime_part_iter_next()
331 } else if (GMIME_IS_MULTIPART (iter->current)) { in g_mime_part_iter_next()
334 multipart = (GMimeMultipart *) iter->current; in g_mime_part_iter_next()
336 g_mime_part_iter_push (iter, iter->current, iter->index); in g_mime_part_iter_next()
337 iter->current = g_mime_multipart_get_part (multipart, 0); in g_mime_part_iter_next()
338 iter->index = 0; in g_mime_part_iter_next()
344 while (iter->parent) { in g_mime_part_iter_next()
345 if (GMIME_IS_MULTIPART (iter->parent->object)) { in g_mime_part_iter_next()
347 multipart = (GMimeMultipart *) iter->parent->object; in g_mime_part_iter_next()
348 iter->index++; in g_mime_part_iter_next()
350 if (g_mime_multipart_get_count (multipart) > iter->index) { in g_mime_part_iter_next()
351 iter->current = g_mime_multipart_get_part (multipart, iter->index); in g_mime_part_iter_next()
356 if (!g_mime_part_iter_pop (iter)) in g_mime_part_iter_next()
360 iter->current = NULL; in g_mime_part_iter_next()
361 iter->index = -1; in g_mime_part_iter_next()
377 g_mime_part_iter_prev (GMimePartIter *iter) in g_mime_part_iter_prev() argument
381 if (!g_mime_part_iter_is_valid (iter)) in g_mime_part_iter_prev()
384 if (iter->parent == NULL) { in g_mime_part_iter_prev()
385 iter->current = NULL; in g_mime_part_iter_prev()
386 iter->index = -1; in g_mime_part_iter_prev()
390 if (GMIME_IS_MULTIPART (iter->parent->object)) { in g_mime_part_iter_prev()
392 multipart = (GMimeMultipart *) iter->parent->object; in g_mime_part_iter_prev()
393 iter->index--; in g_mime_part_iter_prev()
395 if (iter->index >= 0) { in g_mime_part_iter_prev()
396 iter->current = g_mime_multipart_get_part (multipart, iter->index); in g_mime_part_iter_prev()
401 return g_mime_part_iter_pop (iter); in g_mime_part_iter_prev()
414 g_mime_part_iter_get_toplevel (GMimePartIter *iter) in g_mime_part_iter_get_toplevel() argument
416 g_return_val_if_fail (iter != NULL, NULL); in g_mime_part_iter_get_toplevel()
418 return iter->toplevel; in g_mime_part_iter_get_toplevel()
432 g_mime_part_iter_get_current (GMimePartIter *iter) in g_mime_part_iter_get_current() argument
434 g_return_val_if_fail (iter != NULL, NULL); in g_mime_part_iter_get_current()
436 return iter->current; in g_mime_part_iter_get_current()
451 g_mime_part_iter_get_parent (GMimePartIter *iter) in g_mime_part_iter_get_parent() argument
453 g_return_val_if_fail (iter != NULL, NULL); in g_mime_part_iter_get_parent()
455 if (!g_mime_part_iter_is_valid (iter)) in g_mime_part_iter_get_parent()
458 return iter->parent ? iter->parent->object : NULL; in g_mime_part_iter_get_parent()
473 g_mime_part_iter_get_path (GMimePartIter *iter) in g_mime_part_iter_get_path() argument
479 if (!g_mime_part_iter_is_valid (iter)) in g_mime_part_iter_get_path()
485 for (i = 0; i < iter->path->len; i++) { in g_mime_part_iter_get_path()
486 v = g_array_index (iter->path, int, i); in g_mime_part_iter_get_path()
490 g_string_append_printf (path, "%d", iter->index + 1); in g_mime_part_iter_get_path()
507 g_mime_part_iter_replace (GMimePartIter *iter, GMimeObject *replacement) in g_mime_part_iter_replace() argument
517 if (!g_mime_part_iter_is_valid (iter)) in g_mime_part_iter_replace()
520 if (iter->current == iter->toplevel) { in g_mime_part_iter_replace()
521 g_object_unref (iter->toplevel); in g_mime_part_iter_replace()
522 iter->toplevel = replacement; in g_mime_part_iter_replace()
527 parent = iter->parent ? iter->parent->object : iter->toplevel; in g_mime_part_iter_replace()
528 index = iter->index; in g_mime_part_iter_replace()
551 iter->current = replacement; in g_mime_part_iter_replace()
569 g_mime_part_iter_remove (GMimePartIter *iter) in g_mime_part_iter_remove() argument
575 if (!g_mime_part_iter_is_valid (iter)) in g_mime_part_iter_remove()
578 if (iter->current == iter->toplevel) in g_mime_part_iter_remove()
581 parent = iter->parent ? iter->parent->object : iter->toplevel; in g_mime_part_iter_remove()
582 current = iter->current; in g_mime_part_iter_remove()
583 index = iter->index; in g_mime_part_iter_remove()
586 g_mime_part_iter_next (iter); in g_mime_part_iter_remove()