MCPcopy Create free account
hub / github.com/MailCore/mailcore2 / storeFlagsAndCustomFlags

Method storeFlagsAndCustomFlags

src/core/imap/MCIMAPSession.cpp:3837–3986  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3835}
3836
3837void IMAPSession::storeFlagsAndCustomFlags(String * folder, bool identifier_is_uid, IndexSet * identifiers,
3838 IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags, ErrorCode * pError)
3839{
3840 struct mailimap_set * imap_set;
3841 struct mailimap_store_att_flags * store_att_flags;
3842 struct mailimap_flag_list * flag_list;
3843 int r;
3844 clist * setList;
3845
3846 selectIfNeeded(folder, pError);
3847 if (* pError != ErrorNone)
3848 return;
3849
3850 imap_set = setFromIndexSet(identifiers);
3851 if (clist_count(imap_set->set_list) == 0) {
3852 mailimap_set_free(imap_set);
3853 return;
3854 }
3855
3856 setList = splitSet(imap_set, 50);
3857
3858 flag_list = mailimap_flag_list_new_empty();
3859 if ((flags & MessageFlagSeen) != 0) {
3860 struct mailimap_flag * f;
3861
3862 f = mailimap_flag_new_seen();
3863 mailimap_flag_list_add(flag_list, f);
3864 }
3865 if ((flags & MessageFlagAnswered) != 0) {
3866 struct mailimap_flag * f;
3867
3868 f = mailimap_flag_new_answered();
3869 mailimap_flag_list_add(flag_list, f);
3870 }
3871 if ((flags & MessageFlagFlagged) != 0) {
3872 struct mailimap_flag * f;
3873
3874 f = mailimap_flag_new_flagged();
3875 mailimap_flag_list_add(flag_list, f);
3876 }
3877 if ((flags & MessageFlagDeleted) != 0) {
3878 struct mailimap_flag * f;
3879
3880 f = mailimap_flag_new_deleted();
3881 mailimap_flag_list_add(flag_list, f);
3882 }
3883 if ((flags & MessageFlagDraft) != 0) {
3884 struct mailimap_flag * f;
3885
3886 f = mailimap_flag_new_draft();
3887 mailimap_flag_list_add(flag_list, f);
3888 }
3889 if ((flags & MessageFlagMDNSent) != 0) {
3890 struct mailimap_flag * f;
3891
3892 f = mailimap_flag_new_flag_keyword(strdup("$MDNSent"));
3893 mailimap_flag_list_add(flag_list, f);
3894 }

Callers

nothing calls this directly

Calls 6

setFromIndexSetFunction · 0.85
splitSetFunction · 0.85
hasErrorFunction · 0.85
objectAtIndexMethod · 0.80
UTF8CharactersMethod · 0.80
countMethod · 0.45

Tested by

no test coverage detected