ignore user-defined flags (for now).
also, split off the backslash from the "core" flag names.
This commit is contained in:
parent
e75ebf75f6
commit
e8c769ea76
|
@ -174,11 +174,11 @@ static int get_cmd_result( imap_store_t *ctx, struct imap_cmd *tcmd );
|
|||
|
||||
|
||||
static const char *Flags[] = {
|
||||
"\\Draft",
|
||||
"\\Flagged",
|
||||
"\\Answered",
|
||||
"\\Seen",
|
||||
"\\Deleted",
|
||||
"Draft",
|
||||
"Flagged",
|
||||
"Answered",
|
||||
"Seen",
|
||||
"Deleted",
|
||||
};
|
||||
|
||||
#if HAVE_LIBSSL
|
||||
|
@ -730,16 +730,18 @@ parse_fetch( imap_t *imap, char *cmd ) /* move this down */
|
|||
if (is_list( tmp )) {
|
||||
for (flags = tmp->child; flags; flags = flags->next) {
|
||||
if (is_atom( flags )) {
|
||||
if (!strcmp( "\\Recent", flags->val )) {
|
||||
status |= M_RECENT;
|
||||
goto flagok;
|
||||
}
|
||||
for (i = 0; i < as(Flags); i++)
|
||||
if (!strcmp( Flags[i], flags->val )) {
|
||||
mask |= 1 << i;
|
||||
if (flags->val[0] == '\\') { /* ignore user-defined flags for now */
|
||||
if (!strcmp( "Recent", flags->val + 1)) {
|
||||
status |= M_RECENT;
|
||||
goto flagok;
|
||||
}
|
||||
fprintf( stderr, "IMAP warning: unknown flag %s\n", flags->val );
|
||||
for (i = 0; i < as(Flags); i++)
|
||||
if (!strcmp( Flags[i], flags->val + 1 )) {
|
||||
mask |= 1 << i;
|
||||
goto flagok;
|
||||
}
|
||||
fprintf( stderr, "IMAP warning: unknown system flag %s\n", flags->val );
|
||||
}
|
||||
flagok: ;
|
||||
} else
|
||||
fprintf( stderr, "IMAP error: unable to parse FLAGS list\n" );
|
||||
|
@ -1480,6 +1482,7 @@ imap_make_flags( int flags, char *buf )
|
|||
for (i = d = 0; i < as(Flags); i++)
|
||||
if (flags & (1 << i)) {
|
||||
buf[d++] = ' ';
|
||||
buf[d++] = '\\';
|
||||
for (s = Flags[i]; *s; s++)
|
||||
buf[d++] = *s;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user