mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 09:26:29 +03:00
Make stock strings rusty
This converts the stock strings API to be more safe-rust style. The API is kept roughly the same for now but moved to methods on the context.
This commit is contained in:
committed by
Floris Bruynooghe
parent
44b8629811
commit
4902310138
@@ -19,11 +19,11 @@ use crate::dc_move::*;
|
||||
use crate::dc_msg::*;
|
||||
use crate::dc_param::*;
|
||||
use crate::dc_securejoin::*;
|
||||
use crate::dc_stock::*;
|
||||
use crate::dc_strencode::*;
|
||||
use crate::dc_tools::*;
|
||||
use crate::peerstate::*;
|
||||
use crate::sql;
|
||||
use crate::stock::StockMessage;
|
||||
use crate::types::*;
|
||||
use crate::x::*;
|
||||
|
||||
@@ -944,18 +944,13 @@ unsafe fn create_or_lookup_group(
|
||||
let mut X_MrAddToGrp: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut X_MrGrpNameChanged: libc::c_int = 0;
|
||||
let mut X_MrGrpImageChanged: *const libc::c_char = 0 as *const libc::c_char;
|
||||
let mut better_msg: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut better_msg: String = From::from("");
|
||||
let mut failure_reason: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
if mime_parser.is_system_message == 8 {
|
||||
better_msg = dc_stock_system_msg(
|
||||
context,
|
||||
64,
|
||||
0 as *const libc::c_char,
|
||||
0 as *const libc::c_char,
|
||||
from_id as uint32_t,
|
||||
)
|
||||
if mime_parser.is_system_message == 8i32 {
|
||||
better_msg =
|
||||
context.stock_system_msg(StockMessage::MsgLocationEnabled, "", "", from_id as u32)
|
||||
}
|
||||
set_better_msg(mime_parser, &mut better_msg);
|
||||
set_better_msg(mime_parser, &better_msg);
|
||||
/* search the grpid in the header */
|
||||
let mut field: *mut mailimf_field;
|
||||
let mut optional_field: *mut mailimf_optional_field;
|
||||
@@ -1034,12 +1029,15 @@ unsafe fn create_or_lookup_group(
|
||||
let left_group: libc::c_int =
|
||||
(dc_lookup_contact_id_by_addr(context, X_MrRemoveFromGrp)
|
||||
== from_id as libc::c_uint) as libc::c_int;
|
||||
better_msg = dc_stock_system_msg(
|
||||
context,
|
||||
if 0 != left_group { 19 } else { 18 },
|
||||
X_MrRemoveFromGrp,
|
||||
0 as *const libc::c_char,
|
||||
from_id as uint32_t,
|
||||
better_msg = context.stock_system_msg(
|
||||
if 0 != left_group {
|
||||
StockMessage::MsgGroupLeft
|
||||
} else {
|
||||
StockMessage::MsgDelMember
|
||||
},
|
||||
as_str(X_MrRemoveFromGrp),
|
||||
"",
|
||||
from_id as u32,
|
||||
)
|
||||
} else {
|
||||
optional_field = dc_mimeparser_lookup_optional_field(
|
||||
@@ -1056,12 +1054,11 @@ unsafe fn create_or_lookup_group(
|
||||
if !optional_field.is_null() {
|
||||
X_MrGrpImageChanged = (*optional_field).fld_value
|
||||
}
|
||||
better_msg = dc_stock_system_msg(
|
||||
context,
|
||||
17,
|
||||
X_MrAddToGrp,
|
||||
0 as *const libc::c_char,
|
||||
from_id as uint32_t,
|
||||
better_msg = context.stock_system_msg(
|
||||
StockMessage::MsgAddMember,
|
||||
as_str(X_MrAddToGrp),
|
||||
"",
|
||||
from_id as u32,
|
||||
)
|
||||
} else {
|
||||
optional_field = dc_mimeparser_lookup_optional_field(
|
||||
@@ -1069,14 +1066,13 @@ unsafe fn create_or_lookup_group(
|
||||
b"Chat-Group-Name-Changed\x00" as *const u8 as *const libc::c_char,
|
||||
);
|
||||
if !optional_field.is_null() {
|
||||
X_MrGrpNameChanged = 1;
|
||||
mime_parser.is_system_message = 2;
|
||||
better_msg = dc_stock_system_msg(
|
||||
context,
|
||||
15,
|
||||
(*optional_field).fld_value,
|
||||
grpname,
|
||||
from_id as uint32_t,
|
||||
X_MrGrpNameChanged = 1i32;
|
||||
mime_parser.is_system_message = 2i32;
|
||||
better_msg = context.stock_system_msg(
|
||||
StockMessage::MsgGrpName,
|
||||
as_str((*optional_field).fld_value),
|
||||
as_str(grpname),
|
||||
from_id as u32,
|
||||
)
|
||||
} else {
|
||||
optional_field = dc_mimeparser_lookup_optional_field(
|
||||
@@ -1086,26 +1082,25 @@ unsafe fn create_or_lookup_group(
|
||||
if !optional_field.is_null() {
|
||||
X_MrGrpImageChanged = (*optional_field).fld_value;
|
||||
mime_parser.is_system_message = 3;
|
||||
better_msg = dc_stock_system_msg(
|
||||
context,
|
||||
better_msg = context.stock_system_msg(
|
||||
if strcmp(
|
||||
X_MrGrpImageChanged,
|
||||
b"0\x00" as *const u8 as *const libc::c_char,
|
||||
) == 0
|
||||
{
|
||||
33
|
||||
StockMessage::MsgGrpImgDeleted
|
||||
} else {
|
||||
16
|
||||
StockMessage::MsgGrpImgChanged
|
||||
},
|
||||
0 as *const libc::c_char,
|
||||
0 as *const libc::c_char,
|
||||
from_id as uint32_t,
|
||||
"",
|
||||
"",
|
||||
from_id as u32,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
set_better_msg(mime_parser, &mut better_msg);
|
||||
set_better_msg(mime_parser, &better_msg);
|
||||
chat_id = dc_get_chat_id_by_grpid(
|
||||
context,
|
||||
grpid,
|
||||
@@ -1345,8 +1340,6 @@ unsafe fn create_or_lookup_group(
|
||||
}
|
||||
free(grpid as *mut libc::c_void);
|
||||
free(grpname as *mut libc::c_void);
|
||||
|
||||
free(better_msg as *mut libc::c_void);
|
||||
free(failure_reason as *mut libc::c_void);
|
||||
if !ret_chat_id.is_null() {
|
||||
*ret_chat_id = chat_id
|
||||
@@ -1432,11 +1425,10 @@ unsafe fn create_or_lookup_adhoc_group(
|
||||
{
|
||||
grpname = dc_strdup(mime_parser.subject)
|
||||
} else {
|
||||
grpname = dc_stock_str_repl_int(
|
||||
context,
|
||||
4,
|
||||
grpname = to_cstring(context.stock_string_repl_int(
|
||||
StockMessage::Member,
|
||||
dc_array_get_cnt(member_ids) as libc::c_int,
|
||||
)
|
||||
));
|
||||
}
|
||||
chat_id =
|
||||
create_group_record(context, grpid, grpname, create_blocked, 0);
|
||||
@@ -1732,14 +1724,14 @@ unsafe fn check_verified_properties(
|
||||
1
|
||||
}
|
||||
|
||||
unsafe fn set_better_msg(mime_parser: &dc_mimeparser_t, better_msg: *mut *mut libc::c_char) {
|
||||
if !(*better_msg).is_null() && carray_count((*mime_parser).parts) > 0 as libc::c_uint {
|
||||
unsafe fn set_better_msg<T: AsRef<str>>(mime_parser: &dc_mimeparser_t, better_msg: T) {
|
||||
let msg = better_msg.as_ref();
|
||||
if !(msg.len() > 0) && carray_count((*mime_parser).parts) > 0 {
|
||||
let mut part: *mut dc_mimepart_t =
|
||||
carray_get(mime_parser.parts, 0 as libc::c_uint) as *mut dc_mimepart_t;
|
||||
if (*part).type_0 == 10 {
|
||||
free((*part).msg as *mut libc::c_void);
|
||||
(*part).msg = *better_msg;
|
||||
*better_msg = 0 as *mut libc::c_char
|
||||
(*part).msg = to_cstring(msg);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user