X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_minichat_conversation.erl;h=9015fec27876c9c3ff09bc7ce9dd36deb8fb92ab;hp=eb154ee6bbe329a46581d07150866011d38c523a;hb=6fab12088e85e62ef34a312c3f3a33f9636bbc97;hpb=2faefc542de20cfcc0220b5c7fd7982dd0fbbfd4 diff --git a/modules/erl/euphorik_minichat_conversation.erl b/modules/erl/euphorik_minichat_conversation.erl index eb154ee..9015fec 100755 --- a/modules/erl/euphorik_minichat_conversation.erl +++ b/modules/erl/euphorik_minichat_conversation.erl @@ -13,8 +13,6 @@ conversations/4 ]). --compile(export_all). - -include("euphorik_bd.hrl"). -include_lib("stdlib/include/qlc.hrl"). @@ -198,7 +196,7 @@ conversation_principale2(C, Messages, N, S) -> % @spec conversation([integer()], integer(), integer(), integer()) -> Conversation_detailee() conversation(R, N, D, P) -> {C, X} = conversation([], [R], []), - Decalage = N*(P-1)+1, + Decalage = N * (P - 1) + 1, { reverse(C), if Decalage > length(C) -> @@ -220,13 +218,13 @@ conversation(R, N, D, P) -> conversation(Messages, [M | Reste], X) -> Est_deja_traite = any(fun(E) -> E =:= M end, Messages), if Est_deja_traite -> - conversation(Messages, 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], Reste ++ Enfants, if Est_message_externe -> [M | X]; true -> X end) + conversation(Messages, 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) end; conversation(Messages, [], X) -> {Messages, X}.