mirror of https://github.com/djcb/mu.git
flags: add flags_mail_dir_file util
And some whitespace cleanup
This commit is contained in:
parent
472f69beb2
commit
ae87be6a48
|
@ -114,48 +114,48 @@ struct MessageFlagInfo {
|
||||||
* Array of all flag information.
|
* Array of all flag information.
|
||||||
*/
|
*/
|
||||||
constexpr std::array<MessageFlagInfo, 14> AllMessageFlagInfos = {{
|
constexpr std::array<MessageFlagInfo, 14> AllMessageFlagInfos = {{
|
||||||
MessageFlagInfo{Flags::Draft, 'D', "draft", MessageFlagCategory::Mailfile,
|
MessageFlagInfo{Flags::Draft, 'D', "draft", MessageFlagCategory::Mailfile,
|
||||||
"Draft (in progress)"
|
"Draft (in progress)"
|
||||||
},
|
},
|
||||||
MessageFlagInfo{Flags::Flagged, 'F', "flagged", MessageFlagCategory::Mailfile,
|
MessageFlagInfo{Flags::Flagged, 'F', "flagged", MessageFlagCategory::Mailfile,
|
||||||
"User-flagged"
|
"User-flagged"
|
||||||
},
|
},
|
||||||
MessageFlagInfo{Flags::Passed, 'P', "passed", MessageFlagCategory::Mailfile,
|
MessageFlagInfo{Flags::Passed, 'P', "passed", MessageFlagCategory::Mailfile,
|
||||||
"Forwarded message"
|
"Forwarded message"
|
||||||
},
|
},
|
||||||
MessageFlagInfo{Flags::Replied, 'R', "replied", MessageFlagCategory::Mailfile,
|
MessageFlagInfo{Flags::Replied, 'R', "replied", MessageFlagCategory::Mailfile,
|
||||||
"Replied-to"
|
"Replied-to"
|
||||||
},
|
},
|
||||||
MessageFlagInfo{Flags::Seen, 'S', "seen", MessageFlagCategory::Mailfile,
|
MessageFlagInfo{Flags::Seen, 'S', "seen", MessageFlagCategory::Mailfile,
|
||||||
"Viewed at least once"
|
"Viewed at least once"
|
||||||
},
|
},
|
||||||
MessageFlagInfo{Flags::Trashed, 'T', "trashed", MessageFlagCategory::Mailfile,
|
MessageFlagInfo{Flags::Trashed, 'T', "trashed", MessageFlagCategory::Mailfile,
|
||||||
"Marked for deletion"
|
"Marked for deletion"
|
||||||
},
|
},
|
||||||
MessageFlagInfo{Flags::New, 'N', "new", MessageFlagCategory::Maildir,
|
MessageFlagInfo{Flags::New, 'N', "new", MessageFlagCategory::Maildir,
|
||||||
"New message"
|
"New message"
|
||||||
},
|
},
|
||||||
MessageFlagInfo{Flags::Signed, 'z', "signed", MessageFlagCategory::Content,
|
MessageFlagInfo{Flags::Signed, 'z', "signed", MessageFlagCategory::Content,
|
||||||
"Cryptographically signed"
|
"Cryptographically signed"
|
||||||
},
|
},
|
||||||
MessageFlagInfo{Flags::Encrypted, 'x', "encrypted", MessageFlagCategory::Content,
|
MessageFlagInfo{Flags::Encrypted, 'x', "encrypted", MessageFlagCategory::Content,
|
||||||
"Encrypted"
|
"Encrypted"
|
||||||
},
|
},
|
||||||
MessageFlagInfo{Flags::HasAttachment,'a', "attach", MessageFlagCategory::Content,
|
MessageFlagInfo{Flags::HasAttachment,'a', "attach", MessageFlagCategory::Content,
|
||||||
"Has at least one attachment"
|
"Has at least one attachment"
|
||||||
},
|
},
|
||||||
|
|
||||||
MessageFlagInfo{Flags::Unread, 'u', "unread", MessageFlagCategory::Pseudo,
|
MessageFlagInfo{Flags::Unread, 'u', "unread", MessageFlagCategory::Pseudo,
|
||||||
"New or not seen message"
|
"New or not seen message"
|
||||||
},
|
},
|
||||||
MessageFlagInfo{Flags::MailingList, 'l', "list", MessageFlagCategory::Content,
|
MessageFlagInfo{Flags::MailingList, 'l', "list", MessageFlagCategory::Content,
|
||||||
"Mailing list message"
|
"Mailing list message"
|
||||||
},
|
},
|
||||||
MessageFlagInfo{Flags::Personal, 'q', "personal", MessageFlagCategory::Content,
|
MessageFlagInfo{Flags::Personal, 'q', "personal", MessageFlagCategory::Content,
|
||||||
"Personal message"
|
"Personal message"
|
||||||
},
|
},
|
||||||
MessageFlagInfo{Flags::Calendar, 'c', "calendar", MessageFlagCategory::Content,
|
MessageFlagInfo{Flags::Calendar, 'c', "calendar", MessageFlagCategory::Content,
|
||||||
"Calendar invitation"
|
"Calendar invitation"
|
||||||
},
|
},
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
@ -348,7 +348,7 @@ flags_from_expr(std::string_view expr,
|
||||||
* @param flags flags
|
* @param flags flags
|
||||||
* @param cat category
|
* @param cat category
|
||||||
*
|
*
|
||||||
* @return filter flags
|
* @return filtered flags
|
||||||
*/
|
*/
|
||||||
constexpr Flags
|
constexpr Flags
|
||||||
flags_filter(Flags flags, MessageFlagCategory cat)
|
flags_filter(Flags flags, MessageFlagCategory cat)
|
||||||
|
@ -359,6 +359,25 @@ flags_filter(Flags flags, MessageFlagCategory cat)
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter out any flags which are _not_ Maildir / Mailfile flags
|
||||||
|
*
|
||||||
|
* @param flags flags
|
||||||
|
*
|
||||||
|
* @return filtered flags
|
||||||
|
*/
|
||||||
|
constexpr Flags
|
||||||
|
flags_mail_dir_file(Flags flags)
|
||||||
|
{
|
||||||
|
for (auto&& info : AllMessageFlagInfos)
|
||||||
|
if (info.category != MessageFlagCategory::Maildir &&
|
||||||
|
info.category != MessageFlagCategory::Mailfile)
|
||||||
|
flags &= ~info.flag;
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return flags, where flags = new_flags but with unmutable_flag in the
|
* Return flags, where flags = new_flags but with unmutable_flag in the
|
||||||
|
|
Loading…
Reference in New Issue