diff options
author | Michael Mann <mmann78@netscape.net> | 2015-01-03 21:56:16 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2015-01-04 16:32:03 +0000 |
commit | 553da374461efb87436dbbed7d319d252d4fe2e6 (patch) | |
tree | 1f581449dc0a022f8feb4f2088aec6fb47fd023f /epan/ftypes | |
parent | 2085bbec9d0e4661af77a6e9530cffd5df15ecc8 (diff) |
Create BASE_DOT, BASE_DASH, and BASE_SEMICOLON types for the FT_BYTES field type.
These "bases" will put a ".", "-", or ":" respectively between hexidecimal bytes in the field in packet view and display filter. FT_BYTES with BASE_NONE will have no separator in the packet view, but continue to have the ':' as a separator in the display filter.
Converted the "string" hf_ entries that used tvb_fc_to_str as a string to use proto_tree_add_item with FT_BYTES/BASE_DOT type.
Converted applicable tvb_bytes_to_ep_str_punct() calls to use the new BASE values.
Change-Id: I2442185bb314d04a3ff2ba57883652ecd738b5f9
Reviewed-on: https://code.wireshark.org/review/6098
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/ftypes')
-rw-r--r-- | epan/ftypes/ftype-bytes.c | 41 | ||||
-rw-r--r-- | epan/ftypes/ftype-double.c | 8 | ||||
-rw-r--r-- | epan/ftypes/ftype-guid.c | 4 | ||||
-rw-r--r-- | epan/ftypes/ftype-integer.c | 28 | ||||
-rw-r--r-- | epan/ftypes/ftype-ipv4.c | 4 | ||||
-rw-r--r-- | epan/ftypes/ftype-ipv6.c | 4 | ||||
-rw-r--r-- | epan/ftypes/ftype-pcre.c | 4 | ||||
-rw-r--r-- | epan/ftypes/ftype-string.c | 4 | ||||
-rw-r--r-- | epan/ftypes/ftype-time.c | 8 | ||||
-rw-r--r-- | epan/ftypes/ftype-tvbuff.c | 4 | ||||
-rw-r--r-- | epan/ftypes/ftypes-int.h | 4 | ||||
-rw-r--r-- | epan/ftypes/ftypes.c | 10 | ||||
-rw-r--r-- | epan/ftypes/ftypes.h | 7 |
13 files changed, 74 insertions, 56 deletions
diff --git a/epan/ftypes/ftype-bytes.c b/epan/ftypes/ftype-bytes.c index 5c2a094156..22e677e56f 100644 --- a/epan/ftypes/ftype-bytes.c +++ b/epan/ftypes/ftype-bytes.c @@ -56,15 +56,15 @@ bytes_fvalue_set(fvalue_t *fv, GByteArray *value) } static int -bytes_repr_len(fvalue_t *fv, ftrepr_t rtype _U_) +bytes_repr_len(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_) { if (fv->value.bytes->len == 0) { /* Empty array of bytes, so the representation * is an empty string. */ return 0; } else { - /* 3 bytes for each byte of the byte "NN:" minus 1 byte - * as there's no trailing ":". */ + /* 3 bytes for each byte of the byte "NN<separator character>" minus 1 byte + * as there's no trailing "<separator character>". */ return fv->value.bytes->len * 3 - 1; } } @@ -89,13 +89,13 @@ bytes_repr_len(fvalue_t *fv, ftrepr_t rtype _U_) #define OID_REPR_LEN(fv) (1 + REL_OID_REPR_LEN(fv)) static int -oid_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +oid_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { return OID_REPR_LEN(fv); } static void -oid_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +oid_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { const char* oid_str = oid_encoded2string(fv->value.bytes->data,fv->value.bytes->len); /* @@ -109,13 +109,13 @@ oid_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) } static int -rel_oid_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +rel_oid_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { return REL_OID_REPR_LEN(fv); } static void -rel_oid_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +rel_oid_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { const char* oid_str = rel_oid_encoded2string(fv->value.bytes->data,fv->value.bytes->len); /* @@ -130,17 +130,18 @@ rel_oid_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) } static void -system_id_to_repr(fvalue_t *fv, ftrepr_t rtype, char *buf) +system_id_to_repr(fvalue_t *fv, ftrepr_t rtype, int field_display, char *buf) { - print_system_id_buf(fv->value.bytes->data,fv->value.bytes->len, buf, bytes_repr_len(fv, rtype)); + print_system_id_buf(fv->value.bytes->data,fv->value.bytes->len, buf, bytes_repr_len(fv, rtype, field_display)); } static void -bytes_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +bytes_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display, char *buf) { guint8 *c; char *write_cursor; unsigned int i; + char separator; c = fv->value.bytes->data; write_cursor = buf; @@ -151,7 +152,21 @@ bytes_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) write_cursor += 2; } else { - sprintf(write_cursor, ":%02x", *c++); + switch(field_display) + { + case BASE_DOT: + separator = '.'; + break; + case BASE_DASH: + separator = '-'; + break; + case BASE_SEMICOLON: + case BASE_NONE: + default: + separator = ':'; + break; + } + sprintf(write_cursor, "%c%02x", separator, *c++); write_cursor += 3; } } @@ -1038,7 +1053,7 @@ ftype_register_bytes(void) slice, }; - static ftype_t fcwwc_type = { + static ftype_t fcwwn_type = { FT_FCWWN, /* ftype */ "FT_FCWWN", /* name */ "Fibre Channel WWN", /* pretty_name */ @@ -1089,5 +1104,5 @@ ftype_register_bytes(void) ftype_register(FT_OID, &oid_type); ftype_register(FT_REL_OID, &rel_oid_type); ftype_register(FT_SYSTEM_ID, &system_id_type); - ftype_register(FT_FCWWN, &fcwwc_type); + ftype_register(FT_FCWWN, &fcwwn_type); } diff --git a/epan/ftypes/ftype-double.c b/epan/ftypes/ftype-double.c index 2583d9223e..ef1991815e 100644 --- a/epan/ftypes/ftype-double.c +++ b/epan/ftypes/ftype-double.c @@ -76,7 +76,7 @@ val_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, } static int -float_val_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +float_val_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { /* * 1 character for a sign. @@ -89,13 +89,13 @@ float_val_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) } static void -float_val_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +float_val_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { sprintf(buf, "%." G_STRINGIFY(FLT_DIG) "g", fv->value.floating); } static int -double_val_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +double_val_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { /* * 1 character for a sign. @@ -107,7 +107,7 @@ double_val_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) } static void -double_val_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +double_val_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { sprintf(buf, "%." G_STRINGIFY(DBL_DIG) "g", fv->value.floating); } diff --git a/epan/ftypes/ftype-guid.c b/epan/ftypes/ftype-guid.c index c7e94d5ef0..290738ae20 100644 --- a/epan/ftypes/ftype-guid.c +++ b/epan/ftypes/ftype-guid.c @@ -98,13 +98,13 @@ guid_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_ } static int -guid_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +guid_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { return GUID_STR_LEN; } static void -guid_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +guid_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { guid_to_str_buf(&fv->value.guid, buf, GUID_STR_LEN); } diff --git a/epan/ftypes/ftype-integer.c b/epan/ftypes/ftype-integer.c index 592a670a6a..2368b526b5 100644 --- a/epan/ftypes/ftype-integer.c +++ b/epan/ftypes/ftype-integer.c @@ -224,13 +224,13 @@ sint8_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, L } static int -integer_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +integer_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { return 11; /* enough for 12^31-1, in decimal */ } static void -integer_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +integer_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { guint32 val; @@ -244,13 +244,13 @@ integer_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) } static int -uinteger_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +uinteger_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { return 10; /* enough for 2^32-1, in decimal */ } static void -uinteger_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +uinteger_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { guint32_to_str_buf(fv->value.uinteger, buf, 11); } @@ -281,13 +281,13 @@ ipxnet_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _ } static int -ipxnet_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +ipxnet_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { return 2+8; /* 0xXXXXXXXX */ } static void -ipxnet_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +ipxnet_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { sprintf(buf, "0x%08x", fv->value.uinteger); } @@ -470,25 +470,25 @@ sint64_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _ } static int -integer64_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +integer64_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { return 20; /* enough for -2^63-1, in decimal */ } static void -integer64_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +integer64_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { sprintf(buf, "%" G_GINT64_MODIFIER "d", fv->value.integer64); } static int -uinteger64_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +uinteger64_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { return 20; /* enough for 2^64-1, in decimal */ } static void -uinteger64_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +uinteger64_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { sprintf(buf, "%" G_GINT64_MODIFIER "u", fv->value.integer64); } @@ -568,13 +568,13 @@ boolean_fvalue_new(fvalue_t *fv) } static int -boolean_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +boolean_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { return 1; } static void -boolean_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +boolean_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { *buf++ = (fv->value.uinteger) ? '1' : '0'; *buf = '\0'; @@ -628,13 +628,13 @@ eui64_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U } static int -eui64_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +eui64_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { return 8*3-1; /* XX:XX:XX:XX:XX:XX:XX:XX */ } static void -eui64_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +eui64_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { guint8 *p_eui64 = (guint8 *)ep_alloc(8); diff --git a/epan/ftypes/ftype-ipv4.c b/epan/ftypes/ftype-ipv4.c index db5ef14cfa..1c10017263 100644 --- a/epan/ftypes/ftype-ipv4.c +++ b/epan/ftypes/ftype-ipv4.c @@ -99,7 +99,7 @@ val_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, } static int -val_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +val_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { /* * 15 characters for "XXX.XXX.XXX.XXX". @@ -108,7 +108,7 @@ val_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) } static void -val_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +val_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { ipv4_addr_str_buf(&fv->value.ipv4, buf); } diff --git a/epan/ftypes/ftype-ipv6.c b/epan/ftypes/ftype-ipv6.c index cf4ed1205e..04e47c920f 100644 --- a/epan/ftypes/ftype-ipv6.c +++ b/epan/ftypes/ftype-ipv6.c @@ -77,7 +77,7 @@ ipv6_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_ } static int -ipv6_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) +ipv6_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) { /* * 39 characters for "XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX". @@ -86,7 +86,7 @@ ipv6_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) } static void -ipv6_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +ipv6_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { ip6_to_str_buf(&(fv->value.ipv6.addr), buf); } diff --git a/epan/ftypes/ftype-pcre.c b/epan/ftypes/ftype-pcre.c index 947aff3047..f324370527 100644 --- a/epan/ftypes/ftype-pcre.c +++ b/epan/ftypes/ftype-pcre.c @@ -116,14 +116,14 @@ val_from_unparsed(fvalue_t *fv, const char *pattern, gboolean allow_partial_valu } static int -gregex_repr_len(fvalue_t *fv, ftrepr_t rtype) +gregex_repr_len(fvalue_t *fv, ftrepr_t rtype, int field_display _U_) { g_assert(rtype == FTREPR_DFILTER); return (int)strlen(g_regex_get_pattern(fv->value.re)); } static void -gregex_to_repr(fvalue_t *fv, ftrepr_t rtype, char *buf) +gregex_to_repr(fvalue_t *fv, ftrepr_t rtype, int field_display _U_, char *buf) { g_assert(rtype == FTREPR_DFILTER); strcpy(buf, g_regex_get_pattern(fv->value.re)); diff --git a/epan/ftypes/ftype-string.c b/epan/ftypes/ftype-string.c index 6c95e70ebd..ff3b9c3c6c 100644 --- a/epan/ftypes/ftype-string.c +++ b/epan/ftypes/ftype-string.c @@ -53,7 +53,7 @@ string_fvalue_set_string(fvalue_t *fv, const gchar *value) } static int -string_repr_len(fvalue_t *fv, ftrepr_t rtype) +string_repr_len(fvalue_t *fv, ftrepr_t rtype, int field_display _U_) { switch (rtype) { case FTREPR_DISPLAY: @@ -67,7 +67,7 @@ string_repr_len(fvalue_t *fv, ftrepr_t rtype) } static void -string_to_repr(fvalue_t *fv, ftrepr_t rtype, char *buf) +string_to_repr(fvalue_t *fv, ftrepr_t rtype, int field_display _U_, char *buf) { switch (rtype) { case FTREPR_DISPLAY: diff --git a/epan/ftypes/ftype-time.c b/epan/ftypes/ftype-time.c index 841e8b4e62..09ae23f869 100644 --- a/epan/ftypes/ftype-time.c +++ b/epan/ftypes/ftype-time.c @@ -323,7 +323,7 @@ value_get(fvalue_t *fv) } static int -absolute_val_repr_len(fvalue_t *fv, ftrepr_t rtype) +absolute_val_repr_len(fvalue_t *fv, ftrepr_t rtype, int field_display _U_) { gchar *rep; int ret; @@ -339,7 +339,7 @@ absolute_val_repr_len(fvalue_t *fv, ftrepr_t rtype) } static void -absolute_val_to_repr(fvalue_t *fv, ftrepr_t rtype, char *buf) +absolute_val_to_repr(fvalue_t *fv, ftrepr_t rtype, int field_display _U_, char *buf) { gchar *rep = abs_time_to_str(NULL, &fv->value.time, ABSOLUTE_TIME_LOCAL, rtype == FTREPR_DISPLAY); @@ -352,7 +352,7 @@ absolute_val_to_repr(fvalue_t *fv, ftrepr_t rtype, char *buf) } static int -relative_val_repr_len(fvalue_t *fv, ftrepr_t rtype _U_) +relative_val_repr_len(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_) { gchar *rep; int ret; @@ -365,7 +365,7 @@ relative_val_repr_len(fvalue_t *fv, ftrepr_t rtype _U_) } static void -relative_val_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf) +relative_val_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) { gchar *rep; rep = rel_time_to_secs_str(NULL, &fv->value.time); diff --git a/epan/ftypes/ftype-tvbuff.c b/epan/ftypes/ftype-tvbuff.c index dec4d69672..714f545dfe 100644 --- a/epan/ftypes/ftype-tvbuff.c +++ b/epan/ftypes/ftype-tvbuff.c @@ -118,7 +118,7 @@ val_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, } static int -val_repr_len(fvalue_t *fv, ftrepr_t rtype) +val_repr_len(fvalue_t *fv, ftrepr_t rtype, int field_display _U_) { volatile guint length = 0; @@ -138,7 +138,7 @@ val_repr_len(fvalue_t *fv, ftrepr_t rtype) } static void -val_to_repr(fvalue_t *fv, ftrepr_t rtype, char * volatile buf) +val_to_repr(fvalue_t *fv, ftrepr_t rtype, int field_display _U_, char * volatile buf) { guint length; const guint8 *c; diff --git a/epan/ftypes/ftypes-int.h b/epan/ftypes/ftypes-int.h index e78917f036..c2aaf11427 100644 --- a/epan/ftypes/ftypes-int.h +++ b/epan/ftypes/ftypes-int.h @@ -50,8 +50,8 @@ typedef void (*FvalueFreeFunc)(fvalue_t*); typedef gboolean (*FvalueFromUnparsed)(fvalue_t*, const char*, gboolean, LogFunc); typedef gboolean (*FvalueFromString)(fvalue_t*, const char*, LogFunc); -typedef void (*FvalueToStringRepr)(fvalue_t*, ftrepr_t, char*volatile); -typedef int (*FvalueStringReprLen)(fvalue_t*, ftrepr_t); +typedef void (*FvalueToStringRepr)(fvalue_t*, ftrepr_t, int field_display, char*volatile); +typedef int (*FvalueStringReprLen)(fvalue_t*, ftrepr_t, int field_display); typedef void (*FvalueSetByteArrayFunc)(fvalue_t*, GByteArray *); typedef void (*FvalueSetBytesFunc)(fvalue_t*, const guint8 *); diff --git a/epan/ftypes/ftypes.c b/epan/ftypes/ftypes.c index 49ef2ce19a..a06594392c 100644 --- a/epan/ftypes/ftypes.c +++ b/epan/ftypes/ftypes.c @@ -348,14 +348,14 @@ fvalue_length(fvalue_t *fv) } int -fvalue_string_repr_len(fvalue_t *fv, ftrepr_t rtype) +fvalue_string_repr_len(fvalue_t *fv, ftrepr_t rtype, int field_display) { g_assert(fv->ftype->len_string_repr); - return fv->ftype->len_string_repr(fv, rtype); + return fv->ftype->len_string_repr(fv, rtype, field_display); } char * -fvalue_to_string_repr(fvalue_t *fv, ftrepr_t rtype, char *buf) +fvalue_to_string_repr(fvalue_t *fv, ftrepr_t rtype, int field_display, char *buf) { if (fv->ftype->val_to_string_repr == NULL) { /* no value-to-string-representation function, so the value cannot be represented */ @@ -363,14 +363,14 @@ fvalue_to_string_repr(fvalue_t *fv, ftrepr_t rtype, char *buf) } if (!buf) { int len; - if ((len = fvalue_string_repr_len(fv, rtype)) >= 0) { + if ((len = fvalue_string_repr_len(fv, rtype, field_display)) >= 0) { buf = (char *)g_malloc0(len + 1); } else { /* the value cannot be represented in the given representation type (rtype) */ return NULL; } } - fv->ftype->val_to_string_repr(fv, rtype, buf); + fv->ftype->val_to_string_repr(fv, rtype, field_display, buf); return buf; } diff --git a/epan/ftypes/ftypes.h b/epan/ftypes/ftypes.h index 46a25fbb1b..6e969043ca 100644 --- a/epan/ftypes/ftypes.h +++ b/epan/ftypes/ftypes.h @@ -226,7 +226,7 @@ fvalue_from_string(ftenum_t ftype, const char *s, LogFunc logfunc); * The length DOES NOT include the terminating NUL. */ WS_DLL_PUBLIC int -fvalue_string_repr_len(fvalue_t *fv, ftrepr_t rtype); +fvalue_string_repr_len(fvalue_t *fv, ftrepr_t rtype, int field_display); /* Creates the string representation of the field value. * If given non-NULL 'buf', the string is written at the memory @@ -237,9 +237,12 @@ fvalue_string_repr_len(fvalue_t *fv, ftrepr_t rtype); * memory. if 'buf' was non-NULL, then the return value will be * 'buf'. * + * field_display parameter should be a BASE_ value (enum field_display_e) + * BASE_NONE should be used if field information isn't available. + * * Returns NULL if the string cannot be represented in the given rtype.*/ WS_DLL_PUBLIC char * -fvalue_to_string_repr(fvalue_t *fv, ftrepr_t rtype, char *buf); +fvalue_to_string_repr(fvalue_t *fv, ftrepr_t rtype, int field_display, char *buf); WS_DLL_PUBLIC ftenum_t fvalue_type_ftenum(fvalue_t *fv); |