+2009-01-16 Badlop <badlop@process-one.net>
+
+ * src/mod_privacy.erl: Privacy list items must be processed in the
+ specified order (EJAB-848)
+ * src/mod_privacy_odbc.erl: Likewise
+
2009-01-13 Badlop <badlop@process-one.net>
* doc/release_notes_2.0.3.txt: Add release notes
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),
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),