diff --git a/examples/repl/cmdline.rs b/examples/repl/cmdline.rs index 170870881..96889fe45 100644 --- a/examples/repl/cmdline.rs +++ b/examples/repl/cmdline.rs @@ -1,4 +1,5 @@ use std::ffi::CString; +use std::ptr; use std::str::FromStr; use deltachat::chat::{self, Chat}; @@ -94,7 +95,7 @@ pub unsafe fn dc_reset_tables(context: &Context, bits: i32) -> i32 { unsafe fn dc_poke_eml_file(context: &Context, filename: *const libc::c_char) -> libc::c_int { /* mainly for testing, may be called by dc_import_spec() */ let mut success: libc::c_int = 0i32; - let mut data: *mut libc::c_char = 0 as *mut libc::c_char; + let mut data: *mut libc::c_char = ptr::null_mut(); let mut data_bytes: size_t = 0; if !(dc_read_file( context, @@ -128,7 +129,7 @@ unsafe fn poke_spec(context: &Context, spec: *const libc::c_char) -> libc::c_int let ok_to_continue; let mut success: libc::c_int = 0; let real_spec: *mut libc::c_char; - let mut suffix: *mut libc::c_char = 0 as *mut libc::c_char; + let mut suffix: *mut libc::c_char = ptr::null_mut(); let mut read_cnt: libc::c_int = 0; /* if `spec` is given, remember it for later usage; if it is not given, try to use the last one */ @@ -526,17 +527,17 @@ pub unsafe fn dc_cmdline(context: &Context, line: &str) -> Result<(), failure::E } } "export-backup" => { - dc_imex(context, 11, context.get_blobdir(), 0 as *const libc::c_char); + dc_imex(context, 11, context.get_blobdir(), ptr::null()); } "import-backup" => { ensure!(!arg1.is_empty(), "Argument missing."); - dc_imex(context, 12, arg1_c, 0 as *const libc::c_char); + dc_imex(context, 12, arg1_c, ptr::null()); } "export-keys" => { - dc_imex(context, 1, context.get_blobdir(), 0 as *const libc::c_char); + dc_imex(context, 1, context.get_blobdir(), ptr::null()); } "import-keys" => { - dc_imex(context, 2, context.get_blobdir(), 0 as *const libc::c_char); + dc_imex(context, 2, context.get_blobdir(), ptr::null()); } "export-setup" => { let setup_code = dc_create_setup_code(context); @@ -871,7 +872,7 @@ pub unsafe fn dc_cmdline(context: &Context, line: &str) -> Result<(), failure::E Viewtype::File }, ); - dc_msg_set_file(&mut msg, arg1_c, 0 as *const libc::c_char); + dc_msg_set_file(&mut msg, arg1_c, ptr::null()); dc_msg_set_text(&mut msg, arg2_c); chat::send_msg(context, sel_chat.as_ref().unwrap().get_id(), &mut msg)?; } diff --git a/examples/repl/main.rs b/examples/repl/main.rs index 5b5409dd8..f6a19f0e7 100644 --- a/examples/repl/main.rs +++ b/examples/repl/main.rs @@ -14,6 +14,7 @@ extern crate lazy_static; extern crate rusqlite; use std::borrow::Cow::{self, Borrowed, Owned}; +use std::ptr; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::{Arc, Mutex, RwLock}; @@ -384,11 +385,7 @@ impl Highlighter for DcHelper { impl Helper for DcHelper {} fn main_0(args: Vec) -> Result<(), failure::Error> { - let mut context = dc_context_new( - Some(receive_event), - 0 as *mut libc::c_void, - Some("CLI".into()), - ); + let mut context = dc_context_new(Some(receive_event), ptr::null_mut(), Some("CLI".into())); unsafe { dc_cmdline_skip_auth() }; diff --git a/src/configure/auto_outlook.rs b/src/configure/auto_outlook.rs index c476b09dc..52f7e0d4b 100644 --- a/src/configure/auto_outlook.rs +++ b/src/configure/auto_outlook.rs @@ -126,7 +126,7 @@ pub unsafe fn outlk_autodiscover( unsafe fn outlk_clean_config(mut outlk_ad: *mut outlk_autodiscover_t) { for i in 0..6 { free((*outlk_ad).config[i] as *mut libc::c_void); - (*outlk_ad).config[i] = 0 as *mut libc::c_char; + (*outlk_ad).config[i] = ptr::null_mut(); } } diff --git a/src/dc_e2ee.rs b/src/dc_e2ee.rs index 90176df2a..374d3f357 100644 --- a/src/dc_e2ee.rs +++ b/src/dc_e2ee.rs @@ -255,7 +255,7 @@ pub unsafe fn dc_e2ee_encrypt( cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -738,7 +738,7 @@ unsafe fn decrypt_recursive( (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime, private_keyring, public_keyring_for_validate, @@ -766,7 +766,7 @@ unsafe fn decrypt_recursive( cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } *ret_has_unencrypted_parts = 1i32 @@ -1019,7 +1019,7 @@ unsafe fn contains_report(mime: *mut mailmime) -> libc::c_int { cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } else if (*mime).mm_type == MAILMIME_MESSAGE as libc::c_int { @@ -1111,9 +1111,9 @@ Sent with my Delta Chat Messenger: https://delta.chat"; }; unsafe { let msg1 = (*decrypted_mime).mm_data.mm_message.mm_msg_mime; - let mut decoded_data = 0 as *const libc::c_char; + let mut decoded_data = ptr::null(); let mut decoded_data_bytes = 0; - let mut transfer_decoding_buffer: *mut libc::c_char = 0 as *mut libc::c_char; + let mut transfer_decoding_buffer: *mut libc::c_char = ptr::null_mut(); assert_eq!( mailmime_transfer_decode( diff --git a/src/dc_imex.rs b/src/dc_imex.rs index f1f440f69..1d03ff1f7 100644 --- a/src/dc_imex.rs +++ b/src/dc_imex.rs @@ -991,9 +991,9 @@ unsafe fn import_self_keys(context: &Context, dir_name: *const libc::c_char) -> if dc_split_armored_data( buf2, &mut buf2_headerline, - 0 as *mut *const libc::c_char, - 0 as *mut *const libc::c_char, - 0 as *mut *const libc::c_char, + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), ) && strcmp( buf2_headerline, b"-----BEGIN PGP PUBLIC KEY BLOCK-----\x00" as *const u8 as *const libc::c_char, diff --git a/src/dc_mimefactory.rs b/src/dc_mimefactory.rs index 0b5622548..a55a8cb1a 100644 --- a/src/dc_mimefactory.rs +++ b/src/dc_mimefactory.rs @@ -187,7 +187,7 @@ pub unsafe fn dc_mimefactory_load_msg( clist_insert_after( factory.recipients_names, (*factory.recipients_names).last, - 0 as *mut libc::c_void, + ptr::null_mut(), ); clist_insert_after( factory.recipients_addr, @@ -318,7 +318,7 @@ pub unsafe fn dc_mimefactory_load_mdn<'a>( (if !contact.get_authname().is_empty() { contact.get_authname().strdup() } else { - 0 as *mut libc::c_char + ptr::null_mut() }) as *mut libc::c_void, ); clist_insert_after( @@ -339,10 +339,10 @@ pub unsafe fn dc_mimefactory_render(factory: &mut dc_mimefactory_t) -> libc::c_i let subject: *mut mailimf_subject; let mut ok_to_continue = true; let imf_fields: *mut mailimf_fields; - let mut message: *mut mailmime = 0 as *mut mailmime; - let mut message_text: *mut libc::c_char = 0 as *mut libc::c_char; - let mut message_text2: *mut libc::c_char = 0 as *mut libc::c_char; - let mut subject_str: *mut libc::c_char = 0 as *mut libc::c_char; + let mut message: *mut mailmime = ptr::null_mut(); + let mut message_text: *mut libc::c_char = ptr::null_mut(); + let mut message_text2: *mut libc::c_char = ptr::null_mut(); + let mut subject_str: *mut libc::c_char = ptr::null_mut(); let mut afwd_email: libc::c_int = 0; let mut col: libc::c_int = 0; let mut success: libc::c_int = 0; @@ -355,7 +355,7 @@ pub unsafe fn dc_mimefactory_render(factory: &mut dc_mimefactory_t) -> libc::c_i let mut grpimage = None; let mut e2ee_helper = dc_e2ee_helper_t { encryption_successfull: 0, - cdata_to_free: 0 as *mut libc::c_void, + cdata_to_free: ptr::null_mut(), encrypted: 0, signatures: Default::default(), gossipped_addr: Default::default(), @@ -377,12 +377,12 @@ pub unsafe fn dc_mimefactory_render(factory: &mut dc_mimefactory_t) -> libc::c_i if !factory.from_displayname.is_null() { dc_encode_header_words(factory.from_displayname) } else { - 0 as *mut libc::c_char + ptr::null_mut() }, dc_strdup(factory.from_addr), ), ); - let mut to: *mut mailimf_address_list = 0 as *mut mailimf_address_list; + let mut to: *mut mailimf_address_list = ptr::null_mut(); if !factory.recipients_names.is_null() && !factory.recipients_addr.is_null() && (*factory.recipients_addr).count > 0 @@ -396,12 +396,12 @@ pub unsafe fn dc_mimefactory_render(factory: &mut dc_mimefactory_t) -> libc::c_i let name: *const libc::c_char = (if !iter1.is_null() { (*iter1).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *const libc::c_char; let addr: *const libc::c_char = (if !iter2.is_null() { (*iter2).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *const libc::c_char; mailimf_address_list_add( to, @@ -411,33 +411,33 @@ pub unsafe fn dc_mimefactory_render(factory: &mut dc_mimefactory_t) -> libc::c_i if !name.is_null() { dc_encode_header_words(name) } else { - 0 as *mut libc::c_char + ptr::null_mut() }, dc_strdup(addr), ), - 0 as *mut mailimf_group, + ptr::null_mut(), ), ); iter1 = if !iter1.is_null() { (*iter1).next } else { - 0 as *mut clistcell + ptr::null_mut() }; iter2 = if !iter2.is_null() { (*iter2).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } - let mut references_list: *mut clist = 0 as *mut clist; + let mut references_list: *mut clist = ptr::null_mut(); if !factory.references.is_null() && 0 != *factory.references.offset(0isize) as libc::c_int { references_list = dc_str_to_clist( factory.references, b" \x00" as *const u8 as *const libc::c_char, ) } - let mut in_reply_to_list: *mut clist = 0 as *mut clist; + let mut in_reply_to_list: *mut clist = ptr::null_mut(); if !factory.in_reply_to.is_null() && 0 != *factory.in_reply_to.offset(0isize) as libc::c_int { in_reply_to_list = dc_str_to_clist( @@ -448,15 +448,15 @@ pub unsafe fn dc_mimefactory_render(factory: &mut dc_mimefactory_t) -> libc::c_i imf_fields = mailimf_fields_new_with_data_all( mailimf_get_date(factory.timestamp as i64), from, - 0 as *mut mailimf_mailbox, - 0 as *mut mailimf_address_list, + ptr::null_mut(), + ptr::null_mut(), to, - 0 as *mut mailimf_address_list, - 0 as *mut mailimf_address_list, + ptr::null_mut(), + ptr::null_mut(), dc_strdup(factory.rfc724_mid), in_reply_to_list, references_list, - 0 as *mut libc::c_char, + ptr::null_mut(), ); let os_name = &factory.context.os_name; @@ -503,8 +503,8 @@ pub unsafe fn dc_mimefactory_render(factory: &mut dc_mimefactory_t) -> libc::c_i /* Render a normal message *********************************************************************/ let chat = factory.chat.as_ref().unwrap(); - let mut meta_part: *mut mailmime = 0 as *mut mailmime; - let mut placeholdertext: *mut libc::c_char = 0 as *mut libc::c_char; + let mut meta_part: *mut mailmime = ptr::null_mut(); + let mut placeholdertext: *mut libc::c_char = ptr::null_mut(); if chat.typ == Chattype::VerifiedGroup { mailimf_fields_add( imf_fields, @@ -736,7 +736,7 @@ pub unsafe fn dc_mimefactory_render(factory: &mut dc_mimefactory_t) -> libc::c_i meta.type_0 = Viewtype::Image; meta.param.set(Param::File, grpimage); - let mut filename_as_sent = 0 as *mut libc::c_char; + let mut filename_as_sent = ptr::null_mut(); meta_part = build_body_file( &meta, b"group-image\x00" as *const u8 as *const libc::c_char, @@ -785,7 +785,7 @@ pub unsafe fn dc_mimefactory_render(factory: &mut dc_mimefactory_t) -> libc::c_i } } afwd_email = factory.msg.param.exists(Param::Forwarded) as libc::c_int; - let mut fwdhint = 0 as *mut libc::c_char; + let mut fwdhint = ptr::null_mut(); if 0 != afwd_email { fwdhint = dc_strdup( b"---------- Forwarded message ----------\r\nFrom: Delta Chat\r\n\r\n\x00" @@ -850,11 +850,8 @@ pub unsafe fn dc_mimefactory_render(factory: &mut dc_mimefactory_t) -> libc::c_i free(error as *mut libc::c_void); ok_to_continue = false; } else { - let file_part: *mut mailmime = build_body_file( - &factory.msg, - 0 as *const libc::c_char, - 0 as *mut *mut libc::c_char, - ); + let file_part: *mut mailmime = + build_body_file(&factory.msg, ptr::null(), ptr::null_mut()); if !file_part.is_null() { mailmime_smart_add_part(message, file_part); parts += 1 @@ -1011,28 +1008,28 @@ pub unsafe fn dc_mimefactory_render(factory: &mut dc_mimefactory_t) -> libc::c_i imf_fields, mailimf_field_new( MAILIMF_FIELD_SUBJECT as libc::c_int, - 0 as *mut mailimf_return, - 0 as *mut mailimf_orig_date, - 0 as *mut mailimf_from, - 0 as *mut mailimf_sender, - 0 as *mut mailimf_to, - 0 as *mut mailimf_cc, - 0 as *mut mailimf_bcc, - 0 as *mut mailimf_message_id, - 0 as *mut mailimf_orig_date, - 0 as *mut mailimf_from, - 0 as *mut mailimf_sender, - 0 as *mut mailimf_reply_to, - 0 as *mut mailimf_to, - 0 as *mut mailimf_cc, - 0 as *mut mailimf_bcc, - 0 as *mut mailimf_message_id, - 0 as *mut mailimf_in_reply_to, - 0 as *mut mailimf_references, + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), subject, - 0 as *mut mailimf_comments, - 0 as *mut mailimf_keywords, - 0 as *mut mailimf_optional_field, + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), ), ); if force_plaintext != 2 { @@ -1151,7 +1148,7 @@ unsafe fn build_body_file( ) -> *mut mailmime { let needs_ext: bool; let mime_fields: *mut mailmime_fields; - let mut mime_sub: *mut mailmime = 0 as *mut mailmime; + let mut mime_sub: *mut mailmime = ptr::null_mut(); let content: *mut mailmime_content; let path_filename = msg.param.get(Param::File); @@ -1161,8 +1158,8 @@ unsafe fn build_body_file( .map(|s| s.strdup()) .unwrap_or_else(|| std::ptr::null_mut()); - let mut filename_to_send = 0 as *mut libc::c_char; - let mut filename_encoded = 0 as *mut libc::c_char; + let mut filename_to_send = ptr::null_mut(); + let mut filename_encoded = ptr::null_mut(); if let Some(ref path_filename) = path_filename { let suffix = dc_get_filesuffix_lc(path_filename); @@ -1232,7 +1229,7 @@ unsafe fn build_body_file( mime_fields = mailmime_fields_new_filename( MAILMIME_DISPOSITION_TYPE_ATTACHMENT as libc::c_int, if needs_ext { - 0 as *mut libc::c_char + ptr::null_mut() } else { dc_strdup(filename_to_send) }, @@ -1244,7 +1241,7 @@ unsafe fn build_body_file( let field: *mut mailmime_field = (if !cur1.is_null() { (*cur1).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime_field; if !field.is_null() && (*field).fld_type == MAILMIME_FIELD_DISPOSITION as libc::c_int @@ -1256,10 +1253,10 @@ unsafe fn build_body_file( let parm: *mut mailmime_disposition_parm = mailmime_disposition_parm_new( MAILMIME_DISPOSITION_PARM_PARAMETER as libc::c_int, - 0 as *mut libc::c_char, - 0 as *mut libc::c_char, - 0 as *mut libc::c_char, - 0 as *mut libc::c_char, + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), 0 as size_t, mailmime_parameter_new( strdup( @@ -1281,7 +1278,7 @@ unsafe fn build_body_file( cur1 = if !cur1.is_null() { (*cur1).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } diff --git a/src/dc_mimeparser.rs b/src/dc_mimeparser.rs index 9d5bc0813..806d619bf 100644 --- a/src/dc_mimeparser.rs +++ b/src/dc_mimeparser.rs @@ -1,5 +1,6 @@ use std::collections::{HashMap, HashSet}; use std::ffi::{CStr, CString}; +use std::ptr; use charset::Charset; use mmime::mailimf::*; @@ -23,7 +24,6 @@ use crate::param::*; use crate::stock::StockMessage; use crate::types::*; use crate::x::*; -use std::ptr; /* Parse MIME body; this is the text part of an IMF, see https://tools.ietf.org/html/rfc5322 dc_mimeparser_t has no deep dependencies to Context or to the database @@ -92,19 +92,19 @@ unsafe fn dc_mimeparser_empty(mimeparser: &mut dc_mimeparser_t) { dc_mimepart_unref(part); } assert!(mimeparser.parts.is_empty()); - mimeparser.header_root = 0 as *mut mailimf_fields; + mimeparser.header_root = ptr::null_mut(); mimeparser.header.clear(); if !mimeparser.header_protected.is_null() { mailimf_fields_free(mimeparser.header_protected); - mimeparser.header_protected = 0 as *mut mailimf_fields + mimeparser.header_protected = ptr::null_mut() } mimeparser.is_send_by_messenger = false; mimeparser.is_system_message = 0i32; free(mimeparser.subject as *mut libc::c_void); - mimeparser.subject = 0 as *mut libc::c_char; + mimeparser.subject = ptr::null_mut(); if !mimeparser.mimeroot.is_null() { mailmime_free(mimeparser.mimeroot); - mimeparser.mimeroot = 0 as *mut mailmime + mimeparser.mimeroot = ptr::null_mut() } mimeparser.is_forwarded = 0i32; mimeparser.reports.clear(); @@ -118,7 +118,7 @@ unsafe fn dc_mimeparser_empty(mimeparser: &mut dc_mimeparser_t) { unsafe fn dc_mimepart_unref(mut mimepart: dc_mimepart_t) { mimepart.msg = None; free(mimepart.msg_raw as *mut libc::c_void); - mimepart.msg_raw = 0 as *mut libc::c_char; + mimepart.msg_raw = ptr::null_mut(); } const DC_MIMETYPE_AC_SETUP_FILE: i32 = 111; @@ -310,7 +310,7 @@ pub unsafe fn dc_mimeparser_parse<'a>(context: &'a Context, body: &[u8]) -> dc_m "Chat-Disposition-Notification-To", ); if !dn_field.is_null() && dc_mimeparser_get_last_nonmeta(&mut mimeparser).is_some() { - let mut mb_list: *mut mailimf_mailbox_list = 0 as *mut mailimf_mailbox_list; + let mut mb_list: *mut mailimf_mailbox_list = ptr::null_mut(); let mut index_0: size_t = 0i32 as size_t; if mailimf_mailbox_list_parse( (*dn_field).fld_value, @@ -391,14 +391,14 @@ pub fn dc_mimeparser_get_last_nonmeta<'a>( /*the result must be freed*/ pub unsafe fn mailimf_find_first_addr(mb_list: *const mailimf_mailbox_list) -> *mut libc::c_char { if mb_list.is_null() { - return 0 as *mut libc::c_char; + return ptr::null_mut(); } let mut cur: *mut clistiter = (*(*mb_list).mb_list).first; while !cur.is_null() { let mb: *mut mailimf_mailbox = (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailimf_mailbox; if !mb.is_null() && !(*mb).mb_addr_spec.is_null() { return addr_normalize(as_str((*mb).mb_addr_spec)).strdup(); @@ -406,11 +406,11 @@ pub unsafe fn mailimf_find_first_addr(mb_list: *const mailimf_mailbox_list) -> * cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } - 0 as *mut libc::c_char + ptr::null_mut() } /* the following functions can be used only after a call to dc_mimeparser_parse() */ @@ -439,7 +439,7 @@ pub unsafe fn dc_mimeparser_lookup_optional_field( return (*field).fld_data.fld_optional_field; } - 0 as *mut mailimf_optional_field + ptr::null_mut() } unsafe fn dc_mimeparser_parse_mime_recursive( @@ -507,20 +507,17 @@ unsafe fn dc_mimeparser_parse_mime_recursive( // TODO match on enums /rtn 1 => any_part_added = dc_mimeparser_add_single_part_if_known(mimeparser, mime), 2 => { - match mailmime_get_mime_type(mime, ptr::null_mut(), 0 as *mut *mut libc::c_char) { + match mailmime_get_mime_type(mime, ptr::null_mut(), ptr::null_mut()) { 10 => { cur = (*(*mime).mm_data.mm_multipart.mm_mp_list).first; while !cur.is_null() { let childmime: *mut mailmime = (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime; - if mailmime_get_mime_type( - childmime, - ptr::null_mut(), - 0 as *mut *mut libc::c_char, - ) == 30i32 + if mailmime_get_mime_type(childmime, ptr::null_mut(), ptr::null_mut()) + == 30i32 { any_part_added = dc_mimeparser_parse_mime_recursive(mimeparser, childmime); @@ -529,7 +526,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive( cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -539,14 +536,11 @@ unsafe fn dc_mimeparser_parse_mime_recursive( let childmime_0: *mut mailmime = (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime; - if mailmime_get_mime_type( - childmime_0, - ptr::null_mut(), - 0 as *mut *mut libc::c_char, - ) == 60i32 + if mailmime_get_mime_type(childmime_0, ptr::null_mut(), ptr::null_mut()) + == 60i32 { any_part_added = dc_mimeparser_parse_mime_recursive(mimeparser, childmime_0); @@ -555,7 +549,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive( cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -568,7 +562,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive( (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime, ) { any_part_added = 1i32; @@ -578,7 +572,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive( cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -592,7 +586,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive( (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime, ) } @@ -620,7 +614,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive( (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime, ) } @@ -645,15 +639,15 @@ unsafe fn dc_mimeparser_parse_mime_recursive( (if !(*(*mime).mm_data.mm_multipart.mm_mp_list).first.is_null() { (*(*(*mime).mm_data.mm_multipart.mm_mp_list).first).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime, ) } } } _ => { - let mut skip_part: *mut mailmime = 0 as *mut mailmime; - let mut html_part: *mut mailmime = 0 as *mut mailmime; + let mut skip_part: *mut mailmime = ptr::null_mut(); + let mut html_part: *mut mailmime = ptr::null_mut(); let mut plain_cnt: libc::c_int = 0i32; let mut html_cnt: libc::c_int = 0i32; cur = (*(*mime).mm_data.mm_multipart.mm_mp_list).first; @@ -661,20 +655,17 @@ unsafe fn dc_mimeparser_parse_mime_recursive( let childmime_1: *mut mailmime = (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime; - if mailmime_get_mime_type( - childmime_1, - ptr::null_mut(), - 0 as *mut *mut libc::c_char, - ) == 60i32 + if mailmime_get_mime_type(childmime_1, ptr::null_mut(), ptr::null_mut()) + == 60i32 { plain_cnt += 1 } else if mailmime_get_mime_type( childmime_1, ptr::null_mut(), - 0 as *mut *mut libc::c_char, + ptr::null_mut(), ) == 70i32 { html_part = childmime_1; @@ -683,7 +674,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive( cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } if plain_cnt == 1i32 && html_cnt == 1i32 { @@ -699,7 +690,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive( let childmime_2: *mut mailmime = (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime; if childmime_2 != skip_part { @@ -710,7 +701,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive( cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -751,9 +742,9 @@ unsafe fn hash_header( let field: *mut mailimf_field = (if !cur1.is_null() { (*cur1).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailimf_field; - let mut key: *const libc::c_char = 0 as *const libc::c_char; + let mut key: *const libc::c_char = ptr::null(); // TODO match on enums /rtn match (*field).fld_type { 1 => key = b"Return-Path\x00" as *const u8 as *const libc::c_char, @@ -794,7 +785,7 @@ unsafe fn hash_header( cur1 = if !cur1.is_null() { (*cur1).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -962,7 +953,7 @@ unsafe fn mailmime_is_attachment_disposition(mime: *mut mailmime) -> libc::c_int let field: *mut mailmime_field = (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime_field; if !field.is_null() && (*field).fld_type == MAILMIME_FIELD_DISPOSITION as libc::c_int @@ -978,7 +969,7 @@ unsafe fn mailmime_is_attachment_disposition(mime: *mut mailmime) -> libc::c_int cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -996,7 +987,7 @@ pub unsafe fn mailmime_find_ct_parameter( || (*mime).mm_content_type.is_null() || (*(*mime).mm_content_type).ct_parameters.is_null() { - return 0 as *mut mailmime_parameter; + return ptr::null_mut(); } let mut cur: *mut clistiter; cur = (*(*(*mime).mm_content_type).ct_parameters).first; @@ -1004,7 +995,7 @@ pub unsafe fn mailmime_find_ct_parameter( let param: *mut mailmime_parameter = (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime_parameter; if !param.is_null() && !(*param).pa_name.is_null() { if strcmp((*param).pa_name, name) == 0i32 { @@ -1014,11 +1005,11 @@ pub unsafe fn mailmime_find_ct_parameter( cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } - 0 as *mut mailmime_parameter + ptr::null_mut() } unsafe fn dc_mimeparser_add_single_part_if_known( @@ -1029,14 +1020,14 @@ unsafe fn dc_mimeparser_add_single_part_if_known( let old_part_count = mimeparser.parts.len(); let mime_type: libc::c_int; let mime_data: *mut mailmime_data; - let file_suffix: *mut libc::c_char = 0 as *mut libc::c_char; - let mut desired_filename: *mut libc::c_char = 0 as *mut libc::c_char; + let file_suffix: *mut libc::c_char = ptr::null_mut(); + let mut desired_filename: *mut libc::c_char = ptr::null_mut(); let mut msg_type = Viewtype::Unknown; - let mut raw_mime: *mut libc::c_char = 0 as *mut libc::c_char; + let mut raw_mime: *mut libc::c_char = ptr::null_mut(); /* mmap_string_unref()'d if set */ - let mut transfer_decoding_buffer: *mut libc::c_char = 0 as *mut libc::c_char; + let mut transfer_decoding_buffer: *mut libc::c_char = ptr::null_mut(); /* must not be free()'d */ - let mut decoded_data: *const libc::c_char = 0 as *const libc::c_char; + let mut decoded_data: *const libc::c_char = ptr::null(); let mut decoded_data_bytes = 0; let mut simplifier: Option = None; if !(mime.is_null() || (*mime).mm_data.mm_single.is_null()) { @@ -1142,7 +1133,7 @@ unsafe fn dc_mimeparser_add_single_part_if_known( let field: *mut mailmime_field = (if !cur1.is_null() { (*cur1).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime_field; if !field.is_null() @@ -1159,7 +1150,7 @@ unsafe fn dc_mimeparser_add_single_part_if_known( (if !cur2.is_null() { (*cur2).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime_disposition_parm; if !dsp_param.is_null() { @@ -1191,7 +1182,7 @@ unsafe fn dc_mimeparser_add_single_part_if_known( cur2 = if !cur2.is_null() { (*cur2).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -1200,7 +1191,7 @@ unsafe fn dc_mimeparser_add_single_part_if_known( cur1 = if !cur1.is_null() { (*cur1).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -1376,7 +1367,7 @@ pub unsafe fn mailmime_transfer_decode( let decoded_data: *const libc::c_char; let mut decoded_data_bytes: size_t = 0i32 as size_t; /* mmap_string_unref()'d if set */ - let mut transfer_decoding_buffer: *mut libc::c_char = 0 as *mut libc::c_char; + let mut transfer_decoding_buffer: *mut libc::c_char = ptr::null_mut(); if mime.is_null() || ret_decoded_data.is_null() || ret_decoded_data_bytes.is_null() @@ -1395,7 +1386,7 @@ pub unsafe fn mailmime_transfer_decode( let field: *mut mailmime_field = (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime_field; if !field.is_null() && (*field).fld_type == MAILMIME_FIELD_TRANSFER_ENCODING as libc::c_int @@ -1407,7 +1398,7 @@ pub unsafe fn mailmime_transfer_decode( cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -1473,7 +1464,7 @@ pub unsafe fn dc_mimeparser_is_mailinglist_message(mimeparser: &dc_mimeparser_t) pub unsafe fn dc_mimeparser_sender_equals_recipient(mimeparser: &dc_mimeparser_t) -> libc::c_int { let mut sender_equals_recipient: libc::c_int = 0i32; let fld: *const mailimf_field; - let mut fld_from: *const mailimf_from = 0 as *const mailimf_from; + let mut fld_from: *const mailimf_from = ptr::null(); let mb: *mut mailimf_mailbox; if !mimeparser.header_root.is_null() { @@ -1491,7 +1482,7 @@ pub unsafe fn dc_mimeparser_sender_equals_recipient(mimeparser: &dc_mimeparser_t mb = (if !(*(*(*fld_from).frm_mb_list).mb_list).first.is_null() { (*(*(*(*fld_from).frm_mb_list).mb_list).first).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailimf_mailbox; if !mb.is_null() { let from_addr_norm = addr_normalize(as_str((*mb).mb_addr_spec)); @@ -1517,11 +1508,11 @@ pub unsafe fn mailimf_get_recipients(imffields: *mut mailimf_fields) -> HashSet< let fld: *mut mailimf_field = (if !cur1.is_null() { (*cur1).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailimf_field; let fld_to: *mut mailimf_to; let fld_cc: *mut mailimf_cc; - let mut addr_list: *mut mailimf_address_list = 0 as *mut mailimf_address_list; + let mut addr_list: *mut mailimf_address_list = ptr::null_mut(); // TODO match on enums /rtn match (*fld).fld_type { 13 => { @@ -1545,7 +1536,7 @@ pub unsafe fn mailimf_get_recipients(imffields: *mut mailimf_fields) -> HashSet< let adr: *mut mailimf_address = (if !cur2.is_null() { (*cur2).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailimf_address; if !adr.is_null() { if (*adr).ad_type == MAILIMF_ADDRESS_MAILBOX as libc::c_int { @@ -1564,13 +1555,13 @@ pub unsafe fn mailimf_get_recipients(imffields: *mut mailimf_fields) -> HashSet< (if !cur3.is_null() { (*cur3).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailimf_mailbox, ); cur3 = if !cur3.is_null() { (*cur3).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -1579,14 +1570,14 @@ pub unsafe fn mailimf_get_recipients(imffields: *mut mailimf_fields) -> HashSet< cur2 = if !cur2.is_null() { (*cur2).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } cur1 = if !cur1.is_null() { (*cur1).next } else { - 0 as *mut clistcell + ptr::null_mut() } } @@ -1618,14 +1609,14 @@ pub unsafe fn mailimf_find_field( wanted_fld_type: libc::c_int, ) -> *mut mailimf_field { if header.is_null() || (*header).fld_list.is_null() { - return 0 as *mut mailimf_field; + return ptr::null_mut(); } let mut cur1: *mut clistiter = (*(*header).fld_list).first; while !cur1.is_null() { let field: *mut mailimf_field = (if !cur1.is_null() { (*cur1).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailimf_field; if !field.is_null() { if (*field).fld_type == wanted_fld_type { @@ -1635,11 +1626,11 @@ pub unsafe fn mailimf_find_field( cur1 = if !cur1.is_null() { (*cur1).next } else { - 0 as *mut clistcell + ptr::null_mut() } } - 0 as *mut mailimf_field + ptr::null_mut() } pub unsafe fn dc_mimeparser_repl_msg_by_error( @@ -1661,7 +1652,7 @@ pub unsafe fn dc_mimeparser_repl_msg_by_error( /*the result is a pointer to mime, must not be freed*/ pub unsafe fn mailmime_find_mailimf_fields(mime: *mut mailmime) -> *mut mailimf_fields { if mime.is_null() { - return 0 as *mut mailimf_fields; + return ptr::null_mut(); } match (*mime).mm_type as _ { @@ -1672,7 +1663,7 @@ pub unsafe fn mailmime_find_mailimf_fields(mime: *mut mailmime) -> *mut mailimf_ (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime, ); if !header.is_null() { @@ -1681,7 +1672,7 @@ pub unsafe fn mailmime_find_mailimf_fields(mime: *mut mailmime) -> *mut mailimf_ cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -1689,7 +1680,7 @@ pub unsafe fn mailmime_find_mailimf_fields(mime: *mut mailmime) -> *mut mailimf_ _ => {} } - 0 as *mut mailimf_fields + ptr::null_mut() } pub unsafe fn mailimf_find_optional_field( @@ -1697,14 +1688,14 @@ pub unsafe fn mailimf_find_optional_field( wanted_fld_name: *const libc::c_char, ) -> *mut mailimf_optional_field { if header.is_null() || (*header).fld_list.is_null() { - return 0 as *mut mailimf_optional_field; + return ptr::null_mut(); } let mut cur1: *mut clistiter = (*(*header).fld_list).first; while !cur1.is_null() { let field: *mut mailimf_field = (if !cur1.is_null() { (*cur1).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailimf_field; if !field.is_null() && (*field).fld_type == MAILIMF_FIELD_OPTIONAL_FIELD as libc::c_int { let optional_field: *mut mailimf_optional_field = (*field).fld_data.fld_optional_field; @@ -1719,11 +1710,11 @@ pub unsafe fn mailimf_find_optional_field( cur1 = if !cur1.is_null() { (*cur1).next } else { - 0 as *mut clistcell + ptr::null_mut() } } - 0 as *mut mailimf_optional_field + ptr::null_mut() } #[cfg(test)] @@ -1737,7 +1728,7 @@ mod tests { unsafe { let txt: *const libc::c_char = b"FieldA: ValueA\nFieldB: ValueB\n\x00" as *const u8 as *const libc::c_char; - let mut mime: *mut mailmime = 0 as *mut mailmime; + let mut mime: *mut mailmime = ptr::null_mut(); let mut dummy: size_t = 0i32 as size_t; let res = mailmime_parse(txt, strlen(txt), &mut dummy, &mut mime); diff --git a/src/dc_receive_imf.rs b/src/dc_receive_imf.rs index 445b7b0f7..96056699e 100644 --- a/src/dc_receive_imf.rs +++ b/src/dc_receive_imf.rs @@ -696,7 +696,7 @@ unsafe fn add_parts( ])?; free(txt_raw as *mut libc::c_void); - txt_raw = 0 as *mut libc::c_char; + txt_raw = ptr::null_mut(); *insert_msg_id = sql::get_rowid_with_conn( context, conn, @@ -797,7 +797,7 @@ unsafe fn handle_reports( { (*(*(*report_root).mm_data.mm_multipart.mm_mp_list).first).next } else { - 0 as *mut clistcell + ptr::null_mut() } .is_null() { @@ -807,11 +807,11 @@ unsafe fn handle_reports( { (*(*(*report_root).mm_data.mm_multipart.mm_mp_list).first).next } else { - 0 as *mut clistcell + ptr::null_mut() }) .data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailmime; if !report_data.is_null() @@ -1334,7 +1334,7 @@ unsafe fn create_or_lookup_group( } if !X_MrGrpImageChanged.is_null() { let mut ok = 0; - let mut grpimage = 0 as *mut libc::c_char; + let mut grpimage = ptr::null_mut(); if strcmp( X_MrGrpImageChanged, b"0\x00" as *const u8 as *const libc::c_char, @@ -1388,7 +1388,7 @@ unsafe fn create_or_lookup_group( let skip = if !X_MrRemoveFromGrp.is_null() { X_MrRemoveFromGrp } else { - 0 as *mut libc::c_char + ptr::null_mut() }; sql::execute( context, @@ -1470,7 +1470,7 @@ unsafe fn create_or_lookup_adhoc_group( // group matching the to-list or if we can create one let mut chat_id = 0; let mut chat_id_blocked = Blocked::Not; - let mut grpname = 0 as *mut libc::c_char; + let mut grpname = ptr::null_mut(); let cleanup = |grpname: *mut libc::c_char, ret_chat_id: *mut uint32_t, @@ -1908,7 +1908,7 @@ unsafe fn is_known_rfc724_mid_in_list(context: &Context, mid_list: *const clist) (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *const libc::c_char, ) { return 1; @@ -1985,7 +1985,7 @@ unsafe fn is_msgrmsg_rfc724_mid_in_list(context: &Context, mid_list: *const clis (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *const libc::c_char, ) { return 1; @@ -2029,7 +2029,7 @@ unsafe fn dc_add_or_lookup_contacts_by_address_list( let adr: *mut mailimf_address = (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailimf_address; if !adr.is_null() { if (*adr).ad_type == MAILIMF_ADDRESS_MAILBOX as libc::c_int { @@ -2060,7 +2060,7 @@ unsafe fn dc_add_or_lookup_contacts_by_address_list( cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } @@ -2080,7 +2080,7 @@ unsafe fn dc_add_or_lookup_contacts_by_mailbox_list( let mb: *mut mailimf_mailbox = (if !cur.is_null() { (*cur).data } else { - 0 as *mut libc::c_void + ptr::null_mut() }) as *mut mailimf_mailbox; if !mb.is_null() { add_or_lookup_contact_by_addr( @@ -2095,7 +2095,7 @@ unsafe fn dc_add_or_lookup_contacts_by_mailbox_list( cur = if !cur.is_null() { (*cur).next } else { - 0 as *mut clistcell + ptr::null_mut() } } } diff --git a/src/dc_securejoin.rs b/src/dc_securejoin.rs index 216821c66..c481a8b23 100644 --- a/src/dc_securejoin.rs +++ b/src/dc_securejoin.rs @@ -1,5 +1,6 @@ use mmime::mailimf_types::*; use percent_encoding::{utf8_percent_encode, NON_ALPHANUMERIC}; +use std::ptr; use crate::aheader::EncryptPreference; use crate::chat::{self, Chat}; @@ -30,7 +31,7 @@ pub unsafe fn dc_get_securejoin_qr( ==== Step 1 in "Setup verified contact" protocol ==== ========================================================= */ - let mut fingerprint = 0 as *mut libc::c_char; + let mut fingerprint = ptr::null_mut(); let mut invitenumber: *mut libc::c_char; let mut auth: *mut libc::c_char; let mut qr: Option = None; @@ -244,7 +245,7 @@ pub unsafe fn dc_join_securejoin(context: &Context, qr: *const libc::c_char) -> .invitenumber .as_ref() .unwrap(), - 0 as *const libc::c_char, + ptr::null(), "", ); } @@ -270,7 +271,7 @@ pub unsafe fn dc_join_securejoin(context: &Context, qr: *const libc::c_char) -> context, bob.qr_scan.as_ref().unwrap().text2.as_ref().unwrap(), None, - 0 as *mut libc::c_int, + ptr::null_mut(), ) as libc::c_int } else { ret_chat_id = contact_chat_id as libc::c_int @@ -371,7 +372,7 @@ pub unsafe fn dc_handle_securejoin_handshake( let mut current_block: u64; let step: *const libc::c_char; let join_vg: libc::c_int; - let mut own_fingerprint: *mut libc::c_char = 0 as *mut libc::c_char; + let mut own_fingerprint: *mut libc::c_char = ptr::null_mut(); let contact_chat_id: u32; let contact_chat_id_blocked: Blocked; let mut grpid = "".to_string(); @@ -433,7 +434,7 @@ pub unsafe fn dc_handle_securejoin_handshake( b"vc-auth-required\x00" as *const u8 as *const libc::c_char }, "", - 0 as *const libc::c_char, + ptr::null(), "", ); current_block = 10256747982273457880; @@ -636,12 +637,8 @@ pub unsafe fn dc_handle_securejoin_handshake( ); if 0 != join_vg { grpid = to_string(lookup_field(mimeparser, "Secure-Join-Group")); - let group_chat_id: uint32_t = chat::get_chat_id_by_grpid( - context, - &grpid, - None, - 0 as *mut libc::c_int, - ); + let group_chat_id: uint32_t = + chat::get_chat_id_by_grpid(context, &grpid, None, ptr::null_mut()); if group_chat_id == 0i32 as libc::c_uint { error!(context, 0, "Chat {} not found.", &grpid); current_block = 4378276786830486580; @@ -660,7 +657,7 @@ pub unsafe fn dc_handle_securejoin_handshake( contact_chat_id, b"vc-contact-confirm\x00" as *const u8 as *const libc::c_char, "", - 0 as *const libc::c_char, + ptr::null(), "", ); context.call_cb( @@ -813,7 +810,7 @@ pub unsafe fn dc_handle_securejoin_handshake( b"vg-member-added-received\x00" as *const u8 as *const libc::c_char, "", - 0 as *const libc::c_char, + ptr::null(), "", ); } @@ -898,7 +895,7 @@ unsafe fn secure_connection_established(context: &Context, contact_chat_id: uint } unsafe fn lookup_field(mimeparser: &dc_mimeparser_t, key: &str) -> *const libc::c_char { - let mut value: *const libc::c_char = 0 as *const libc::c_char; + let mut value: *const libc::c_char = ptr::null(); let field: *mut mailimf_field = dc_mimeparser_lookup_field(mimeparser, key); if field.is_null() || (*field).fld_type != MAILIMF_FIELD_OPTIONAL_FIELD as libc::c_int @@ -908,7 +905,7 @@ unsafe fn lookup_field(mimeparser: &dc_mimeparser_t, key: &str) -> *const libc:: value.is_null() } { - return 0 as *const libc::c_char; + return ptr::null(); } value diff --git a/src/dc_strencode.rs b/src/dc_strencode.rs index 41b8bc553..8e0ffcf39 100644 --- a/src/dc_strencode.rs +++ b/src/dc_strencode.rs @@ -1,4 +1,5 @@ use std::ffi::{CStr, CString}; +use std::ptr; use charset::Charset; use mmime::mailmime_decode::*; @@ -79,7 +80,7 @@ fn hex_2_int(ch: libc::c_char) -> libc::c_char { pub unsafe fn dc_encode_header_words(to_encode: *const libc::c_char) -> *mut libc::c_char { let mut ok_to_continue = true; - let mut ret_str: *mut libc::c_char = 0 as *mut libc::c_char; + let mut ret_str: *mut libc::c_char = ptr::null_mut(); let mut cur: *const libc::c_char = to_encode; let mmapstr: *mut MMAPString = mmap_string_new(b"\x00" as *const u8 as *const libc::c_char); if to_encode.is_null() || mmapstr.is_null() { @@ -270,9 +271,9 @@ unsafe fn to_be_quoted(word: *const libc::c_char, size: size_t) -> bool { pub unsafe fn dc_decode_header_words(in_0: *const libc::c_char) -> *mut libc::c_char { if in_0.is_null() { - return 0 as *mut libc::c_char; + return ptr::null_mut(); } - let mut out: *mut libc::c_char = 0 as *mut libc::c_char; + let mut out: *mut libc::c_char = ptr::null_mut(); let mut cur_token: size_t = 0i32 as size_t; let r: libc::c_int = mailmime_encoded_phrase_parse( b"iso-8859-1\x00" as *const u8 as *const libc::c_char, @@ -616,8 +617,8 @@ pub unsafe fn dc_encode_ext_header(to_encode: *const libc::c_char) -> *mut libc: } pub unsafe fn dc_decode_ext_header(to_decode: *const libc::c_char) -> *mut libc::c_char { - let mut decoded: *mut libc::c_char = 0 as *mut libc::c_char; - let mut charset: *mut libc::c_char = 0 as *mut libc::c_char; + let mut decoded: *mut libc::c_char = ptr::null_mut(); + let mut charset: *mut libc::c_char = ptr::null_mut(); let mut p2: *const libc::c_char; if !to_decode.is_null() { // get char set diff --git a/src/dc_tools.rs b/src/dc_tools.rs index 0ef03eb20..bb8db8eb4 100644 --- a/src/dc_tools.rs +++ b/src/dc_tools.rs @@ -1424,7 +1424,7 @@ mod tests { ); assert_ne!(str_a, str_a_copy); - let str_a = 0 as *const u8 as *const libc::c_char; + let str_a = ptr::null(); let str_a_copy = dc_strdup_keep_null(str_a); assert_eq!(str_a.is_null(), true); assert_eq!(str_a_copy.is_null(), true); diff --git a/src/job.rs b/src/job.rs index 0b42c5945..949912b1a 100644 --- a/src/job.rs +++ b/src/job.rs @@ -727,7 +727,7 @@ pub unsafe fn job_send_msg(context: &Context, msg_id: uint32_t) -> libc::c_int { clist_insert_after( mimefactory.recipients_names, (*mimefactory.recipients_names).last, - 0 as *mut libc::c_void, + ptr::null_mut(), ); clist_insert_after( mimefactory.recipients_addr, @@ -1020,7 +1020,7 @@ fn send_mdn(context: &Context, msg_id: uint32_t) { fn add_smtp_job(context: &Context, action: Action, mimefactory: &dc_mimefactory_t) -> libc::c_int { let pathNfilename: *mut libc::c_char; let mut success: libc::c_int = 0i32; - let mut recipients: *mut libc::c_char = 0 as *mut libc::c_char; + let mut recipients: *mut libc::c_char = ptr::null_mut(); let mut param = Params::new(); pathNfilename = unsafe { dc_get_fine_pathNfilename( diff --git a/src/message.rs b/src/message.rs index acd642880..2d109bae3 100644 --- a/src/message.rs +++ b/src/message.rs @@ -378,7 +378,7 @@ pub fn dc_msg_guess_msgtype_from_suffix(path: &Path) -> Option<(Viewtype, &str)> } pub unsafe fn dc_msg_get_file(msg: &Message) -> *mut libc::c_char { - let mut file_abs = 0 as *mut libc::c_char; + let mut file_abs = ptr::null_mut(); if let Some(file_rel) = msg.param.get(Param::File) { file_abs = dc_get_abs_path(msg.context, file_rel); @@ -687,7 +687,7 @@ pub unsafe fn dc_msg_get_text(msg: &Message) -> *mut libc::c_char { #[allow(non_snake_case)] pub unsafe fn dc_msg_get_filename(msg: &Message) -> *mut libc::c_char { - let mut ret = 0 as *mut libc::c_char; + let mut ret = ptr::null_mut(); if let Some(file) = msg.param.get(Param::File) { ret = dc_get_filename(file); @@ -895,14 +895,14 @@ pub fn dc_msg_is_setupmessage(msg: &Message) -> bool { } pub unsafe fn dc_msg_get_setupcodebegin(msg: &Message) -> *mut libc::c_char { - let mut filename: *mut libc::c_char = 0 as *mut libc::c_char; - let mut buf: *mut libc::c_char = 0 as *mut libc::c_char; + let mut filename: *mut libc::c_char = ptr::null_mut(); + let mut buf: *mut libc::c_char = ptr::null_mut(); let mut buf_bytes: size_t = 0i32 as size_t; // just a pointer inside buf, MUST NOT be free()'d - let mut buf_headerline: *const libc::c_char = 0 as *const libc::c_char; + let mut buf_headerline: *const libc::c_char = ptr::null(); // just a pointer inside buf, MUST NOT be free()'d - let mut buf_setupcodebegin: *const libc::c_char = 0 as *const libc::c_char; - let mut ret: *mut libc::c_char = 0 as *mut libc::c_char; + let mut buf_setupcodebegin: *const libc::c_char = ptr::null(); + let mut ret: *mut libc::c_char = ptr::null_mut(); if dc_msg_is_setupmessage(msg) { filename = dc_msg_get_file(msg); if !(filename.is_null() || *filename.offset(0isize) as libc::c_int == 0i32) { @@ -920,8 +920,8 @@ pub unsafe fn dc_msg_get_setupcodebegin(msg: &Message) -> *mut libc::c_char { buf, &mut buf_headerline, &mut buf_setupcodebegin, - 0 as *mut *const libc::c_char, - 0 as *mut *const libc::c_char, + ptr::null_mut(), + ptr::null_mut(), ) && strcmp( buf_headerline, b"-----BEGIN PGP MESSAGE-----\x00" as *const u8 as *const libc::c_char, @@ -1263,7 +1263,7 @@ pub fn dc_rfc724_mid_exists( Ok(res) => res, Err(_err) => { if !ret_server_folder.is_null() { - unsafe { *ret_server_folder = 0 as *mut libc::c_char }; + unsafe { *ret_server_folder = ptr::null_mut() }; } if !ret_server_uid.is_null() { unsafe { *ret_server_uid = 0 }; diff --git a/src/pgp.rs b/src/pgp.rs index eb36d95e1..4ed43edea 100644 --- a/src/pgp.rs +++ b/src/pgp.rs @@ -33,7 +33,7 @@ pub unsafe fn dc_split_armored_data( let mut headerline: *mut libc::c_char = ptr::null_mut(); let mut base64: *mut libc::c_char = ptr::null_mut(); if !ret_headerline.is_null() { - *ret_headerline = 0 as *const libc::c_char + *ret_headerline = ptr::null() } if !ret_setupcodebegin.is_null() { *ret_setupcodebegin = ptr::null_mut(); diff --git a/tests/stress.rs b/tests/stress.rs index b825a8aa5..3795f98d7 100644 --- a/tests/stress.rs +++ b/tests/stress.rs @@ -2,6 +2,7 @@ use std::collections::HashSet; use std::ffi::CString; +use std::ptr; use tempfile::{tempdir, TempDir}; @@ -68,7 +69,7 @@ unsafe fn stress_functions(context: &Context) { assert!(dc_copy_file(context, "$BLOBDIR/foobar", "$BLOBDIR/dada",)); assert_eq!(dc_get_filebytes(context, "$BLOBDIR/dada",), 7); - let mut buf: *mut libc::c_void = 0 as *mut libc::c_void; + let mut buf: *mut libc::c_void = ptr::null_mut(); let mut buf_bytes: size_t = 0; assert_eq!( @@ -161,10 +162,10 @@ unsafe fn stress_functions(context: &Context) { assert!(res.contains(" configured_server_flags ")); let mut buf_0: *mut libc::c_char; - let mut headerline: *const libc::c_char = 0 as *const libc::c_char; - let mut setupcodebegin: *const libc::c_char = 0 as *const libc::c_char; - let mut preferencrypt: *const libc::c_char = 0 as *const libc::c_char; - let mut base64: *const libc::c_char = 0 as *const libc::c_char; + let mut headerline: *const libc::c_char = ptr::null(); + let mut setupcodebegin: *const libc::c_char = ptr::null(); + let mut preferencrypt: *const libc::c_char = ptr::null(); + let mut base64: *const libc::c_char = ptr::null(); buf_0 = strdup( b"-----BEGIN PGP MESSAGE-----\nNoVal:\n\ndata\n-----END PGP MESSAGE-----\x00" as *const u8 as *const libc::c_char, @@ -173,7 +174,7 @@ unsafe fn stress_functions(context: &Context) { buf_0, &mut headerline, &mut setupcodebegin, - 0 as *mut *const libc::c_char, + ptr::null_mut(), &mut base64, ); assert!(ok); @@ -198,7 +199,7 @@ unsafe fn stress_functions(context: &Context) { buf_0, &mut headerline, &mut setupcodebegin, - 0 as *mut *const libc::c_char, + ptr::null_mut(), &mut base64, ); @@ -225,7 +226,7 @@ unsafe fn stress_functions(context: &Context) { buf_0, &mut headerline, &mut setupcodebegin, - 0 as *mut *const libc::c_char, + ptr::null_mut(), &mut base64, ); @@ -250,7 +251,7 @@ unsafe fn stress_functions(context: &Context) { buf_0, &mut headerline, &mut setupcodebegin, - 0 as *mut *const libc::c_char, + ptr::null_mut(), &mut base64, ); @@ -263,7 +264,7 @@ unsafe fn stress_functions(context: &Context) { buf_0, &mut headerline, &mut setupcodebegin, - 0 as *mut *const libc::c_char, + ptr::null_mut(), &mut base64, ); assert!(ok); @@ -296,7 +297,7 @@ unsafe fn stress_functions(context: &Context) { let ok = dc_split_armored_data( buf_0, &mut headerline, - 0 as *mut *const libc::c_char, + ptr::null_mut(), &mut preferencrypt, &mut base64, ); @@ -352,16 +353,16 @@ unsafe fn stress_functions(context: &Context) { ); free(norm as *mut libc::c_void); let mut buf_1: *mut libc::c_char; - let mut headerline_0: *const libc::c_char = 0 as *const libc::c_char; - let mut setupcodebegin_0: *const libc::c_char = 0 as *const libc::c_char; - let mut preferencrypt_0: *const libc::c_char = 0 as *const libc::c_char; + let mut headerline_0: *const libc::c_char = ptr::null(); + let mut setupcodebegin_0: *const libc::c_char = ptr::null(); + let mut preferencrypt_0: *const libc::c_char = ptr::null(); buf_1 = strdup(S_EM_SETUPFILE); assert!(dc_split_armored_data( buf_1, &mut headerline_0, &mut setupcodebegin_0, &mut preferencrypt_0, - 0 as *mut *const libc::c_char, + ptr::null_mut(), )); assert!(!headerline_0.is_null()); assert_eq!( @@ -387,7 +388,7 @@ unsafe fn stress_functions(context: &Context) { &mut headerline_0, &mut setupcodebegin_0, &mut preferencrypt_0, - 0 as *mut *const libc::c_char, + ptr::null_mut(), )); assert!(!headerline_0.is_null()); assert_eq!( @@ -415,16 +416,16 @@ unsafe fn stress_functions(context: &Context) { // let setupcode_c = CString::yolo(setupcode.clone()); // let setupfile = dc_render_setup_file(context, &setupcode).unwrap(); // let setupfile_c = CString::yolo(setupfile); - // let mut headerline_2: *const libc::c_char = 0 as *const libc::c_char; + // let mut headerline_2: *const libc::c_char = ptr::null(); // let payload = dc_decrypt_setup_file(context, setupcode_c.as_ptr(), setupfile_c.as_ptr()); // assert!(payload.is_null()); // assert!(!dc_split_armored_data( // payload, // &mut headerline_2, - // 0 as *mut *const libc::c_char, - // 0 as *mut *const libc::c_char, - // 0 as *mut *const libc::c_char, + // ptr::null_mut(), + // ptr::null_mut(), + // ptr::null_mut(), // )); // assert!(!headerline_2.is_null()); // assert_eq!(