Return bool from mailmime_transfer_decode

This commit is contained in:
Alexander Krotov
2019-09-12 12:58:31 +03:00
parent 27a4adb9c6
commit 50a812ea5e
3 changed files with 18 additions and 24 deletions

View File

@@ -1033,14 +1033,12 @@ unsafe fn dc_mimeparser_add_single_part_if_known(
|| (*mime_data).dt_data.dt_text.dt_length <= 0)
{
/* regard `Content-Transfer-Encoding:` */
if !(0
== mailmime_transfer_decode(
mime,
&mut decoded_data,
&mut decoded_data_bytes,
&mut transfer_decoding_buffer,
))
{
if mailmime_transfer_decode(
mime,
&mut decoded_data,
&mut decoded_data_bytes,
&mut transfer_decoding_buffer,
) {
/* no always error - but no data */
match mime_type {
60 | 70 => {
@@ -1352,13 +1350,12 @@ unsafe fn do_add_single_part(parser: &mut dc_mimeparser_t, mut part: dc_mimepart
parser.parts.push(part);
}
// TODO should return bool /rtn
pub unsafe fn mailmime_transfer_decode(
mime: *mut mailmime,
ret_decoded_data: *mut *const libc::c_char,
ret_decoded_data_bytes: *mut size_t,
ret_to_mmap_string_unref: *mut *mut libc::c_char,
) -> libc::c_int {
) -> bool {
let mut mime_transfer_encoding: libc::c_int = MAILMIME_MECHANISM_BINARY as libc::c_int;
let mime_data: *mut mailmime_data;
/* must not be free()'d */
@@ -1374,7 +1371,7 @@ pub unsafe fn mailmime_transfer_decode(
|| *ret_decoded_data_bytes != 0
|| !(*ret_to_mmap_string_unref).is_null()
{
return 0i32;
return false;
}
mime_data = (*mime).mm_data.mm_single;
if !(*mime).mm_mime_fields.is_null() {
@@ -1408,7 +1405,7 @@ pub unsafe fn mailmime_transfer_decode(
decoded_data = (*mime_data).dt_data.dt_text.dt_data;
decoded_data_bytes = (*mime_data).dt_data.dt_text.dt_length;
if decoded_data.is_null() || decoded_data_bytes <= 0 {
return 0i32;
return false;
}
} else {
let r: libc::c_int;
@@ -1425,7 +1422,7 @@ pub unsafe fn mailmime_transfer_decode(
|| transfer_decoding_buffer.is_null()
|| decoded_data_bytes <= 0
{
return 0i32;
return false;
}
decoded_data = transfer_decoding_buffer
}
@@ -1433,7 +1430,7 @@ pub unsafe fn mailmime_transfer_decode(
*ret_decoded_data_bytes = decoded_data_bytes;
*ret_to_mmap_string_unref = transfer_decoding_buffer;
1
true
}
pub unsafe fn dc_mimeparser_is_mailinglist_message(mimeparser: &dc_mimeparser_t) -> bool {

View File

@@ -831,7 +831,7 @@ unsafe fn handle_reports(
let mut report_body_bytes = 0;
let mut to_mmap_string_unref = std::ptr::null_mut();
if 0 != mailmime_transfer_decode(
if mailmime_transfer_decode(
report_data,
&mut report_body,
&mut report_body_bytes,

View File

@@ -1093,15 +1093,12 @@ Sent with my Delta Chat Messenger: https://delta.chat";
let mut decoded_data_bytes = 0;
let mut transfer_decoding_buffer: *mut libc::c_char = ptr::null_mut();
assert_eq!(
mailmime_transfer_decode(
msg1,
&mut decoded_data,
&mut decoded_data_bytes,
&mut transfer_decoding_buffer,
),
1
);
assert!(mailmime_transfer_decode(
msg1,
&mut decoded_data,
&mut decoded_data_bytes,
&mut transfer_decoding_buffer,
));
println!(
"{:?}",
String::from_utf8_lossy(std::slice::from_raw_parts(