diff options
author | Pascal Quantin <pascal@wireshark.org> | 2020-09-10 22:07:47 +0200 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2020-09-11 03:12:07 +0000 |
commit | cb810e70036e232308c50dd9296fa6a257468ad9 (patch) | |
tree | c562cdb77bde72b6bbff7009a6c4e55d028b0eaf | |
parent | b340dc8de8e0d5a38466d1f448a936ab9f790290 (diff) |
proto.c: add support for BASE_SPECIAL_VALS to fill_label_number64()
This is similar to what is done in fill_label_number()
-rw-r--r-- | epan/proto.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/epan/proto.c b/epan/proto.c index eb007fed6c..08b3b55020 100644 --- a/epan/proto.c +++ b/epan/proto.c @@ -9542,7 +9542,7 @@ fill_label_number(field_info *fi, gchar *label_str, gboolean is_signed) if (hfinfo->display & BASE_SPECIAL_VALS) { /* * Unique values only display value_string string - * if there is a match. Otherwise it's just a number + * if there is a match. Otherwise it's just a number */ if (val_str) { label_fill_descr(label_str, 0, hfinfo, val_str, out); @@ -9597,13 +9597,28 @@ fill_label_number64(field_info *fi, gchar *label_str, gboolean is_signed) label_fill(label_str, 0, hfinfo, tmp); } else if (hfinfo->strings) { - const char *val_str = hf_try_val64_to_str_const(value, hfinfo, "Unknown"); + const char *val_str = hf_try_val64_to_str(value, hfinfo); out = hfinfo_number_vals_format64(hfinfo, buf, value); - if (out == NULL) /* BASE_NONE so don't put integer in descr */ - label_fill(label_str, 0, hfinfo, val_str); - else - label_fill_descr(label_str, 0, hfinfo, val_str, out); + if (hfinfo->display & BASE_SPECIAL_VALS) { + /* + * Unique values only display value_string string + * if there is a match. Otherwise it's just a number + */ + if (val_str) { + label_fill_descr(label_str, 0, hfinfo, val_str, out); + } else { + label_fill(label_str, 0, hfinfo, out); + } + } else { + if (val_str == NULL) + val_str = "Unknown"; + + if (out == NULL) /* BASE_NONE so don't put integer in descr */ + label_fill(label_str, 0, hfinfo, val_str); + else + label_fill_descr(label_str, 0, hfinfo, val_str, out); + } } else { out = hfinfo_number_value_format64(hfinfo, buf, value); |