From cb810e70036e232308c50dd9296fa6a257468ad9 Mon Sep 17 00:00:00 2001 From: Pascal Quantin Date: Thu, 10 Sep 2020 22:07:47 +0200 Subject: proto.c: add support for BASE_SPECIAL_VALS to fill_label_number64() This is similar to what is done in fill_label_number() --- epan/proto.c | 27 +++++++++++++++++++++------ 1 file 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); -- cgit v1.2.3