aboutsummaryrefslogtreecommitdiff
path: root/src/xmpp_util.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/xmpp_util.erl')
-rw-r--r--src/xmpp_util.erl9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/xmpp_util.erl b/src/xmpp_util.erl
index 57440b50e..22b8ea597 100644
--- a/src/xmpp_util.erl
+++ b/src/xmpp_util.erl
@@ -11,7 +11,8 @@
%% API
-export([add_delay_info/3, add_delay_info/4, unwrap_carbon/1,
is_standalone_chat_state/1, get_xdata_values/2,
- has_xdata_var/2, make_adhoc_response/1, make_adhoc_response/2,
+ set_xdata_field/2, has_xdata_var/2,
+ make_adhoc_response/1, make_adhoc_response/2,
decode_timestamp/1, encode_timestamp/1]).
-include("xmpp.hrl").
@@ -78,6 +79,12 @@ get_xdata_values(Var, #xdata{fields = Fields}) ->
false -> []
end.
+-spec set_xdata_field(xdata_field(), xdata()) -> xdata().
+set_xdata_field(Field, #xdata{fields = Fields} = X) ->
+ NewFields = lists:keystore(Field#xdata_field.var, #xdata_field.var,
+ Fields, Field),
+ X#xdata{fields = NewFields}.
+
-spec has_xdata_var(binary(), xdata()) -> boolean().
has_xdata_var(Var, #xdata{fields = Fields}) ->
lists:keymember(Var, #xdata_field.var, Fields).