mbox-sync-private.h revision 7fd72a47d7ddfbd38c8697e228b6951f495dfb61
84ae5edab16ad6be5e3be956cb6fa031c1428eb5Stephen Gallagher#define MBOX_NONRECENT MAIL_RECENT /* kludgy */
cc98edd9479d4622634a1275c98058916c14059aStephen Gallagher#define STATUS_FLAGS_MASK (MAIL_SEEN|MBOX_NONRECENT)
d3da1c165cdb4c1ec126a8f4b6b544ca415b9d20Pavel Březina#define XSTATUS_FLAGS_MASK (MAIL_ANSWERED|MAIL_FLAGGED|MAIL_DRAFT|MAIL_DELETED)
d3da1c165cdb4c1ec126a8f4b6b544ca415b9d20Pavel Březinaextern struct mbox_flag_type mbox_status_flags[];
d3da1c165cdb4c1ec126a8f4b6b544ca415b9d20Pavel Březinaextern struct mbox_flag_type mbox_xstatus_flags[];
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher /* following variables have a bit overloaded functionality:
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher a) space <= 0 : offset points to beginning of headers. space is the
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher amount of space missing that is required to be able to rewrite
c89589fa349f38214c9cb8d9389c0fd557e5dca2Simo Sorce b) space > 0 : offset points to beginning of whitespace that can
f775337a7d4ca1c0be8eab683d0d753cbaee49e2Lukas Slebodnik be removed. space is the amount of data that can be removed from
f775337a7d4ca1c0be8eab683d0d753cbaee49e2Lukas Slebodnik there. note that the message may contain more whitespace
f775337a7d4ca1c0be8eab683d0d753cbaee49e2Lukas Slebodnik elsewhere. */
86b61156743b7ebdc049450a6f88452890fd9a61Jakub Hrozek size_t header_first_change, header_last_change;
327127bb7fcc07f882209f029e14026de1b23c94Maxim /* header state: */
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher uint32_t base_uid_validity, base_uid_last;
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher /* mail state: */
bc9235cfb80bd64a3bfa959e8d26d5ad1be0bdf4Jakub Hrozek uint32_t seq, idx_seq, need_space_seq, need_space_idx_seq;
4b6a0d0b3d42e5fdb457f47d9adfa5e66b160256Stephen Gallagherint mbox_sync(struct index_mailbox *ibox, enum mbox_sync_flags flags);
90fd1bbd6035cdab46faa3a695a2fb2be6508b17Sumit Boseint mbox_sync_has_changed(struct index_mailbox *ibox, int leave_dirty);
4a5a18f489f4d19aa0571528a7f0c7a8d35ac83fLukas Slebodnikvoid mbox_sync_parse_next_mail(struct istream *input,
af4ffe1001adcc0a96897e426d26444f07af9aa1Benjamin Franzkeint mbox_sync_parse_match_mail(struct index_mailbox *ibox,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher struct mail_index_view *view, uint32_t seq);
64ea4127f463798410a2c20e0261c6b15f60257fJakub Hrozekvoid mbox_sync_update_header(struct mbox_sync_mail_context *ctx,
772464c842968d6e544118ae1aa7c49a7cda2ad6Stephen Gallaghervoid mbox_sync_update_header_from(struct mbox_sync_mail_context *ctx,
068dbee9ca7bf5b37330eff91c94ae10f288d09fJakub Hrozekint mbox_sync_try_rewrite(struct mbox_sync_mail_context *ctx, off_t move_diff);
98ce3c3e85a4bb2e1822bf8ab2a1c2ab9e3dd61dJakub Hrozekint mbox_sync_rewrite(struct mbox_sync_context *sync_ctx,
be65f065fef1d387281096ef095a2acef39ecc12Jakub Hrozek uoff_t end_offset, off_t move_diff, uoff_t extra_space,
34c78b745eb349eef2b0f13ef2b722632aebe619Jan Cholastaint mbox_sync_seek(struct mbox_sync_context *sync_ctx, uoff_t from_offset);
cb4d5b588e704114b7090678752d33512baa718eJakub Hrozekint mbox_move(struct mbox_sync_context *sync_ctx,
e07a94a66985b674c5df11ca466792902164c4e2George McCollister uoff_t dest, uoff_t source, uoff_t size);