diff options
author | Guy Harris <guy@alum.mit.edu> | 2014-02-26 02:16:27 -0800 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2014-02-26 10:17:22 +0000 |
commit | ea1d5c151e0ef5620ca0421ed6d3154afb97ba50 (patch) | |
tree | 3e4e4fc96f86d1fde39627070401045248871d7f /epan/dissectors | |
parent | 85885f4509af563565e316982db98063e3565ad7 (diff) |
Use proto_tree_add_item() for most string encodings.
We support ISO 8859-1 and 8859-8, so use proto_tree_add_item() for them.
That leaves only EUC-KR.
Change-Id: Ie61f69af43be03e5abeb84b95601a407900fb79b
Reviewed-on: https://code.wireshark.org/review/403
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'epan/dissectors')
-rw-r--r-- | epan/dissectors/packet-ansi_637.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/epan/dissectors/packet-ansi_637.c b/epan/dissectors/packet-ansi_637.c index c9269ca1e8..c43a405164 100644 --- a/epan/dissectors/packet-ansi_637.c +++ b/epan/dissectors/packet-ansi_637.c @@ -522,40 +522,40 @@ text_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset offset, ia5_637_bigbuf); break; - case 0x09: /* GSM 7-bit default alphabet */ + case 0x04: /* UNICODE */ offset = 0; - bit = fill_bits; - proto_tree_add_ts_23_038_7bits_item(tree, hf_ansi_637_tele_user_data_text, tvb_out, (offset << 3) + bit, num_fields); + proto_tree_add_item(tree, hf_ansi_637_tele_user_data_text, tvb_out, offset, num_fields*2, ENC_UCS_2|ENC_BIG_ENDIAN); break; - case 0x04: /* UNICODE */ + case 0x07: /* Latin/Hebrew */ offset = 0; - proto_tree_add_item(tree, hf_ansi_637_tele_user_data_text, tvb_out, offset, num_fields*2, ENC_UCS_2|ENC_BIG_ENDIAN); + proto_tree_add_item(tree, hf_ansi_637_tele_user_data_text, tvb_out, offset, num_fields, ENC_ISO_8859_8|ENC_NA); break; - case 0x10: /* KSC5601 (Korean) */ - - if (str == NULL) str = "EUC-KR"; + case 0x08: /* Latin */ - /* FALLTHROUGH */ + offset = 0; - case 0x07: /* Latin/Hebrew */ + proto_tree_add_item(tree, hf_ansi_637_tele_user_data_text, tvb_out, offset, num_fields, ENC_ISO_8859_1|ENC_NA); + break; - if (str == NULL) str = "iso-8859-8"; + case 0x09: /* GSM 7-bit default alphabet */ - /* FALLTHROUGH */ + offset = 0; + bit = fill_bits; - case 0x08: /* Latin */ + proto_tree_add_ts_23_038_7bits_item(tree, hf_ansi_637_tele_user_data_text, tvb_out, (offset << 3) + bit, num_fields); + break; - if (str == NULL) str = "iso-8859-1"; + case 0x10: /* KSC5601 (Korean) */ offset = 0; - if ((cd = g_iconv_open("UTF-8", str)) != (GIConv) -1) + if ((cd = g_iconv_open("UTF-8", "EUC-KR")) != (GIConv) -1) { ustr = g_convert_with_iconv(tvb_get_ptr(tvb_out, offset, required_octs), required_octs , cd , NULL , NULL , &l_conv_error); if (!l_conv_error) |