From 43e12a37025c5363ad74e12e08bd180caeb629d3 Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 16 Jan 2009 16:06:21 +0000 Subject: * src/mod_privacy.erl: Privacy list items must be processed in the specified order (EJAB-848) * src/mod_privacy_odbc.erl: Likewise SVN Revision: 1822 --- src/mod_privacy.erl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/mod_privacy.erl') diff --git a/src/mod_privacy.erl b/src/mod_privacy.erl index a9da69090..5fd604511 100644 --- a/src/mod_privacy.erl +++ b/src/mod_privacy.erl @@ -414,7 +414,12 @@ parse_items(Els) -> parse_items(Els, []). parse_items([], Res) -> - lists:reverse(Res); + %% Sort the items by their 'order' attribute + %% 5 is the position of 'order' attribute in a #listitem tuple + %% This integer can be calculated at runtime with: + %% 2 + length(lists:takewhile(fun(E) -> E =/= order end, + %% record_info(fields, listitem))), + lists:keysort(5, Res); parse_items([{xmlelement, "item", Attrs, SubEls} | Els], Res) -> Type = xml:get_attr("type", Attrs), Value = xml:get_attr("value", Attrs), -- cgit v1.2.3