% Renvoie un tuple {C, X} où C est la conversation complète et X les messages répondant à des mess qui ne font pas partie de la conversation
% Attention : les messages de C et de X sont ordrés du plus grand Id au plus petit.
% @spec conversation([integer()], [integer()], [integer()]) -> {}
-conversation(Messages, [M | Reste], X) ->
- Est_deja_traite = any(fun(E) -> E =:= M end, Messages),
+conversation(Conv, [M | Reste], X) ->
+ Est_deja_traite = any(fun(E) -> E =:= M end, Conv),
if Est_deja_traite ->
- conversation(Messages, Reste, X);
+ conversation(Conv, Reste, X);
true ->
Enfants = enfants(M),
Parents = parents(M),
% un message est dit externe si un de ses parent ne fait pas partie de la conversation ou si un de ses parents fait partie de X
- Est_message_externe = Parents -- Messages =/= [] orelse intersection(Parents, X) =/= [],
- conversation([M | Messages], lists:merge(Reste, Enfants), if Est_message_externe -> [M | X]; true -> X end)
+ Est_message_externe = Parents -- Conv =/= [] orelse intersection(Parents, X) =/= [],
+ conversation([M | Conv], lists:merge(Reste, Enfants), if Est_message_externe -> [M | X]; true -> X end)
end;
conversation(Messages, [], X) ->
{Messages, X}.