let emission (lst : Widget.listbox Widget.widget) (sender : string) (message : string) : string =
let res =ref ("["^message^"]") in
let l = ref [message] in
let message_if = transcript_sender message in
Hashtbl.iter
(fun (name_in_session,_,type_of_message) b_arg ->
let b = transcript_sender b_arg in
if( b<>""
&&(not (List.mem b (!l)))
&& (sender=name_in_session)
&& (type_of_message="_message_stack" )
&& (let rec test_no_recieve_message l_automate =
match l_automate with [] -> false
|((name,id,_,actionsL)::ls) ->
if(sender=(get_name_in_session name id))
then (
let rec aux l =
match l with [] -> false
|((initial,_,final)::ll) ->
if( message_if=(findIknows final) &&
""<>(findIknows initial) )
then true
else aux ll;
in aux actionsL
)
else test_no_recieve_message ls
in test_no_recieve_message (!automate))
(* && not(List.mem true
(List.map
(fun action_lst ->
let (sender_lst, _, message_lst) = actionTreatment action_lst in
(sender_lst=sender && message_lst=b))
(Listbox.get_range lst ~first:(`Num 0) ~last:`End)
)) *)
)
then (l:=(b::(!l)) ; res:=(!res)^"["^b^"]" ))
message_stack;
if((!res)<>"")
then "...Emission"^(replace "_new" "" (!res))^"!!!..."
else ""