wip - use mmime instead of libetpan

This commit is contained in:
dignifiedquire
2019-05-07 10:45:46 +01:00
parent 693c0e0fc0
commit 83917ef93e
48 changed files with 68 additions and 1118 deletions

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_contact::*;
use crate::dc_key::*;
use crate::dc_strbuilder::*;
@@ -78,7 +76,7 @@ pub unsafe fn dc_aheader_new_from_imffields(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_aheader::*;
use crate::dc_chat::*;
use crate::dc_context::dc_context_t;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_context::*;
use crate::dc_tools::*;
use crate::types::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::*;
use crate::dc_array::*;
use crate::dc_chatlist::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_array::*;
use crate::dc_chat::*;
use crate::dc_contact::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::Event;
use crate::dc_context::dc_context_t;
use crate::dc_e2ee::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::Event;
use crate::dc_apeerstate::*;
use crate::dc_array::*;

View File

@@ -1,4 +1,3 @@
use libc;
use std::sync::{Arc, Condvar, Mutex, RwLock};
use crate::constants::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_saxparser::*;
use crate::dc_strbuilder::*;
use crate::dc_tools::*;

View File

@@ -1,4 +1,6 @@
use libc;
use mmime::clist::*;
use mmime::mailmime::*;
use mmime::mailmime_types::*;
use crate::dc_aheader::*;
use crate::dc_apeerstate::*;
@@ -132,7 +134,7 @@ pub unsafe fn dc_e2ee_encrypt(
iter1 = if !iter1.is_null() {
(*iter1).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -248,7 +250,7 @@ pub unsafe fn dc_e2ee_encrypt(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -858,7 +860,7 @@ unsafe fn update_gossip_peerstates(
cur1 = if !cur1.is_null() {
(*cur1).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
if !recipients.is_null() {
@@ -929,7 +931,7 @@ unsafe fn decrypt_recursive(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
*ret_has_unencrypted_parts = 1i32
@@ -954,7 +956,7 @@ unsafe fn decrypt_recursive(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -1023,7 +1025,7 @@ unsafe fn decrypt_part(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -1197,7 +1199,7 @@ unsafe fn contains_report(mut mime: *mut mailmime) -> libc::c_int {
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
} else if (*mime).mm_type == MAILMIME_MESSAGE as libc::c_int {

View File

@@ -1,5 +1,3 @@
use libc;
use crate::types::*;
use crate::x::*;

View File

@@ -2,8 +2,6 @@ use std::ffi::{CStr, CString};
use std::sync::{Arc, Condvar, Mutex, RwLock};
use std::time::{Duration, SystemTime};
use libc;
use crate::constants::*;
use crate::dc_context::dc_context_t;
use crate::dc_log::*;

View File

@@ -1,4 +1,3 @@
use libc;
use rand::{thread_rng, Rng};
use crate::constants::Event;

View File

@@ -1,7 +1,6 @@
use std::ffi::CStr;
use std::time::{Duration, SystemTime};
use libc;
use rand::{thread_rng, Rng};
use crate::constants::Event;

View File

@@ -1,7 +1,5 @@
use std::sync::{Arc, Condvar, Mutex};
use libc;
use crate::dc_configure::*;
use crate::dc_context::dc_context_t;
use crate::dc_imap::dc_imap_t;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::types::*;
/*

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_context::dc_context_t;
use crate::dc_log::*;
use crate::dc_pgp::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_context::dc_context_t;
use crate::types::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_context::dc_context_t;
use crate::dc_key::*;
use crate::dc_sqlite3::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::Event;
use crate::dc_array::*;
use crate::dc_chat::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::Event;
use crate::dc_context::dc_context_t;
use crate::dc_tools::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_context::dc_context_t;
use crate::dc_sqlite3::*;
use crate::dc_strbuilder::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_chat::*;
use crate::dc_contact::*;
use crate::dc_context::dc_context_t;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::VERSION;
use crate::dc_chat::*;
use crate::dc_contact::*;
@@ -418,12 +416,12 @@ pub unsafe fn dc_mimefactory_render(mut factory: *mut dc_mimefactory_t) -> libc:
iter1 = if !iter1.is_null() {
(*iter1).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
};
iter2 = if !iter2.is_null() {
(*iter2).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -1274,7 +1272,7 @@ unsafe fn build_body_file(
cur1 = if !cur1.is_null() {
(*cur1).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_contact::*;
use crate::dc_context::dc_context_t;
use crate::dc_e2ee::*;
@@ -490,7 +488,7 @@ pub unsafe fn mailimf_find_first_addr(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
@@ -617,7 +615,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -643,7 +641,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -666,7 +664,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -777,7 +775,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
if plain_cnt == 1i32 && html_cnt == 1i32 {
@@ -803,7 +801,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -893,7 +891,7 @@ unsafe fn hash_header(out: *mut dc_hash_t, in_0: *const mailimf_fields, _context
cur1 = if !cur1.is_null() {
(*cur1).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -1116,7 +1114,7 @@ unsafe fn mailmime_is_attachment_disposition(mut mime: *mut mailmime) -> libc::c
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -1152,7 +1150,7 @@ pub unsafe fn mailmime_find_ct_parameter(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
@@ -1370,7 +1368,7 @@ unsafe fn dc_mimeparser_add_single_part_if_known(
cur2 = if !cur2.is_null() {
(*cur2).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -1379,7 +1377,7 @@ unsafe fn dc_mimeparser_add_single_part_if_known(
cur1 = if !cur1.is_null() {
(*cur1).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -1615,7 +1613,7 @@ pub unsafe fn mailmime_transfer_decode(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -1802,7 +1800,7 @@ pub unsafe fn mailimf_get_recipients(mut imffields: *mut mailimf_fields) -> *mut
cur3 = if !cur3.is_null() {
(*cur3).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -1811,14 +1809,14 @@ pub unsafe fn mailimf_get_recipients(mut imffields: *mut mailimf_fields) -> *mut
cur2 = if !cur2.is_null() {
(*cur2).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
cur1 = if !cur1.is_null() {
(*cur1).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
@@ -1871,7 +1869,7 @@ pub unsafe fn mailimf_find_field(
cur1 = if !cur1.is_null() {
(*cur1).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
@@ -1928,7 +1926,7 @@ pub unsafe fn mailmime_find_mailimf_fields(mut mime: *mut mailmime) -> *mut mail
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -1967,7 +1965,7 @@ pub unsafe fn mailimf_find_optional_field(
cur1 = if !cur1.is_null() {
(*cur1).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::*;
use crate::dc_context::*;
use crate::dc_job::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::Event;
use crate::dc_chat::*;
use crate::dc_contact::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::Event;
use crate::dc_contact::*;
use crate::dc_context::dc_context_t;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_tools::*;
use crate::types::*;
use crate::x::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_context::dc_context_t;
use crate::dc_hash::*;
use crate::dc_key::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_apeerstate::*;
use crate::dc_chat::*;
use crate::dc_contact::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::*;
use crate::dc_apeerstate::*;
use crate::dc_array::*;
@@ -750,7 +748,7 @@ pub unsafe fn dc_receive_imf(
.first)
.next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
.is_null()
{
@@ -768,7 +766,7 @@ pub unsafe fn dc_receive_imf(
.first)
.next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
})
.data
} else {
@@ -2098,7 +2096,7 @@ unsafe fn is_known_rfc724_mid_in_list(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -2187,7 +2185,7 @@ unsafe fn is_msgrmsg_rfc724_mid_in_list(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -2262,7 +2260,7 @@ unsafe fn dc_add_or_lookup_contacts_by_address_list(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -2296,7 +2294,7 @@ unsafe fn dc_add_or_lookup_contacts_by_mailbox_list(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_tools::*;
use crate::types::*;
use crate::x::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::Event;
use crate::dc_apeerstate::*;
use crate::dc_array::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_dehtml::*;
use crate::dc_strbuilder::*;
use crate::dc_tools::*;

View File

@@ -2,7 +2,6 @@ use std::ffi::{CStr, CString};
use lettre::smtp::client::net::*;
use lettre::*;
use libc;
use native_tls::TlsConnector;
use crate::constants::Event;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::*;
use crate::dc_apeerstate::*;
use crate::dc_context::dc_context_t;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::constants::Event;
use crate::dc_contact::*;
use crate::dc_context::dc_context_t;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::x::*;
#[derive(Copy, Clone)]

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_tools::*;
use crate::types::*;
use crate::x::*;

View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_context::dc_context_t;
use crate::dc_sqlite3::*;
use crate::dc_tools::*;

View File

@@ -1,6 +1,5 @@
use std::fs;
use libc;
use rand::{thread_rng, Rng};
use crate::dc_array::*;
@@ -568,7 +567,7 @@ pub unsafe fn dc_str_from_clist(
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -661,7 +660,7 @@ pub unsafe fn clist_free_content(mut haystack: *const clist) {
iter = if !iter.is_null() {
(*iter).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -678,7 +677,7 @@ pub unsafe fn clist_search_string_nocase(
iter = if !iter.is_null() {
(*iter).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
@@ -853,64 +852,6 @@ pub unsafe fn dc_timestamp_to_str(mut wanted: time_t) -> *mut libc::c_char {
);
}
pub unsafe fn dc_timestamp_to_mailimap_date_time(mut timeval: time_t) -> *mut mailimap_date_time {
let mut gmt: tm = tm {
tm_sec: 0,
tm_min: 0,
tm_hour: 0,
tm_mday: 0,
tm_mon: 0,
tm_year: 0,
tm_wday: 0,
tm_yday: 0,
tm_isdst: 0,
tm_gmtoff: 0,
tm_zone: 0 as *mut libc::c_char,
};
let mut lt: tm = tm {
tm_sec: 0,
tm_min: 0,
tm_hour: 0,
tm_mday: 0,
tm_mon: 0,
tm_year: 0,
tm_wday: 0,
tm_yday: 0,
tm_isdst: 0,
tm_gmtoff: 0,
tm_zone: 0 as *mut libc::c_char,
};
let mut off: libc::c_int;
let mut date_time: *mut mailimap_date_time;
let mut sign: libc::c_int;
let mut hour: libc::c_int;
let mut min: libc::c_int;
gmtime_r(&mut timeval, &mut gmt);
localtime_r(&mut timeval, &mut lt);
off = ((mkgmtime(&mut lt) - mkgmtime(&mut gmt)) / 60i32 as libc::c_long) as libc::c_int;
if off < 0i32 {
sign = -1i32
} else {
sign = 1i32
}
off = off * sign;
min = off % 60i32;
hour = off / 60i32;
off = hour * 100i32 + min;
off = off * sign;
date_time = mailimap_date_time_new(
lt.tm_mday,
lt.tm_mon + 1i32,
lt.tm_year + 1900i32,
lt.tm_hour,
lt.tm_min,
lt.tm_sec,
off,
);
date_time
}
pub unsafe fn dc_gm2local_offset() -> libc::c_long {
/* returns the offset that must be _added_ to an UTC/GMT-time to create the localtime.
the function may return nagative values. */
@@ -1149,7 +1090,7 @@ pub unsafe fn dc_extract_grpid_from_rfc724_mid_list(mut list: *const clist) -> *
cur = if !cur.is_null() {
(*cur).next
} else {
0 as *mut clistcell_s
0 as *mut clistcell
}
}
}
@@ -1497,7 +1438,7 @@ pub unsafe fn dc_create_folder(
.unwrap(),
);
if !p.exists() {
if mkdir(pathNfilename_abs, 0o755i32 as mode_t) != 0i32 {
if mkdir(pathNfilename_abs, 0o755i32 as libc::mode_t) != 0i32 {
dc_log_warning(
context,
0i32,

View File

@@ -1,17 +1,33 @@
use libc;
use crate::constants::Event;
use crate::dc_context::dc_context_t;
pub use libc::{dirent, tm, DIR, FILE};
pub use libsqlite3_sys::*;
pub use mmime::carray::*;
pub use mmime::clist::*;
pub use mmime::*;
extern "C" {
pub type __sFILEX;
pub type _telldir;
pub type mailstream_cancel;
pub type __builtin_va_list = [__va_list_tag; 1];
#[derive(Copy, Clone)]
#[repr(C)]
pub struct __va_list_tag {
pub gp_offset: libc::c_uint,
pub fp_offset: libc::c_uint,
pub overflow_arg_area: *mut libc::c_void,
pub reg_save_area: *mut libc::c_void,
}
pub type va_list = __builtin_va_list;
pub type __int64_t = libc::c_longlong;
pub type __darwin_ct_rune_t = libc::c_int;
pub type __darwin_wchar_t = libc::c_int;
pub type __darwin_rune_t = __darwin_wchar_t;
pub type uint64_t = libc::c_ulonglong;
pub type uid_t = libc::uid_t;
pub type gid_t = libc::gid_t;
pub type dev_t = libc::dev_t;
pub type blkcnt_t = libc::blkcnt_t;
pub type blksize_t = libc::blksize_t;
pub type nlink_t = __uint16_t;
/**
* Callback function that should be given to dc_context_new().
@@ -76,633 +92,3 @@ pub type uint8_t = libc::c_uchar;
pub type uint16_t = libc::c_ushort;
pub type __uint32_t = libc::c_uint;
#[derive(Copy, Clone)]
#[repr(C)]
pub struct carray_s {
pub array: *mut *mut libc::c_void,
pub len: libc::c_uint,
pub max: libc::c_uint,
}
pub type carray = carray_s;
#[derive(Copy, Clone)]
#[repr(C)]
pub struct _MMAPString {
pub str_0: *mut libc::c_char,
pub len: size_t,
pub allocated_len: size_t,
pub fd: libc::c_int,
pub mmapped_size: size_t,
}
pub type MMAPString = _MMAPString;
#[derive(Copy, Clone)]
#[repr(C)]
pub struct clistcell_s {
pub data: *mut libc::c_void,
pub previous: *mut clistcell_s,
pub next: *mut clistcell_s,
}
pub type clistcell = clistcell_s;
#[derive(Copy, Clone)]
#[repr(C)]
pub struct clist_s {
pub first: *mut clistcell,
pub last: *mut clistcell,
pub count: libc::c_int,
}
pub type clist = clist_s;
pub type clistiter = clistcell;
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimap_date_time {
pub dt_day: libc::c_int,
pub dt_month: libc::c_int,
pub dt_year: libc::c_int,
pub dt_hour: libc::c_int,
pub dt_min: libc::c_int,
pub dt_sec: libc::c_int,
pub dt_zone: libc::c_int,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_fields {
pub fld_list: *mut clist,
}
pub const MAILMIME_DISCRETE_TYPE_EXTENSION: libc::c_uint = 6;
pub const MAILMIME_DISCRETE_TYPE_APPLICATION: libc::c_uint = 5;
pub const MAILMIME_DISCRETE_TYPE_VIDEO: libc::c_uint = 4;
pub const MAILMIME_DISCRETE_TYPE_AUDIO: libc::c_uint = 3;
pub const MAILMIME_DISCRETE_TYPE_IMAGE: libc::c_uint = 2;
pub const MAILMIME_DISCRETE_TYPE_TEXT: libc::c_uint = 1;
pub const MAILMIME_DISCRETE_TYPE_ERROR: libc::c_uint = 0;
pub const MAILIMF_FIELD_OPTIONAL_FIELD: libc::c_uint = 22;
pub const MAILIMF_FIELD_KEYWORDS: libc::c_uint = 21;
pub const MAILIMF_FIELD_COMMENTS: libc::c_uint = 20;
pub const MAILIMF_FIELD_SUBJECT: libc::c_uint = 19;
pub const MAILIMF_FIELD_REFERENCES: libc::c_uint = 18;
pub const MAILIMF_FIELD_IN_REPLY_TO: libc::c_uint = 17;
pub const MAILIMF_FIELD_MESSAGE_ID: libc::c_uint = 16;
pub const MAILIMF_FIELD_BCC: libc::c_uint = 15;
pub const MAILIMF_FIELD_CC: libc::c_uint = 14;
pub const MAILIMF_FIELD_TO: libc::c_uint = 13;
pub const MAILIMF_FIELD_REPLY_TO: libc::c_uint = 12;
pub const MAILIMF_FIELD_SENDER: libc::c_uint = 11;
pub const MAILIMF_FIELD_FROM: libc::c_uint = 10;
pub const MAILIMF_FIELD_ORIG_DATE: libc::c_uint = 9;
pub const MAILIMF_FIELD_RESENT_MSG_ID: libc::c_uint = 8;
pub const MAILIMF_FIELD_RESENT_BCC: libc::c_uint = 7;
pub const MAILIMF_FIELD_RESENT_CC: libc::c_uint = 6;
pub const MAILIMF_FIELD_RESENT_TO: libc::c_uint = 5;
pub const MAILIMF_FIELD_RESENT_SENDER: libc::c_uint = 4;
pub const MAILIMF_FIELD_RESENT_FROM: libc::c_uint = 3;
pub const MAILIMF_FIELD_RESENT_DATE: libc::c_uint = 2;
pub const MAILIMF_FIELD_RETURN_PATH: libc::c_uint = 1;
pub const MAILIMF_FIELD_NONE: libc::c_uint = 0;
pub const MAILMIME_DISPOSITION_TYPE_EXTENSION: libc::c_uint = 3;
pub const MAILMIME_DISPOSITION_TYPE_ATTACHMENT: libc::c_uint = 2;
pub const MAILMIME_DISPOSITION_TYPE_INLINE: libc::c_uint = 1;
pub const MAILMIME_DISPOSITION_TYPE_ERROR: libc::c_uint = 0;
pub const MAILMIME_DISPOSITION_PARM_PARAMETER: libc::c_uint = 5;
pub const MAILMIME_DISPOSITION_PARM_SIZE: libc::c_uint = 4;
pub const MAILMIME_DISPOSITION_PARM_READ_DATE: libc::c_uint = 3;
pub const MAILMIME_DISPOSITION_PARM_MODIFICATION_DATE: libc::c_uint = 2;
pub const MAILMIME_DISPOSITION_PARM_CREATION_DATE: libc::c_uint = 1;
pub const MAILMIME_DISPOSITION_PARM_FILENAME: libc::c_uint = 0;
pub const MAILMIME_FIELD_LOCATION: libc::c_uint = 8;
pub const MAILMIME_FIELD_LANGUAGE: libc::c_uint = 7;
pub const MAILMIME_FIELD_DISPOSITION: libc::c_uint = 6;
pub const MAILMIME_FIELD_VERSION: libc::c_uint = 5;
pub const MAILMIME_FIELD_DESCRIPTION: libc::c_uint = 4;
pub const MAILMIME_FIELD_ID: libc::c_uint = 3;
pub const MAILMIME_FIELD_TRANSFER_ENCODING: libc::c_uint = 2;
pub const MAILMIME_FIELD_TYPE: libc::c_uint = 1;
pub const MAILMIME_FIELD_NONE: libc::c_uint = 0;
pub const MAILMIME_TYPE_COMPOSITE_TYPE: libc::c_uint = 2;
pub const MAILMIME_TYPE_DISCRETE_TYPE: libc::c_uint = 1;
pub const MAILMIME_TYPE_ERROR: libc::c_uint = 0;
pub const MAILMIME_DATA_FILE: libc::c_uint = 1;
pub const MAILMIME_DATA_TEXT: libc::c_uint = 0;
pub const MAIL_ERROR_SSL: libc::c_uint = 58;
pub const MAIL_ERROR_FOLDER: libc::c_uint = 57;
pub const MAIL_ERROR_UNABLE: libc::c_uint = 56;
pub const MAIL_ERROR_SYSTEM: libc::c_uint = 55;
pub const MAIL_ERROR_COMMAND: libc::c_uint = 54;
pub const MAIL_ERROR_SEND: libc::c_uint = 53;
pub const MAIL_ERROR_CHAR_ENCODING_FAILED: libc::c_uint = 52;
pub const MAIL_ERROR_SUBJECT_NOT_FOUND: libc::c_uint = 51;
pub const MAIL_ERROR_PROGRAM_ERROR: libc::c_uint = 50;
pub const MAIL_ERROR_NO_PERMISSION: libc::c_uint = 49;
pub const MAIL_ERROR_COMMAND_NOT_SUPPORTED: libc::c_uint = 48;
pub const MAIL_ERROR_NO_APOP: libc::c_uint = 47;
pub const MAIL_ERROR_READONLY: libc::c_uint = 46;
pub const MAIL_ERROR_FATAL: libc::c_uint = 45;
pub const MAIL_ERROR_CLOSE: libc::c_uint = 44;
pub const MAIL_ERROR_CAPABILITY: libc::c_uint = 43;
pub const MAIL_ERROR_PROTOCOL: libc::c_uint = 42;
pub const MAIL_ERROR_MISC: libc::c_uint = 41;
pub const MAIL_ERROR_EXPUNGE: libc::c_uint = 40;
pub const MAIL_ERROR_NO_TLS: libc::c_uint = 39;
pub const MAIL_ERROR_CACHE_MISS: libc::c_uint = 38;
pub const MAIL_ERROR_STARTTLS: libc::c_uint = 37;
pub const MAIL_ERROR_MOVE: libc::c_uint = 36;
pub const MAIL_ERROR_FOLDER_NOT_FOUND: libc::c_uint = 35;
pub const MAIL_ERROR_REMOVE: libc::c_uint = 34;
pub const MAIL_ERROR_PART_NOT_FOUND: libc::c_uint = 33;
pub const MAIL_ERROR_INVAL: libc::c_uint = 32;
pub const MAIL_ERROR_PARSE: libc::c_uint = 31;
pub const MAIL_ERROR_MSG_NOT_FOUND: libc::c_uint = 30;
pub const MAIL_ERROR_DISKSPACE: libc::c_uint = 29;
pub const MAIL_ERROR_SEARCH: libc::c_uint = 28;
pub const MAIL_ERROR_STORE: libc::c_uint = 27;
pub const MAIL_ERROR_FETCH: libc::c_uint = 26;
pub const MAIL_ERROR_COPY: libc::c_uint = 25;
pub const MAIL_ERROR_APPEND: libc::c_uint = 24;
pub const MAIL_ERROR_LSUB: libc::c_uint = 23;
pub const MAIL_ERROR_LIST: libc::c_uint = 22;
pub const MAIL_ERROR_UNSUBSCRIBE: libc::c_uint = 21;
pub const MAIL_ERROR_SUBSCRIBE: libc::c_uint = 20;
pub const MAIL_ERROR_STATUS: libc::c_uint = 19;
pub const MAIL_ERROR_MEMORY: libc::c_uint = 18;
pub const MAIL_ERROR_SELECT: libc::c_uint = 17;
pub const MAIL_ERROR_EXAMINE: libc::c_uint = 16;
pub const MAIL_ERROR_CHECK: libc::c_uint = 15;
pub const MAIL_ERROR_RENAME: libc::c_uint = 14;
pub const MAIL_ERROR_NOOP: libc::c_uint = 13;
pub const MAIL_ERROR_LOGOUT: libc::c_uint = 12;
pub const MAIL_ERROR_DELETE: libc::c_uint = 11;
pub const MAIL_ERROR_CREATE: libc::c_uint = 10;
pub const MAIL_ERROR_LOGIN: libc::c_uint = 9;
pub const MAIL_ERROR_STREAM: libc::c_uint = 8;
pub const MAIL_ERROR_FILE: libc::c_uint = 7;
pub const MAIL_ERROR_BAD_STATE: libc::c_uint = 6;
pub const MAIL_ERROR_CONNECT: libc::c_uint = 5;
pub const MAIL_ERROR_UNKNOWN: libc::c_uint = 4;
pub const MAIL_ERROR_NOT_IMPLEMENTED: libc::c_uint = 3;
pub const MAIL_NO_ERROR_NON_AUTHENTICATED: libc::c_uint = 2;
pub const MAIL_NO_ERROR_AUTHENTICATED: libc::c_uint = 1;
pub const MAIL_NO_ERROR: libc::c_uint = 0;
pub const MAILMIME_MESSAGE: libc::c_uint = 3;
pub const MAILMIME_MULTIPLE: libc::c_uint = 2;
pub const MAILMIME_SINGLE: libc::c_uint = 1;
pub const MAILMIME_NONE: libc::c_uint = 0;
pub const MAILMIME_COMPOSITE_TYPE_EXTENSION: libc::c_int = 3;
pub const MAILMIME_COMPOSITE_TYPE_MULTIPART: libc::c_int = 2;
pub const MAILMIME_COMPOSITE_TYPE_MESSAGE: libc::c_int = 1;
pub const MAILMIME_COMPOSITE_TYPE_ERROR: libc::c_int = 0;
pub const MAILIMF_ERROR_FILE: libc::c_uint = 4;
pub const MAILIMF_ERROR_INVAL: libc::c_uint = 3;
pub const MAILIMF_ERROR_MEMORY: libc::c_uint = 2;
pub const MAILIMF_ERROR_PARSE: libc::c_uint = 1;
pub const MAILIMF_NO_ERROR: libc::c_uint = 0;
pub const MAIL_CHARCONV_ERROR_CONV: libc::c_uint = 3;
pub const MAIL_CHARCONV_ERROR_MEMORY: libc::c_uint = 2;
pub const MAIL_CHARCONV_ERROR_UNKNOWN_CHARSET: libc::c_uint = 1;
pub const MAIL_CHARCONV_NO_ERROR: libc::c_uint = 0;
pub const MAILIMF_ADDRESS_GROUP: libc::c_uint = 2;
pub const MAILIMF_ADDRESS_MAILBOX: libc::c_uint = 1;
pub const MAILIMF_ADDRESS_ERROR: libc::c_uint = 0;
pub const MAILMIME_MECHANISM_TOKEN: libc::c_uint = 6;
pub const MAILMIME_MECHANISM_BASE64: libc::c_uint = 5;
pub const MAILMIME_MECHANISM_QUOTED_PRINTABLE: libc::c_uint = 4;
pub const MAILMIME_MECHANISM_BINARY: libc::c_uint = 3;
pub const MAILMIME_MECHANISM_8BIT: libc::c_uint = 2;
pub const MAILMIME_MECHANISM_7BIT: libc::c_uint = 1;
pub const MAILMIME_MECHANISM_ERROR: libc::c_uint = 0;
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_field {
pub fld_type: libc::c_int,
pub fld_data: field_data,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub union field_data {
pub fld_return_path: *mut mailimf_return,
pub fld_resent_date: *mut mailimf_orig_date,
pub fld_resent_from: *mut mailimf_from,
pub fld_resent_sender: *mut mailimf_sender,
pub fld_resent_to: *mut mailimf_to,
pub fld_resent_cc: *mut mailimf_cc,
pub fld_resent_bcc: *mut mailimf_bcc,
pub fld_resent_msg_id: *mut mailimf_message_id,
pub fld_orig_date: *mut mailimf_orig_date,
pub fld_from: *mut mailimf_from,
pub fld_sender: *mut mailimf_sender,
pub fld_reply_to: *mut mailimf_reply_to,
pub fld_to: *mut mailimf_to,
pub fld_cc: *mut mailimf_cc,
pub fld_bcc: *mut mailimf_bcc,
pub fld_message_id: *mut mailimf_message_id,
pub fld_in_reply_to: *mut mailimf_in_reply_to,
pub fld_references: *mut mailimf_references,
pub fld_subject: *mut mailimf_subject,
pub fld_comments: *mut mailimf_comments,
pub fld_keywords: *mut mailimf_keywords,
pub fld_optional_field: *mut mailimf_optional_field,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime {
pub mm_parent_type: libc::c_int,
pub mm_parent: *mut mailmime,
pub mm_multipart_pos: *mut clistiter,
pub mm_type: libc::c_int,
pub mm_mime_start: *const libc::c_char,
pub mm_length: size_t,
pub mm_mime_fields: *mut mailmime_fields,
pub mm_content_type: *mut mailmime_content,
pub mm_body: *mut mailmime_data,
pub mm_data: unnamed_12n,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub union unnamed_12n {
pub mm_single: *mut mailmime_data,
pub mm_multipart: unnamed_14n,
pub mm_message: unnamed_13n,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct unnamed_13n {
pub mm_fields: *mut mailimf_fields,
pub mm_msg_mime: *mut mailmime,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct unnamed_14n {
pub mm_preamble: *mut mailmime_data,
pub mm_epilogue: *mut mailmime_data,
pub mm_mp_list: *mut clist,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_fields {
pub fld_list: *mut clist,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_content {
pub ct_type: *mut mailmime_type,
pub ct_subtype: *mut libc::c_char,
pub ct_parameters: *mut clist,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_data {
pub dt_type: libc::c_int,
pub dt_encoding: libc::c_int,
pub dt_encoded: libc::c_int,
pub dt_data: unnamed_9n,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub union unnamed_9n {
pub dt_text: unnamed_10n,
pub dt_filename: *mut libc::c_char,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct unnamed_10n {
pub dt_data: *const libc::c_char,
pub dt_length: size_t,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_type {
pub tp_type: libc::c_int,
pub tp_data: unnamed_3n,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub union unnamed_3n {
pub tp_discrete_type: *mut mailmime_discrete_type,
pub tp_composite_type: *mut mailmime_composite_type,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_discrete_type {
pub dt_type: libc::c_int,
pub dt_extension: *mut libc::c_char,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_composite_type {
pub ct_type: libc::c_int,
pub ct_token: *mut libc::c_char,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_optional_field {
pub fld_name: *mut libc::c_char,
pub fld_value: *mut libc::c_char,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_keywords {
pub kw_list: *mut clist,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_comments {
pub cm_value: *mut libc::c_char,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_subject {
pub sbj_value: *mut libc::c_char,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_references {
pub mid_list: *mut clist,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_in_reply_to {
pub mid_list: *mut clist,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_message_id {
pub mid_value: *mut libc::c_char,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_bcc {
pub bcc_addr_list: *mut mailimf_address_list,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_cc {
pub cc_addr_list: *mut mailimf_address_list,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_to {
pub to_addr_list: *mut mailimf_address_list,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_reply_to {
pub rt_addr_list: *mut mailimf_address_list,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_sender {
pub snd_mb: *mut mailimf_mailbox,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_from {
pub frm_mb_list: *mut mailimf_mailbox_list,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_orig_date {
pub dt_date_time: *mut mailimf_date_time,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_return {
pub ret_path: *mut mailimf_path,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_path {
pub pt_addr_spec: *mut libc::c_char,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_mailbox {
pub mb_display_name: *mut libc::c_char,
pub mb_addr_spec: *mut libc::c_char,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_address_list {
pub ad_list: *mut clist,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_mailbox_list {
pub mb_list: *mut clist,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_date_time {
pub dt_day: libc::c_int,
pub dt_month: libc::c_int,
pub dt_year: libc::c_int,
pub dt_hour: libc::c_int,
pub dt_min: libc::c_int,
pub dt_sec: libc::c_int,
pub dt_zone: libc::c_int,
}
pub type __builtin_va_list = [__va_list_tag; 1];
#[derive(Copy, Clone)]
#[repr(C)]
pub struct __va_list_tag {
pub gp_offset: libc::c_uint,
pub fp_offset: libc::c_uint,
pub overflow_arg_area: *mut libc::c_void,
pub reg_save_area: *mut libc::c_void,
}
pub type va_list = __builtin_va_list;
pub type __int64_t = libc::c_longlong;
pub type __darwin_ct_rune_t = libc::c_int;
pub type __darwin_wchar_t = libc::c_int;
pub type __darwin_rune_t = __darwin_wchar_t;
#[derive(Copy, Clone)]
#[repr(C)]
pub struct timespec {
pub tv_sec: libc::time_t,
pub tv_nsec: libc::c_long,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct _RuneEntry {
pub __min: __darwin_rune_t,
pub __max: __darwin_rune_t,
pub __map: __darwin_rune_t,
pub __types: *mut __uint32_t,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct _RuneRange {
pub __nranges: libc::c_int,
pub __ranges: *mut _RuneEntry,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct _RuneCharClass {
pub __name: [libc::c_char; 14],
pub __mask: __uint32_t,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct _RuneLocale {
pub __magic: [libc::c_char; 8],
pub __encoding: [libc::c_char; 32],
pub __sgetrune: Option<
unsafe extern "C" fn(
_: *const libc::c_char,
_: size_t,
_: *mut *const libc::c_char,
) -> __darwin_rune_t,
>,
pub __sputrune: Option<
unsafe extern "C" fn(
_: __darwin_rune_t,
_: *mut libc::c_char,
_: size_t,
_: *mut *mut libc::c_char,
) -> libc::c_int,
>,
pub __invalid_rune: __darwin_rune_t,
pub __runetype: [__uint32_t; 256],
pub __maplower: [__darwin_rune_t; 256],
pub __mapupper: [__darwin_rune_t; 256],
pub __runetype_ext: _RuneRange,
pub __maplower_ext: _RuneRange,
pub __mapupper_ext: _RuneRange,
pub __variable: *mut libc::c_void,
pub __variable_len: libc::c_int,
pub __ncharclasses: libc::c_int,
pub __charclasses: *mut _RuneCharClass,
}
pub type mode_t = libc::mode_t;
pub type off_t = libc::off_t;
pub type uint64_t = libc::c_ulonglong;
pub type uid_t = libc::uid_t;
pub type gid_t = libc::gid_t;
pub type dev_t = libc::dev_t;
pub type blkcnt_t = libc::blkcnt_t;
pub type blksize_t = libc::blksize_t;
pub type nlink_t = __uint16_t;
#[inline]
pub unsafe fn carray_count(mut array: *mut carray) -> libc::c_uint {
return (*array).len;
}
#[inline]
pub unsafe fn carray_get(mut array: *mut carray, mut indx: libc::c_uint) -> *mut libc::c_void {
return *(*array).array.offset(indx as isize);
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_disposition_parm {
pub pa_type: libc::c_int,
pub pa_data: unnamed_20n,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub union unnamed_20n {
pub pa_filename: *mut libc::c_char,
pub pa_creation_date: *mut libc::c_char,
pub pa_modification_date: *mut libc::c_char,
pub pa_read_date: *mut libc::c_char,
pub pa_size: size_t,
pub pa_parameter: *mut mailmime_parameter,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_field {
pub fld_type: libc::c_int,
pub fld_data: unnamed_5n,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub union unnamed_5n {
pub fld_content: *mut mailmime_content,
pub fld_encoding: *mut mailmime_mechanism,
pub fld_id: *mut libc::c_char,
pub fld_description: *mut libc::c_char,
pub fld_version: uint32_t,
pub fld_disposition: *mut mailmime_disposition,
pub fld_language: *mut mailmime_language,
pub fld_location: *mut libc::c_char,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_language {
pub lg_list: *mut clist,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_disposition {
pub dsp_type: *mut mailmime_disposition_type,
pub dsp_parms: *mut clist,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_disposition_type {
pub dsp_type: libc::c_int,
pub dsp_extension: *mut libc::c_char,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_mechanism {
pub enc_type: libc::c_int,
pub enc_token: *mut libc::c_char,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_group {
pub grp_display_name: *mut libc::c_char,
pub grp_mb_list: *mut mailimf_mailbox_list,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailimf_address {
pub ad_type: libc::c_int,
pub ad_data: unnamed_0n,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub union unnamed_0n {
pub ad_mailbox: *mut mailimf_mailbox,
pub ad_group: *mut mailimf_group,
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct mailmime_parameter {
pub pa_name: *mut libc::c_char,
pub pa_value: *mut libc::c_char,
}

265
src/x.rs
View File

@@ -1,5 +1,3 @@
use libc;
use crate::dc_strbuilder::dc_strbuilder_t;
use crate::types::*;
@@ -13,7 +11,7 @@ pub use libc::{
};
extern "C" {
pub static mut _DefaultRuneLocale: _RuneLocale;
// pub static mut _DefaultRuneLocale: _RuneLocale;
pub fn clock() -> libc::clock_t;
pub fn qsort(
@@ -55,267 +53,6 @@ extern "C" {
_: *const libc::c_char,
) -> !;
// --charconv
pub fn charconv(
tocode: *const libc::c_char,
fromcode: *const libc::c_char,
str: *const libc::c_char,
length: size_t,
result: *mut *mut libc::c_char,
) -> libc::c_int;
pub fn charconv_buffer(
tocode: *const libc::c_char,
fromcode: *const libc::c_char,
str: *const libc::c_char,
length: size_t,
result: *mut *mut libc::c_char,
result_len: *mut size_t,
) -> libc::c_int;
pub fn charconv_buffer_free(str: *mut libc::c_char);
// -- libetpan Methods
pub fn mailimap_date_time_new(
dt_day: libc::c_int,
dt_month: libc::c_int,
dt_year: libc::c_int,
dt_hour: libc::c_int,
dt_min: libc::c_int,
dt_sec: libc::c_int,
dt_zone: libc::c_int,
) -> *mut mailimap_date_time;
pub fn mailimf_msg_id_parse(
message: *const libc::c_char,
length: size_t,
indx: *mut size_t,
result: *mut *mut libc::c_char,
) -> libc::c_int;
pub fn mailimf_mailbox_list_free(mb_list: *mut mailimf_mailbox_list);
pub fn mailimf_mailbox_list_parse(
message: *const libc::c_char,
length: size_t,
indx: *mut size_t,
result: *mut *mut mailimf_mailbox_list,
) -> libc::c_int;
pub fn mailmime_base64_body_parse(
message: *const libc::c_char,
length: size_t,
indx: *mut size_t,
result: *mut *mut libc::c_char,
result_len: *mut size_t,
) -> libc::c_int;
pub fn mailimf_address_new(
ad_type: libc::c_int,
ad_mailbox: *mut mailimf_mailbox,
ad_group: *mut mailimf_group,
) -> *mut mailimf_address;
pub fn mailimf_mailbox_new(
mb_display_name: *mut libc::c_char,
mb_addr_spec: *mut libc::c_char,
) -> *mut mailimf_mailbox;
pub fn mailimf_field_new(
fld_type: libc::c_int,
fld_return_path: *mut mailimf_return,
fld_resent_date: *mut mailimf_orig_date,
fld_resent_from: *mut mailimf_from,
fld_resent_sender: *mut mailimf_sender,
fld_resent_to: *mut mailimf_to,
fld_resent_cc: *mut mailimf_cc,
fld_resent_bcc: *mut mailimf_bcc,
fld_resent_msg_id: *mut mailimf_message_id,
fld_orig_date: *mut mailimf_orig_date,
fld_from: *mut mailimf_from,
fld_sender: *mut mailimf_sender,
fld_reply_to: *mut mailimf_reply_to,
fld_to: *mut mailimf_to,
fld_cc: *mut mailimf_cc,
fld_bcc: *mut mailimf_bcc,
fld_message_id: *mut mailimf_message_id,
fld_in_reply_to: *mut mailimf_in_reply_to,
fld_references: *mut mailimf_references,
fld_subject: *mut mailimf_subject,
fld_comments: *mut mailimf_comments,
fld_keywords: *mut mailimf_keywords,
fld_optional_field: *mut mailimf_optional_field,
) -> *mut mailimf_field;
pub fn mailimf_subject_new(sbj_value: *mut libc::c_char) -> *mut mailimf_subject;
pub fn mailimf_mailbox_list_new_empty() -> *mut mailimf_mailbox_list;
pub fn mailimf_mailbox_list_add(
mailbox_list: *mut mailimf_mailbox_list,
mb: *mut mailimf_mailbox,
) -> libc::c_int;
pub fn mailimf_address_list_new_empty() -> *mut mailimf_address_list;
pub fn mailimf_address_list_add(
address_list: *mut mailimf_address_list,
addr: *mut mailimf_address,
) -> libc::c_int;
pub fn mailimf_fields_add(
fields: *mut mailimf_fields,
field: *mut mailimf_field,
) -> libc::c_int;
pub fn mailimf_fields_new_with_data_all(
date: *mut mailimf_date_time,
from: *mut mailimf_mailbox_list,
sender: *mut mailimf_mailbox,
reply_to: *mut mailimf_address_list,
to: *mut mailimf_address_list,
cc: *mut mailimf_address_list,
bcc: *mut mailimf_address_list,
message_id: *mut libc::c_char,
in_reply_to: *mut clist,
references: *mut clist,
subject: *mut libc::c_char,
) -> *mut mailimf_fields;
pub fn mailimf_get_date(time_0: time_t) -> *mut mailimf_date_time;
pub fn mailimf_field_new_custom(
name: *mut libc::c_char,
value: *mut libc::c_char,
) -> *mut mailimf_field;
pub fn mailmime_parameter_new(
pa_name: *mut libc::c_char,
pa_value: *mut libc::c_char,
) -> *mut mailmime_parameter;
pub fn mailmime_free(mime: *mut mailmime);
pub fn mailmime_disposition_parm_new(
pa_type: libc::c_int,
pa_filename: *mut libc::c_char,
pa_creation_date: *mut libc::c_char,
pa_modification_date: *mut libc::c_char,
pa_read_date: *mut libc::c_char,
pa_size: size_t,
pa_parameter: *mut mailmime_parameter,
) -> *mut mailmime_disposition_parm;
pub fn mailmime_new_message_data(msg_mime: *mut mailmime) -> *mut mailmime;
pub fn mailmime_new_empty(
content: *mut mailmime_content,
mime_fields: *mut mailmime_fields,
) -> *mut mailmime;
pub fn mailmime_set_body_file(
build_info: *mut mailmime,
filename: *mut libc::c_char,
) -> libc::c_int;
pub fn mailmime_set_body_text(
build_info: *mut mailmime,
data_str: *mut libc::c_char,
length: size_t,
) -> libc::c_int;
pub fn mailmime_add_part(build_info: *mut mailmime, part: *mut mailmime) -> libc::c_int;
pub fn mailmime_set_imf_fields(build_info: *mut mailmime, fields: *mut mailimf_fields);
pub fn mailmime_smart_add_part(mime: *mut mailmime, mime_sub: *mut mailmime) -> libc::c_int;
pub fn mailmime_content_new_with_str(str: *const libc::c_char) -> *mut mailmime_content;
pub fn mailmime_fields_new_encoding(type_0: libc::c_int) -> *mut mailmime_fields;
pub fn mailmime_multiple_new(type_0: *const libc::c_char) -> *mut mailmime;
pub fn mailmime_fields_new_filename(
dsp_type: libc::c_int,
filename: *mut libc::c_char,
encoding_type: libc::c_int,
) -> *mut mailmime_fields;
pub fn mailmime_param_new_with_data(
name: *mut libc::c_char,
value: *mut libc::c_char,
) -> *mut mailmime_parameter;
pub fn mailmime_write_mem(
f: *mut MMAPString,
col: *mut libc::c_int,
build_info: *mut mailmime,
) -> libc::c_int;
pub fn mailimf_fields_free(fields: *mut mailimf_fields);
pub fn mailimf_fields_new_empty() -> *mut mailimf_fields;
pub fn mailimf_envelope_and_optional_fields_parse(
message: *const libc::c_char,
length: size_t,
indx: *mut size_t,
result: *mut *mut mailimf_fields,
) -> libc::c_int;
pub fn mailmime_content_free(content: *mut mailmime_content);
pub fn mailmime_mechanism_new(
enc_type: libc::c_int,
enc_token: *mut libc::c_char,
) -> *mut mailmime_mechanism;
pub fn mailmime_mechanism_free(mechanism: *mut mailmime_mechanism);
pub fn mailmime_fields_free(fields: *mut mailmime_fields);
pub fn mailmime_new(
mm_type: libc::c_int,
mm_mime_start: *const libc::c_char,
mm_length: size_t,
mm_mime_fields: *mut mailmime_fields,
mm_content_type: *mut mailmime_content,
mm_body: *mut mailmime_data,
mm_preamble: *mut mailmime_data,
mm_epilogue: *mut mailmime_data,
mm_mp_list: *mut clist,
mm_fields: *mut mailimf_fields,
mm_msg_mime: *mut mailmime,
) -> *mut mailmime;
pub fn mailmime_fields_new_empty() -> *mut mailmime_fields;
pub fn mailmime_fields_new_with_data(
encoding: *mut mailmime_mechanism,
id: *mut libc::c_char,
description: *mut libc::c_char,
disposition: *mut mailmime_disposition,
language: *mut mailmime_language,
) -> *mut mailmime_fields;
pub fn mailmime_get_content_message() -> *mut mailmime_content;
pub fn mailmime_parse(
message: *const libc::c_char,
length: size_t,
indx: *mut size_t,
result: *mut *mut mailmime,
) -> libc::c_int;
pub fn mailmime_part_parse(
message: *const libc::c_char,
length: size_t,
indx: *mut size_t,
encoding: libc::c_int,
result: *mut *mut libc::c_char,
result_len: *mut size_t,
) -> libc::c_int;
pub fn mailmime_substitute(old_mime: *mut mailmime, new_mime: *mut mailmime) -> libc::c_int;
pub fn mailprivacy_prepare_mime(mime: *mut mailmime);
pub fn mailmime_encoded_phrase_parse(
default_fromcode: *const libc::c_char,
message: *const libc::c_char,
length: size_t,
indx: *mut size_t,
tocode: *const libc::c_char,
result: *mut *mut libc::c_char,
) -> libc::c_int;
pub fn mailmime_content_charset_get(content: *mut mailmime_content) -> *mut libc::c_char;
pub fn carray_new(initsize: libc::c_uint) -> *mut carray;
pub fn carray_add(
array: *mut carray,
data: *mut libc::c_void,
indx: *mut libc::c_uint,
) -> libc::c_int;
pub fn carray_set_size(array: *mut carray, new_size: libc::c_uint);
pub fn carray_free(array: *mut carray);
pub fn carray_delete_slow(array: *mut carray, indx: libc::c_uint) -> libc::c_int;
pub fn mmap_string_unref(str: *mut libc::c_char) -> libc::c_int;
pub fn mmap_string_new(init: *const libc::c_char) -> *mut MMAPString;
pub fn mmap_string_free(string: *mut MMAPString);
pub fn mmap_string_append(string: *mut MMAPString, val: *const libc::c_char)
-> *mut MMAPString;
pub fn mmap_string_append_len(
string: *mut MMAPString,
val: *const libc::c_char,
len: size_t,
) -> *mut MMAPString;
pub fn mmap_string_append_c(string: *mut MMAPString, c: libc::c_char) -> *mut MMAPString;
pub fn clist_free(_: *mut clist);
pub fn clist_insert_after(
_: *mut clist,
_: *mut clistiter,
_: *mut libc::c_void,
) -> libc::c_int;
pub fn clist_new() -> *mut clist;
pub fn clist_delete(_: *mut clist, _: *mut clistiter) -> *mut clistiter;
pub fn encode_base64(in_0: *const libc::c_char, len: libc::c_int) -> *mut libc::c_char;
// -- DC Methods
pub fn dc_strbuilder_catf(_: *mut dc_strbuilder_t, format: *const libc::c_char, _: ...);