static void mimeview_set_multipart_tree(MimeView *mimeview, MimeInfo *mimeinfo, GtkCTreeNode *parent) { GtkCTreeNode *node; g_return_if_fail(mimeinfo != NULL); while (mimeinfo != NULL) { node = mimeview_append_part(mimeview, mimeinfo, parent); if (mimeinfo->node->children) mimeview_set_multipart_tree(mimeview, (MimeInfo *) mimeinfo->node->children->data, node); mimeinfo = mimeinfo->node->next != NULL ? (MimeInfo *) mimeinfo->node->next->data : NULL; } }
static void mimeview_set_multipart_tree(MimeView *mimeview, MimeInfo *mimeinfo, GtkTreeIter *parent) { GtkTreeIter iter; g_return_if_fail(mimeinfo != NULL); if (mimeinfo->children) mimeinfo = mimeinfo->children; while (mimeinfo != NULL) { mimeview_append_part(mimeview, mimeinfo, &iter, parent); if (mimeinfo->children) mimeview_set_multipart_tree(mimeview, mimeinfo, &iter); else if (mimeinfo->sub && mimeinfo->sub->mime_type != MIME_TEXT && mimeinfo->sub->mime_type != MIME_TEXT_HTML) mimeview_set_multipart_tree(mimeview, mimeinfo->sub, &iter); mimeinfo = mimeinfo->next; } }