func:  proto_item_fill_label(field_info *fi, gchar *label_str) header_field_info * hfinfo ; if ( ! fi )  hfinfo = fi -> hfinfo; switch ( hfinfo -> type )  if ( hfinfo -> bitmask )  fill_label_number64 ( fi , label_str , FALSE ); static fill_label_number64(field_info *fi, gchar *label_str, gboolean is_signed) header_field_info * hfinfo = fi -> hfinfo ; guint64 value ; char buf [ 48 ] ; const char * out ; if ( is_signed )  value = fvalue_get_sinteger64 ( & fi -> value ); value = fvalue_get_uinteger64 ( & fi -> value ); if ( hfinfo -> display == BASE_CUSTOM )  if ( hfinfo -> strings )  out = hfinfo_number_vals_format64 ( hfinfo , buf , value ); static const char hfinfo_number_vals_format64(const header_field_info *hfinfo, char buf[64], guint64 value) int display = hfinfo -> display & FIELD_DISPLAY_E_MASK ; if ( display == BASE_NONE )  return NULL ; if ( display == BASE_DEC_HEX )  display = BASE_DEC; if ( display == BASE_HEX_DEC )  display = BASE_HEX; return hfinfo_number_value_format_display64 ( hfinfo , display , buf , value ) ; static const char hfinfo_number_value_format_display64(const header_field_info *hfinfo, int display, char buf[48], guint64 value) char * ptr = & buf [ 47 ] ; gboolean isint = IS_FT_INT ( hfinfo -> type ) ; * ptr = '\0'; switch ( display )  return isint ? int64_to_str_back ( ptr , ( gint64 ) value ) : uint64_to_str_back ( ptr , value ) ; * ( -- ptr ) = ')'; ptr = hex64_to_str_back ( ptr , _hfinfo_type_hex_octet ( hfinfo -> type ) , value ); static _hfinfo_type_hex_octet(int type) switch ( type )  return 2 ; return 4 ; return 6 ; return 8 ; return 10 ; return 12 ; return 14 ; return 16 ; return - 1 ; * ( -- ptr ) = '('; * ( -- ptr ) = ' '; ptr = isint ? int64_to_str_back ( ptr , ( gint64 ) value ) : uint64_to_str_back ( ptr , value ); return ptr ; return oct64_to_str_back ( ptr , value ) ; return hex64_to_str_back ( ptr , _hfinfo_type_hex_octet ( hfinfo -> type ) , value ) ; static _hfinfo_type_hex_octet(int type) switch ( type )  return 2 ; return 4 ; return 6 ; return 8 ; return 10 ; return 12 ; return 14 ; return 16 ; return - 1 ; * ( -- ptr ) = ')'; ptr = isint ? int64_to_str_back ( ptr , ( gint64 ) value ) : uint64_to_str_back ( ptr , value ); * ( -- ptr ) = '('; * ( -- ptr ) = ' '; ptr = hex64_to_str_back ( ptr , _hfinfo_type_hex_octet ( hfinfo -> type ) , value ); static _hfinfo_type_hex_octet(int type) switch ( type )  return 2 ; return 4 ; return 6 ; return 8 ; return 10 ; return 12 ; return 14 ; return 16 ; return - 1 ; return ptr ; return ptr ; out = hfinfo_number_value_format64 ( hfinfo , buf , value ); static const char hfinfo_number_value_format64(const header_field_info *hfinfo, char buf[64], guint64 value) int display = hfinfo -> display ; if ( hfinfo -> type == FT_FRAMENUM )  display = BASE_DEC; return hfinfo_number_value_format_display64 ( hfinfo , display , buf , value ) ; static const char hfinfo_number_value_format_display64(const header_field_info *hfinfo, int display, char buf[48], guint64 value) char * ptr = & buf [ 47 ] ; gboolean isint = IS_FT_INT ( hfinfo -> type ) ; * ptr = '\0'; switch ( display )  return isint ? int64_to_str_back ( ptr , ( gint64 ) value ) : uint64_to_str_back ( ptr , value ) ; * ( -- ptr ) = ')'; ptr = hex64_to_str_back ( ptr , _hfinfo_type_hex_octet ( hfinfo -> type ) , value ); * ( -- ptr ) = '('; * ( -- ptr ) = ' '; ptr = isint ? int64_to_str_back ( ptr , ( gint64 ) value ) : uint64_to_str_back ( ptr , value ); return ptr ; return oct64_to_str_back ( ptr , value ) ; return hex64_to_str_back ( ptr , _hfinfo_type_hex_octet ( hfinfo -> type ) , value ) ; * ( -- ptr ) = ')'; ptr = isint ? int64_to_str_back ( ptr , ( gint64 ) value ) : uint64_to_str_back ( ptr , value ); * ( -- ptr ) = '('; * ( -- ptr ) = ' '; ptr = hex64_to_str_back ( ptr , _hfinfo_type_hex_octet ( hfinfo -> type ) , value ); return ptr ; return ptr ; label_fill ( label_str , 0 , hfinfo , out ); static label_fill(char *label_str, gsize pos, const header_field_info *hfinfo, const char *text) gsize name_pos ; name_pos = pos = label_concat ( label_str , pos , hfinfo -> name ); pos = label_concat ( label_str , pos , ": " ); pos = label_concat ( label_str , pos , text ? text : "(null)" ); if ( pos >= ITEM_LABEL_LENGTH )  label_mark_truncated ( label_str , name_pos ); static label_mark_truncated(char *label_str, gsize name_pos) static const char trunc_str [ ] = " [truncated]" ; const size_t trunc_len = sizeof ( trunc_str ) - 1 ; if ( name_pos < ITEM_LABEL_LENGTH - trunc_len )  memmove ( label_str + name_pos + trunc_len , label_str + name_pos , ITEM_LABEL_LENGTH - name_pos - trunc_len ); memcpy ( label_str + name_pos , trunc_str , trunc_len ); last_char = g_utf8_prev_char ( & label_str [ ITEM_LABEL_LENGTH ] ); * last_char = '\0'; g_strlcpy ( label_str + name_pos , trunc_str , ITEM_LABEL_LENGTH - name_pos ); 