Mercurial > dovecot > core-2.2
view src/imap/imap-expunge.c @ 3863:55df57c028d4 HEAD
Added "bool" type and changed all ints that were used as booleans to bool.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 13 Jan 2006 22:25:57 +0200 |
parents | 923ff19873d4 |
children | 928229f8b3e6 |
line wrap: on
line source
/* Copyright (C) 2003 Timo Sirainen */ #include "common.h" #include "mail-storage.h" #include "mail-search.h" #include "imap-expunge.h" bool imap_expunge(struct mailbox *box, struct mail_search_arg *next_search_arg) { struct mail_search_context *ctx; struct mailbox_transaction_context *t; struct mail *mail; struct mail_search_arg search_arg; enum mailbox_sync_flags flags; bool failed = FALSE; memset(&search_arg, 0, sizeof(search_arg)); search_arg.type = SEARCH_DELETED; search_arg.next = next_search_arg; t = mailbox_transaction_begin(box, 0); ctx = mailbox_search_init(t, NULL, &search_arg, NULL); if (ctx == NULL) failed = TRUE; else { mail = mail_alloc(t, 0, NULL); while (mailbox_search_next(ctx, mail) > 0) { if (mail_expunge(mail) < 0) { failed = TRUE; break; } } mail_free(mail); } if (mailbox_search_deinit(ctx) < 0) return FALSE; if (failed) mailbox_transaction_rollback(t); else { flags = MAILBOX_SYNC_FLAG_FULL_READ | MAILBOX_SYNC_FLAG_FULL_WRITE; if (mailbox_transaction_commit(t, flags) < 0) failed = TRUE; } return !failed; }