From 83917ef93e9d2e829e201ab51ba4e47450589af3 Mon Sep 17 00:00:00 2001 From: dignifiedquire Date: Tue, 7 May 2019 10:45:46 +0100 Subject: [PATCH] wip - use mmime instead of libetpan --- Cargo.toml | 1 + build.rs | 38 --- examples/repl/cmdline.rs | 1 - examples/repl/main.rs | 2 - src/dc_aheader.rs | 4 +- src/dc_apeerstate.rs | 2 - src/dc_array.rs | 2 - src/dc_chat.rs | 2 - src/dc_chatlist.rs | 2 - src/dc_configure.rs | 2 - src/dc_contact.rs | 2 - src/dc_context.rs | 1 - src/dc_dehtml.rs | 2 - src/dc_e2ee.rs | 18 +- src/dc_hash.rs | 2 - src/dc_imap.rs | 2 - src/dc_imex.rs | 1 - src/dc_job.rs | 1 - src/dc_jobthread.rs | 2 - src/dc_jsmn.rs | 2 - src/dc_key.rs | 2 - src/dc_keyhistory.rs | 2 - src/dc_keyring.rs | 2 - src/dc_location.rs | 2 - src/dc_log.rs | 2 - src/dc_loginparam.rs | 2 - src/dc_lot.rs | 2 - src/dc_mimefactory.rs | 8 +- src/dc_mimeparser.rs | 38 ++- src/dc_move.rs | 2 - src/dc_msg.rs | 2 - src/dc_oauth2.rs | 2 - src/dc_param.rs | 2 - src/dc_pgp.rs | 2 - src/dc_qr.rs | 2 - src/dc_receive_imf.rs | 14 +- src/dc_saxparser.rs | 2 - src/dc_securejoin.rs | 2 - src/dc_simplify.rs | 2 - src/dc_smtp.rs | 1 - src/dc_sqlite3.rs | 2 - src/dc_stock.rs | 2 - src/dc_strbuilder.rs | 2 - src/dc_strencode.rs | 2 - src/dc_token.rs | 2 - src/dc_tools.rs | 69 +--- src/types.rs | 660 ++------------------------------------- src/x.rs | 265 +--------------- 48 files changed, 68 insertions(+), 1118 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 9eb29740b..83fca72cf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,6 +25,7 @@ native-tls = "0.2.3" lettre = "0.9.0" imap = "1.0.1" # rental = "0.5.3" +mmime = { path = "../mmime" } [dev-dependencies] tempfile = "3.0.7" diff --git a/build.rs b/build.rs index 91b08f231..879bff2a3 100644 --- a/build.rs +++ b/build.rs @@ -29,54 +29,16 @@ fn main() { build_tools(); add_search_path("/usr/local/lib"); - add_search_path("./include/include"); - add_search_path("./include/libs"); let target = std::env::var("TARGET").unwrap(); if target.contains("-apple") || target.contains("-darwin") { - link_static("etpan"); - link_dylib("iconv"); - link_framework("CoreFoundation"); link_framework("CoreServices"); link_framework("Security"); - link_dylib("sasl2"); - link_dylib("z"); link_dylib("pthread"); } else if target.contains("-android") { - add_search_path("./include/cyrus-sasl-android-4/include"); - add_search_path("./include/openssl-android-3/include"); - add_search_path("./include/iconv-android-1/include"); - - let arch = if target.contains("x86") { - "x86" - } else if target.contains("64") { - "arm64-v8a" - } else if target.contains("v7") { - "armeabi-v7a" - } else { - "armeabi" - }; - - add_search_path(&format!("./include/libs/{}", arch)); - add_search_path(&format!("./include/iconv-android-1/libs/{}", arch)); - add_search_path(&format!("./include/openssl-android-3/libs/{}", arch)); - add_search_path(&format!("./include/cyrus-sasl-android-4/libs/{}", arch)); - - // dependencies for libetpan - link_static("crypto"); - link_static("sasl2"); - link_static("iconv"); - link_static("ssl"); - link_dylib("z"); - - // libetpan iteself - link_static("etpan"); } else if target.contains("-linux") { - link_dylib("etpan"); - link_dylib("sasl2"); - link_dylib("z"); link_dylib("pthread"); } else { panic!("unsupported target"); diff --git a/examples/repl/cmdline.rs b/examples/repl/cmdline.rs index a840c5538..abbc148cd 100644 --- a/examples/repl/cmdline.rs +++ b/examples/repl/cmdline.rs @@ -46,7 +46,6 @@ use deltachat::dc_token::*; use deltachat::dc_tools::*; use deltachat::types::*; use deltachat::x::*; -use libc; use num_traits::FromPrimitive; /* diff --git a/examples/repl/main.rs b/examples/repl/main.rs index 0163906fa..5b1eb6702 100644 --- a/examples/repl/main.rs +++ b/examples/repl/main.rs @@ -67,8 +67,6 @@ use deltachat::dc_token::*; use deltachat::dc_tools::*; use deltachat::types::*; use deltachat::x::*; -use libc; - mod cmdline; use self::cmdline::*; diff --git a/src/dc_aheader.rs b/src/dc_aheader.rs index 8afc8ae12..93bbb92b3 100644 --- a/src/dc_aheader.rs +++ b/src/dc_aheader.rs @@ -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 } } diff --git a/src/dc_apeerstate.rs b/src/dc_apeerstate.rs index b69558d97..ef538d5ee 100644 --- a/src/dc_apeerstate.rs +++ b/src/dc_apeerstate.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_aheader::*; use crate::dc_chat::*; use crate::dc_context::dc_context_t; diff --git a/src/dc_array.rs b/src/dc_array.rs index 7088a8261..cf03b0b60 100644 --- a/src/dc_array.rs +++ b/src/dc_array.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_context::*; use crate::dc_tools::*; use crate::types::*; diff --git a/src/dc_chat.rs b/src/dc_chat.rs index 499cbb238..d30dc4d63 100644 --- a/src/dc_chat.rs +++ b/src/dc_chat.rs @@ -1,5 +1,3 @@ -use libc; - use crate::constants::*; use crate::dc_array::*; use crate::dc_chatlist::*; diff --git a/src/dc_chatlist.rs b/src/dc_chatlist.rs index 7b9cfa927..bf3d7b10a 100644 --- a/src/dc_chatlist.rs +++ b/src/dc_chatlist.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_array::*; use crate::dc_chat::*; use crate::dc_contact::*; diff --git a/src/dc_configure.rs b/src/dc_configure.rs index 1723883e8..d0811637d 100644 --- a/src/dc_configure.rs +++ b/src/dc_configure.rs @@ -1,5 +1,3 @@ -use libc; - use crate::constants::Event; use crate::dc_context::dc_context_t; use crate::dc_e2ee::*; diff --git a/src/dc_contact.rs b/src/dc_contact.rs index 7cbfda885..6e35c22e3 100644 --- a/src/dc_contact.rs +++ b/src/dc_contact.rs @@ -1,5 +1,3 @@ -use libc; - use crate::constants::Event; use crate::dc_apeerstate::*; use crate::dc_array::*; diff --git a/src/dc_context.rs b/src/dc_context.rs index 821e50d34..2e5504f53 100644 --- a/src/dc_context.rs +++ b/src/dc_context.rs @@ -1,4 +1,3 @@ -use libc; use std::sync::{Arc, Condvar, Mutex, RwLock}; use crate::constants::*; diff --git a/src/dc_dehtml.rs b/src/dc_dehtml.rs index 082063a0d..dd270dacc 100644 --- a/src/dc_dehtml.rs +++ b/src/dc_dehtml.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_saxparser::*; use crate::dc_strbuilder::*; use crate::dc_tools::*; diff --git a/src/dc_e2ee.rs b/src/dc_e2ee.rs index c02024b38..c4c7a5821 100644 --- a/src/dc_e2ee.rs +++ b/src/dc_e2ee.rs @@ -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 { diff --git a/src/dc_hash.rs b/src/dc_hash.rs index 9a5f4178d..a0e76d535 100644 --- a/src/dc_hash.rs +++ b/src/dc_hash.rs @@ -1,5 +1,3 @@ -use libc; - use crate::types::*; use crate::x::*; diff --git a/src/dc_imap.rs b/src/dc_imap.rs index 42b4aacf3..9d45b0f6f 100644 --- a/src/dc_imap.rs +++ b/src/dc_imap.rs @@ -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::*; diff --git a/src/dc_imex.rs b/src/dc_imex.rs index c5f107e99..862a39a57 100644 --- a/src/dc_imex.rs +++ b/src/dc_imex.rs @@ -1,4 +1,3 @@ -use libc; use rand::{thread_rng, Rng}; use crate::constants::Event; diff --git a/src/dc_job.rs b/src/dc_job.rs index 875a69157..fc14c27bb 100644 --- a/src/dc_job.rs +++ b/src/dc_job.rs @@ -1,7 +1,6 @@ use std::ffi::CStr; use std::time::{Duration, SystemTime}; -use libc; use rand::{thread_rng, Rng}; use crate::constants::Event; diff --git a/src/dc_jobthread.rs b/src/dc_jobthread.rs index d70cfcc2d..d223c7a5e 100644 --- a/src/dc_jobthread.rs +++ b/src/dc_jobthread.rs @@ -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; diff --git a/src/dc_jsmn.rs b/src/dc_jsmn.rs index f0cfeb543..4db16f99c 100644 --- a/src/dc_jsmn.rs +++ b/src/dc_jsmn.rs @@ -1,5 +1,3 @@ -use libc; - use crate::types::*; /* diff --git a/src/dc_key.rs b/src/dc_key.rs index a2dc77b42..d04ab933f 100644 --- a/src/dc_key.rs +++ b/src/dc_key.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_context::dc_context_t; use crate::dc_log::*; use crate::dc_pgp::*; diff --git a/src/dc_keyhistory.rs b/src/dc_keyhistory.rs index a83fb888e..beb077042 100644 --- a/src/dc_keyhistory.rs +++ b/src/dc_keyhistory.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_context::dc_context_t; use crate::types::*; diff --git a/src/dc_keyring.rs b/src/dc_keyring.rs index 361739f74..81bc280ab 100644 --- a/src/dc_keyring.rs +++ b/src/dc_keyring.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_context::dc_context_t; use crate::dc_key::*; use crate::dc_sqlite3::*; diff --git a/src/dc_location.rs b/src/dc_location.rs index b6bc4a407..8e5d820a4 100644 --- a/src/dc_location.rs +++ b/src/dc_location.rs @@ -1,5 +1,3 @@ -use libc; - use crate::constants::Event; use crate::dc_array::*; use crate::dc_chat::*; diff --git a/src/dc_log.rs b/src/dc_log.rs index dd199c71a..82ef65866 100644 --- a/src/dc_log.rs +++ b/src/dc_log.rs @@ -1,5 +1,3 @@ -use libc; - use crate::constants::Event; use crate::dc_context::dc_context_t; use crate::dc_tools::*; diff --git a/src/dc_loginparam.rs b/src/dc_loginparam.rs index 6088e5227..b9cc29a87 100644 --- a/src/dc_loginparam.rs +++ b/src/dc_loginparam.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_context::dc_context_t; use crate::dc_sqlite3::*; use crate::dc_strbuilder::*; diff --git a/src/dc_lot.rs b/src/dc_lot.rs index b74f25a21..e548d47b4 100644 --- a/src/dc_lot.rs +++ b/src/dc_lot.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_chat::*; use crate::dc_contact::*; use crate::dc_context::dc_context_t; diff --git a/src/dc_mimefactory.rs b/src/dc_mimefactory.rs index 4894f6ee7..6b93f6e83 100644 --- a/src/dc_mimefactory.rs +++ b/src/dc_mimefactory.rs @@ -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 } } } diff --git a/src/dc_mimeparser.rs b/src/dc_mimeparser.rs index 879ac408b..3fb1d7b41 100644 --- a/src/dc_mimeparser.rs +++ b/src/dc_mimeparser.rs @@ -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 } } diff --git a/src/dc_move.rs b/src/dc_move.rs index ca2092315..384af8116 100644 --- a/src/dc_move.rs +++ b/src/dc_move.rs @@ -1,5 +1,3 @@ -use libc; - use crate::constants::*; use crate::dc_context::*; use crate::dc_job::*; diff --git a/src/dc_msg.rs b/src/dc_msg.rs index ddc6bb5c0..f277802b5 100644 --- a/src/dc_msg.rs +++ b/src/dc_msg.rs @@ -1,5 +1,3 @@ -use libc; - use crate::constants::Event; use crate::dc_chat::*; use crate::dc_contact::*; diff --git a/src/dc_oauth2.rs b/src/dc_oauth2.rs index a03b2c29a..9d47e3e45 100644 --- a/src/dc_oauth2.rs +++ b/src/dc_oauth2.rs @@ -1,5 +1,3 @@ -use libc; - use crate::constants::Event; use crate::dc_contact::*; use crate::dc_context::dc_context_t; diff --git a/src/dc_param.rs b/src/dc_param.rs index 0a212f7ff..6ccf9f55c 100644 --- a/src/dc_param.rs +++ b/src/dc_param.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_tools::*; use crate::types::*; use crate::x::*; diff --git a/src/dc_pgp.rs b/src/dc_pgp.rs index 3f62f400d..6796276ce 100644 --- a/src/dc_pgp.rs +++ b/src/dc_pgp.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_context::dc_context_t; use crate::dc_hash::*; use crate::dc_key::*; diff --git a/src/dc_qr.rs b/src/dc_qr.rs index 597615e9d..9bd5ec2ca 100644 --- a/src/dc_qr.rs +++ b/src/dc_qr.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_apeerstate::*; use crate::dc_chat::*; use crate::dc_contact::*; diff --git a/src/dc_receive_imf.rs b/src/dc_receive_imf.rs index 9f81f15bf..85473ca46 100644 --- a/src/dc_receive_imf.rs +++ b/src/dc_receive_imf.rs @@ -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 } } } diff --git a/src/dc_saxparser.rs b/src/dc_saxparser.rs index a2f2e52e0..a78994fdc 100644 --- a/src/dc_saxparser.rs +++ b/src/dc_saxparser.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_tools::*; use crate::types::*; use crate::x::*; diff --git a/src/dc_securejoin.rs b/src/dc_securejoin.rs index 5634fb551..780a99666 100644 --- a/src/dc_securejoin.rs +++ b/src/dc_securejoin.rs @@ -1,5 +1,3 @@ -use libc; - use crate::constants::Event; use crate::dc_apeerstate::*; use crate::dc_array::*; diff --git a/src/dc_simplify.rs b/src/dc_simplify.rs index 9324720c3..340b9ccd1 100644 --- a/src/dc_simplify.rs +++ b/src/dc_simplify.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_dehtml::*; use crate::dc_strbuilder::*; use crate::dc_tools::*; diff --git a/src/dc_smtp.rs b/src/dc_smtp.rs index f4538d5c8..b2d0f1783 100644 --- a/src/dc_smtp.rs +++ b/src/dc_smtp.rs @@ -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; diff --git a/src/dc_sqlite3.rs b/src/dc_sqlite3.rs index deba2b9fd..c13ba0a97 100644 --- a/src/dc_sqlite3.rs +++ b/src/dc_sqlite3.rs @@ -1,5 +1,3 @@ -use libc; - use crate::constants::*; use crate::dc_apeerstate::*; use crate::dc_context::dc_context_t; diff --git a/src/dc_stock.rs b/src/dc_stock.rs index eea4e53c7..195dced53 100644 --- a/src/dc_stock.rs +++ b/src/dc_stock.rs @@ -1,5 +1,3 @@ -use libc; - use crate::constants::Event; use crate::dc_contact::*; use crate::dc_context::dc_context_t; diff --git a/src/dc_strbuilder.rs b/src/dc_strbuilder.rs index 2b729935f..5f6974a98 100644 --- a/src/dc_strbuilder.rs +++ b/src/dc_strbuilder.rs @@ -1,5 +1,3 @@ -use libc; - use crate::x::*; #[derive(Copy, Clone)] diff --git a/src/dc_strencode.rs b/src/dc_strencode.rs index e2fb06063..7ee42c395 100644 --- a/src/dc_strencode.rs +++ b/src/dc_strencode.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_tools::*; use crate::types::*; use crate::x::*; diff --git a/src/dc_token.rs b/src/dc_token.rs index 37677deb5..6818a6d79 100644 --- a/src/dc_token.rs +++ b/src/dc_token.rs @@ -1,5 +1,3 @@ -use libc; - use crate::dc_context::dc_context_t; use crate::dc_sqlite3::*; use crate::dc_tools::*; diff --git a/src/dc_tools.rs b/src/dc_tools.rs index 66657cd34..fa75e3a1e 100644 --- a/src/dc_tools.rs +++ b/src/dc_tools.rs @@ -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, diff --git a/src/types.rs b/src/types.rs index 2b310cfb2..7134e8a2f 100644 --- a/src/types.rs +++ b/src/types.rs @@ -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, -} diff --git a/src/x.rs b/src/x.rs index 4a526a019..9d74ddc11 100644 --- a/src/x.rs +++ b/src/x.rs @@ -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, _: ...);