Hey!
I am using mbsync to sync IMAP mailboxes. I believe that custom flags
are not supported. Looking at the IMAP driver, I see a list of supported
flags and later a comment about user-tags being ignored.
I am using Gnus which uses some custom tags. With offlineimap, there is
some hack to be able to use them:
http://lists.gnu.org/archive/html/info-gnus-english/2011-10/msg00052.html
How could we support them in mbsync?
If I would like to support them with an ad hoc modification, I think
this would be easy:
In driver.h (the comment say to keep sort ordering, but then I need to
modify the value of existing flags, are they stored somewhere?):
#define F_DRAFT (1<<0) /* Draft */
#define F_EXPIRE (1<<1) /* gnus-expire */
#define F_FLAGGED (1<<2) /* Flagged */
#define F_DORMANT (1<<3) /* gnus-dormant */
#define F_ANSWERED (1<<4) /* Replied */
#define F_SEEN (1<<5) /* Seen */
#define F_DELETED (1<<6) /* Trashed */
#define F_SAVE (1<<7) /* gnus-save */
#define F_FORWARD (1<<8) /* gnus-forward */
#define NUM_FLAGS 9
In drv_maildir.c:
static const char Flags[] = { 'D', 'E', 'F', 'Q', 'R', 'S', 'T', 'V', 'W' };
In drv_imap.c:
static const char *Flags[] = {
"Draft",
"gnus-expire",
"Flagged",
"gnus-dormant",
"Answered",
"Seen",
"Deleted",
"gnus-save",
"gnus-forward"
};
However, that's not very extensible. Maybe this can be made
configurable.
My questions :
1. Would the above steps work correctly?
2. Do I really need to keep the sort order in maildir's Flags array? It
would be easier to add flags from configuration file if I didn't
have to.
Thanks.
--
Avoid temporary variables.
- The Elements of Programming Style (Kernighan & Plauger)
|