mirror of
https://github.com/chatmail/core.git
synced 2026-04-25 01:16:29 +03:00
refactor(mmime): rustify mailmime_address
This commit is contained in:
@@ -1252,20 +1252,19 @@ pub fn mailimf_get_recipients(imffields: *mut mailimf_fields) -> HashSet<String>
|
||||
if adr.is_null() {
|
||||
continue;
|
||||
}
|
||||
let adr = unsafe { *adr };
|
||||
|
||||
if adr.ad_type == MAILIMF_ADDRESS_MAILBOX as libc::c_int {
|
||||
mailimf_get_recipients_add_addr(&mut recipients, unsafe {
|
||||
adr.ad_data.ad_mailbox
|
||||
});
|
||||
} else if adr.ad_type == MAILIMF_ADDRESS_GROUP as libc::c_int {
|
||||
let group = unsafe { adr.ad_data.ad_group };
|
||||
if !group.is_null() && unsafe { !(*group).grp_mb_list.is_null() } {
|
||||
for cur3 in unsafe { &(*(*(*group).grp_mb_list).mb_list) } {
|
||||
mailimf_get_recipients_add_addr(
|
||||
&mut recipients,
|
||||
cur3 as *mut mailimf_mailbox,
|
||||
);
|
||||
match unsafe { *adr } {
|
||||
mailimf_address::Mailbox(mailbox) => {
|
||||
mailimf_get_recipients_add_addr(&mut recipients, mailbox);
|
||||
}
|
||||
mailimf_address::Group(group) => {
|
||||
if !group.is_null() && unsafe { !(*group).grp_mb_list.is_null() } {
|
||||
for cur3 in unsafe { &(*(*(*group).grp_mb_list).mb_list) } {
|
||||
mailimf_get_recipients_add_addr(
|
||||
&mut recipients,
|
||||
cur3 as *mut mailimf_mailbox,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1856,16 +1856,15 @@ unsafe fn dc_add_or_lookup_contacts_by_address_list(
|
||||
if adr_list.is_null() {
|
||||
return;
|
||||
}
|
||||
let mut cur: *mut clistiter = (*(*adr_list).ad_list).first;
|
||||
while !cur.is_null() {
|
||||
let adr: *mut mailimf_address = (if !cur.is_null() {
|
||||
(*cur).data
|
||||
} else {
|
||||
ptr::null_mut()
|
||||
}) as *mut mailimf_address;
|
||||
if !adr.is_null() {
|
||||
if (*adr).ad_type == MAILIMF_ADDRESS_MAILBOX as libc::c_int {
|
||||
let mb: *mut mailimf_mailbox = (*adr).ad_data.ad_mailbox;
|
||||
|
||||
for cur in &(*(*adr_list).ad_list) {
|
||||
let adr = cur as *mut mailimf_address;
|
||||
if adr.is_null() {
|
||||
continue;
|
||||
}
|
||||
|
||||
match *adr {
|
||||
mailimf_address::Mailbox(mb) => {
|
||||
if !mb.is_null() {
|
||||
add_or_lookup_contact_by_addr(
|
||||
context,
|
||||
@@ -1876,8 +1875,8 @@ unsafe fn dc_add_or_lookup_contacts_by_address_list(
|
||||
check_self,
|
||||
);
|
||||
}
|
||||
} else if (*adr).ad_type == MAILIMF_ADDRESS_GROUP as libc::c_int {
|
||||
let group: *mut mailimf_group = (*adr).ad_data.ad_group;
|
||||
}
|
||||
mailimf_address::Group(group) => {
|
||||
if !group.is_null() && !(*group).grp_mb_list.is_null() {
|
||||
dc_add_or_lookup_contacts_by_mailbox_list(
|
||||
context,
|
||||
@@ -1889,11 +1888,6 @@ unsafe fn dc_add_or_lookup_contacts_by_address_list(
|
||||
}
|
||||
}
|
||||
}
|
||||
cur = if !cur.is_null() {
|
||||
(*cur).next
|
||||
} else {
|
||||
ptr::null_mut()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -173,18 +173,14 @@ impl<'a> MimeFactory<'a> {
|
||||
for (name, addr) in name_iter.zip(addr_iter) {
|
||||
mailimf_address_list_add(
|
||||
to,
|
||||
mailimf_address_new(
|
||||
MAILIMF_ADDRESS_MAILBOX as libc::c_int,
|
||||
mailimf_mailbox_new(
|
||||
if !name.is_empty() {
|
||||
dc_encode_header_words(&name).strdup()
|
||||
} else {
|
||||
ptr::null_mut()
|
||||
},
|
||||
addr.strdup(),
|
||||
),
|
||||
ptr::null_mut(),
|
||||
),
|
||||
mailimf_address_new_mailbox(mailimf_mailbox_new(
|
||||
if !name.is_empty() {
|
||||
dc_encode_header_words(&name).strdup()
|
||||
} else {
|
||||
ptr::null_mut()
|
||||
},
|
||||
addr.strdup(),
|
||||
)),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user