diff options
Diffstat (limited to 'src/xmpp_util.erl')
-rw-r--r-- | src/xmpp_util.erl | 9 |
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). |