diff options
author | Sverker Eriksson <[email protected]> | 2013-01-11 17:27:29 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2013-01-18 15:04:03 +0100 |
commit | b553664f54034e8c04ae6f9cc44f16b7f516518b (patch) | |
tree | 1522c655fea9aa52476e997aa26f1512d3ecada4 /lib/erl_interface/src/misc/ei_x_encode.c | |
parent | 97abb095cd2182d5c3fafd525da4943ef74dc8e5 (diff) | |
download | otp-b553664f54034e8c04ae6f9cc44f16b7f516518b.tar.gz otp-b553664f54034e8c04ae6f9cc44f16b7f516518b.tar.bz2 otp-b553664f54034e8c04ae6f9cc44f16b7f516518b.zip |
erl_interface: utf8 atoms continued
Diffstat (limited to 'lib/erl_interface/src/misc/ei_x_encode.c')
-rw-r--r-- | lib/erl_interface/src/misc/ei_x_encode.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/lib/erl_interface/src/misc/ei_x_encode.c b/lib/erl_interface/src/misc/ei_x_encode.c index fa1e26ccbb..44dcff7664 100644 --- a/lib/erl_interface/src/misc/ei_x_encode.c +++ b/lib/erl_interface/src/misc/ei_x_encode.c @@ -197,18 +197,33 @@ int ei_x_encode_tuple_header(ei_x_buff* x, long n) int ei_x_encode_atom(ei_x_buff* x, const char* s) { - return ei_x_encode_atom_len(x, s, strlen(s)); + return ei_x_encode_atom_len_as(x, s, strlen(s), ERLANG_LATIN1, ERLANG_LATIN1); } int ei_x_encode_atom_len(ei_x_buff* x, const char* s, int len) { + return ei_x_encode_atom_len_as(x, s, len, ERLANG_LATIN1, ERLANG_LATIN1); +} + +int ei_x_encode_atom_as(ei_x_buff* x, const char* s, + enum erlang_char_encoding from_enc, + enum erlang_char_encoding to_enc) +{ + return ei_x_encode_atom_len_as(x, s, strlen(s), from_enc, to_enc); +} + +int ei_x_encode_atom_len_as(ei_x_buff* x, const char* s, int len, + enum erlang_char_encoding from_enc, + enum erlang_char_encoding to_enc) +{ int i = x->index; - ei_encode_atom_len(NULL, &i, s, len); + ei_encode_atom_len_as(NULL, &i, s, len, from_enc, to_enc); if (!x_fix_buff(x, i)) return -1; - return ei_encode_atom_len(x->buff, &x->index, s, len); + return ei_encode_atom_len_as(x->buff, &x->index, s, len, from_enc, to_enc); } + int ei_x_encode_pid(ei_x_buff* x, const erlang_pid* pid) { int i = x->index; |