diff options
-rw-r--r-- | acinclude.m4 | 38 | ||||
-rw-r--r-- | configure.in | 38 | ||||
-rw-r--r-- | epan/dissectors/packet-ansi_801.c | 15 | ||||
-rw-r--r-- | epan/dissectors/packet-ieee80211.c | 10 | ||||
-rw-r--r-- | epan/emem.c | 4 | ||||
-rw-r--r-- | epan/proto.c | 12 | ||||
-rw-r--r-- | gtk/gsm_map_summary.c | 2 | ||||
-rw-r--r-- | gtk/main.c | 18 | ||||
-rw-r--r-- | gtk/mtp3_summary.c | 2 | ||||
-rw-r--r-- | gtk/summary_dlg.c | 2 |
10 files changed, 105 insertions, 36 deletions
diff --git a/acinclude.m4 b/acinclude.m4 index 338df76287..9647b6a751 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1568,6 +1568,44 @@ AC_DEFUN([AC_WIRESHARK_KRB5_CHECK], AC_SUBST(KRB5_LIBS) ]) +dnl +dnl Check whether a given format can be used to print 64-bit integers +dnl +AC_DEFUN([AC_WIRESHARK_CHECK_64BIT_FORMAT], +[ + AC_MSG_CHECKING([whether %$1x can be used to format 64-bit integers]) + AC_RUN_IFELSE( + [ + AC_LANG_SOURCE( + [[ + #include <glib.h> + #if GTK_MAJOR_VERSION >= 2 + #include <glib/gprintf.h> + #endif + #include <stdio.h> + + main() + { + guint64 t = 1; + char strbuf[16+1]; + g_snprintf(strbuf, sizeof strbuf, "%016$1x", t << 32); + if (strcmp(strbuf, "0000000100000000") == 0) + exit(0); + else + exit(1); + } + ]]) + ], + [ + AC_DEFINE(G_GINT64_MODIFIER, "$1", [Format modifier for printing 64-bit numbers]) + AC_MSG_RESULT(yes) + ], + [ + AC_MSG_RESULT(no) + $2 + ]) +]) + # # AC_WIRESHARK_GCC_CFLAGS_CHECK # diff --git a/configure.in b/configure.in index e719e0d23d..82a5971151 100644 --- a/configure.in +++ b/configure.in @@ -1194,6 +1194,44 @@ AC_C_BIGENDIAN # XXX - do we need this? AC_PROG_GCC_TRADITIONAL +# +# Does GLib define G_GINT64_MODIFIER? +# +AC_MSG_CHECKING([[whether glib.h defines the G_GINT64_MODIFIER macro]]) +AC_COMPILE_IFELSE( + [ + AC_LANG_SOURCE( + [[ + #include <glib.h> + #if GTK_MAJOR_VERSION >= 2 + #include <glib/gprintf.h> + #endif + #include <stdio.h> + + main() + { + char strbuf[16+1]; + g_snprintf(strbuf, sizeof strbuf, "%" G_GINT64_MODIFIER "x\n", (gint64)1); + } + ]]) + ], + [ + AC_MSG_RESULT(yes) + ], + [ + AC_MSG_RESULT(no) + AC_WIRESHARK_CHECK_64BIT_FORMAT(ll, + [ + AC_WIRESHARK_CHECK_64BIT_FORMAT(L, + [ + AC_WIRESHARK_CHECK_64BIT_FORMAT(q, + [ + AC_MSG_ERROR([neither %llx nor %Lx nor %qx worked on a 64-bit integer]) + ]) + ]) + ]) + ]) + GETOPT_C="" GETOPT_O="" AC_CHECK_FUNC(getopt, GETOPT_O="", diff --git a/epan/dissectors/packet-ansi_801.c b/epan/dissectors/packet-ansi_801.c index db746b8afa..dac6e2a760 100644 --- a/epan/dissectors/packet-ansi_801.c +++ b/epan/dissectors/packet-ansi_801.c @@ -1062,15 +1062,13 @@ pr_loc_response(tvbuff_t *tvb, proto_tree *tree, guint len, guint32 offset) temp_int = ansi_801_tvb_get_bits(tvb, &new_offset, &bit_offset, 18); proto_tree_add_text(tree, tvb, offset, new_offset - offset, - "CLOCK_BIAS: (%llu)", - (unsigned long long) temp_int); + "CLOCK_BIAS: (%" G_GINT64_MODIFIER "u)", temp_int); offset = new_offset; temp_int = ansi_801_tvb_get_bits(tvb, &new_offset, &bit_offset, 16); proto_tree_add_text(tree, tvb, offset, new_offset - offset, - "CLOCK_DRIFT: (%llu)", - (unsigned long long) temp_int); + "CLOCK_DRIFT: (%" G_GINT64_MODIFIER "u)", temp_int); offset = new_offset; bit_mask = 0x80 >> (8 - bit_offset); @@ -1147,15 +1145,13 @@ pr_loc_response(tvbuff_t *tvb, proto_tree *tree, guint len, guint32 offset) temp_int = ansi_801_tvb_get_bits(tvb, &new_offset, &bit_offset, 14); proto_tree_add_text(tree, tvb, offset, new_offset - offset, - "HEIGHT: (%llu)", - (unsigned long long) temp_int); + "HEIGHT: (%" G_GINT64_MODIFIER "u)", temp_int); offset = new_offset; temp_int = ansi_801_tvb_get_bits(tvb, &new_offset, &bit_offset, 5); proto_tree_add_text(tree, tvb, offset, new_offset - offset, - "LOC_UNCRTNTY_V: (%llu)", - (unsigned long long) temp_int); + "LOC_UNCRTNTY_V: (%" G_GINT64_MODIFIER "u)", temp_int); offset = new_offset; bit_mask = 0x80 >> (8 - bit_offset); @@ -1232,8 +1228,7 @@ for_pr_gps_sat_health(tvbuff_t *tvb, proto_tree *tree, guint len, guint32 offset temp_int = ansi_801_tvb_get_bits(tvb, &new_offset, &bit_offset, 5); proto_tree_add_text(tree, tvb, offset, 1, - "BAD_SV_PRN_NUM: (%llu)", - (unsigned long long) temp_int); + "BAD_SV_PRN_NUM: (%" G_GINT64_MODIFIER "u)", temp_int); offset = new_offset; } diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c index a70874aeb5..6f405191b9 100644 --- a/epan/dissectors/packet-ieee80211.c +++ b/epan/dissectors/packet-ieee80211.c @@ -4525,7 +4525,7 @@ add_tagged_field (packet_info * pinfo, proto_tree * tree, tvbuff_t * tvb, int of proto_tree_add_uint_format(sub_tree, hf_tag_measure_request_channel_number, tvb, offset, 1, channel_number, "Measurement Channel Number: 0x%02X", channel_number); start_time = tvb_get_letoh64 (tvb, offset); - proto_tree_add_uint64_format(sub_tree, hf_tag_measure_request_start_time, tvb, offset, 8, start_time, "Measurement Start Time: 0x%016llX", (unsigned long long) start_time); + proto_tree_add_uint64_format(sub_tree, hf_tag_measure_request_start_time, tvb, offset, 8, start_time, "Measurement Start Time: 0x%016" G_GINT64_MODIFIER "X", start_time); offset += 8; duration = tvb_get_letohs (tvb, offset); @@ -4737,7 +4737,7 @@ add_tagged_field (packet_info * pinfo, proto_tree * tree, tvbuff_t * tvb, int of offset++; start_time = tvb_get_letoh64 (tvb, offset); - proto_tree_add_uint64_format(sub_tree, hf_tag_measure_report_start_time, tvb, offset, 8, start_time, "Measurement Start Time: 0x%016llX", (unsigned long long) start_time); + proto_tree_add_uint64_format(sub_tree, hf_tag_measure_report_start_time, tvb, offset, 8, start_time, "Measurement Start Time: 0x%016" G_GINT64_MODIFIER "X", start_time); offset += 8; duration = tvb_get_letohs (tvb, offset); @@ -4753,7 +4753,7 @@ add_tagged_field (packet_info * pinfo, proto_tree * tree, tvbuff_t * tvb, int of offset++; start_time = tvb_get_letoh64 (tvb, offset); - proto_tree_add_uint64_format(sub_tree, hf_tag_measure_report_start_time, tvb, offset, 8, start_time, "Measurement Start Time: 0x%016llX", (unsigned long long) start_time); + proto_tree_add_uint64_format(sub_tree, hf_tag_measure_report_start_time, tvb, offset, 8, start_time, "Measurement Start Time: 0x%016" G_GINT64_MODIFIER "X", start_time); offset += 8; duration = tvb_get_letohs (tvb, offset); @@ -4793,7 +4793,7 @@ add_tagged_field (packet_info * pinfo, proto_tree * tree, tvbuff_t * tvb, int of offset++; start_time = tvb_get_letoh64 (tvb, offset); - proto_tree_add_uint64_format(sub_tree, hf_tag_measure_report_start_time, tvb, offset, 8, start_time, "Measurement Start Time: 0x%016llX", (unsigned long long) start_time); + proto_tree_add_uint64_format(sub_tree, hf_tag_measure_report_start_time, tvb, offset, 8, start_time, "Measurement Start Time: 0x%016" G_GINT64_MODIFIER "X", start_time); offset += 8; duration = tvb_get_letohs (tvb, offset); @@ -4824,7 +4824,7 @@ add_tagged_field (packet_info * pinfo, proto_tree * tree, tvbuff_t * tvb, int of offset++; start_time = tvb_get_letoh64 (tvb, offset); - proto_tree_add_uint64_format(sub_tree, hf_tag_measure_report_start_time, tvb, offset, 8, start_time, "Measurement Start Time: 0x%016llX", (unsigned long long) start_time); + proto_tree_add_uint64_format(sub_tree, hf_tag_measure_report_start_time, tvb, offset, 8, start_time, "Measurement Start Time: 0x%016" G_GINT64_MODIFIER "X", start_time); offset += 8; duration = tvb_get_letohs (tvb, offset); diff --git a/epan/emem.c b/epan/emem.c index 3f34e8a2d5..430ff4e1b6 100644 --- a/epan/emem.c +++ b/epan/emem.c @@ -1536,7 +1536,7 @@ emem_tree_print_nodes(emem_tree_node_t* node, int level) printf(" "); } - printf("NODE:%08x parent:%08x left:0x%08x right:%08x key:%d data:0x%08x\n",(int)(long)node,(int)(long)node->parent,(int)(long)node->left,(int)(long)node->right,node->key32,(int)(long)node->data); + printf("NODE:%p parent:%p left:0x%p right:%px key:%d data:%p\n",node,node->parent,node->left,node->right,node->key32,node->data); if(node->left) emem_tree_print_nodes(node->left, level+1); if(node->right) @@ -1548,7 +1548,7 @@ emem_print_tree(emem_tree_t* emem_tree) if (!emem_tree) return; - printf("EMEM tree type:%d name:%s tree:0x%08x\n",emem_tree->type,emem_tree->name,(int)(long)emem_tree->tree); + printf("EMEM tree type:%d name:%s tree:%p\n",emem_tree->type,emem_tree->name,emem_tree->tree); if(emem_tree->tree) emem_tree_print_nodes(emem_tree->tree, 0); } diff --git a/epan/proto.c b/epan/proto.c index f435668f1e..ab5ce4952d 100644 --- a/epan/proto.c +++ b/epan/proto.c @@ -507,7 +507,7 @@ proto_tree_free(proto_tree *tree) } static void -free_GPtrArray_value(gpointer key _U_, gpointer value, gpointer user_data _U_) +free_GPtrArray_value(gpointer key, gpointer value, gpointer user_data _U_) { GPtrArray *ptrs = value; gint hfid = (gint)(long)key; @@ -5768,15 +5768,13 @@ proto_tree_add_bits_ret_val(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint switch(hf_field->display){ case BASE_DEC: return proto_tree_add_uint64_format(tree, hf_index, tvb, offset, length, value, - "%s: %llu", - str, - (unsigned long long) value); + "%s: %" G_GINT64_MODIFIER "u", + str, value); break; case BASE_HEX: return proto_tree_add_uint64_format(tree, hf_index, tvb, offset, length, value, - "%s: 0x%llx", - str, - (unsigned long long) value); + "%s: 0x%" G_GINT64_MODIFIER "x", + str, value); break; default: DISSECTOR_ASSERT_NOT_REACHED(); diff --git a/gtk/gsm_map_summary.c b/gtk/gsm_map_summary.c index 764483a7c6..8a7f984752 100644 --- a/gtk/gsm_map_summary.c +++ b/gtk/gsm_map_summary.c @@ -111,7 +111,7 @@ gsm_map_stat_gtk_sum_cb(GtkWidget *w _U_, gpointer d _U_) add_string_to_box(string_buff, file_box); /* length */ - g_snprintf(string_buff, SUM_STR_MAX, "Length: %lld", (long long) summary.file_length); + g_snprintf(string_buff, SUM_STR_MAX, "Length: %" G_GINT64_MODIFIER "d", summary.file_length); add_string_to_box(string_buff, file_box); /* format */ diff --git a/gtk/main.c b/gtk/main.c index 8d82b933a4..6029b48933 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1430,11 +1430,11 @@ set_display_filename(capture_file *cf) /* convert file size */ if (cf->f_datalen/1024/1024 > 10) { - size_str = g_strdup_printf("%lld MB", (long long) cf->f_datalen/1024/1024); + size_str = g_strdup_printf("%" G_GINT64_MODIFIER "d MB", cf->f_datalen/1024/1024); } else if (cf->f_datalen/1024 > 10) { - size_str = g_strdup_printf("%lld KB", (long long) cf->f_datalen/1024); + size_str = g_strdup_printf("%" G_GINT64_MODIFIER "d KB", cf->f_datalen/1024); } else { - size_str = g_strdup_printf("%lld Bytes", (long long) cf->f_datalen); + size_str = g_strdup_printf("%" G_GINT64_MODIFIER "d Bytes", cf->f_datalen); } /* statusbar */ @@ -1704,20 +1704,20 @@ main_cf_cb_live_capture_update_continue(capture_file *cf) } #endif if (cf->f_datalen/1024/1024 > 10) { - capture_msg = g_strdup_printf(" %s: <live capture in progress> File: %s %lld MB", + capture_msg = g_strdup_printf(" %s: <live capture in progress> File: %s %" G_GINT64_MODIFIER "d MB", get_interface_descriptive_name(capture_opts->iface), capture_opts->save_file, - (long long) cf->f_datalen/1024/1024); + cf->f_datalen/1024/1024); } else if (cf->f_datalen/1024 > 10) { - capture_msg = g_strdup_printf(" %s: <live capture in progress> File: %s %lld KB", + capture_msg = g_strdup_printf(" %s: <live capture in progress> File: %s %" G_GINT64_MODIFIER "d KB", get_interface_descriptive_name(capture_opts->iface), capture_opts->save_file, - (long long) cf->f_datalen/1024); + cf->f_datalen/1024); } else { - capture_msg = g_strdup_printf(" %s: <live capture in progress> File: %s %lld Bytes", + capture_msg = g_strdup_printf(" %s: <live capture in progress> File: %s %" G_GINT64_MODIFIER "d Bytes", get_interface_descriptive_name(capture_opts->iface), capture_opts->save_file, - (long long) cf->f_datalen); + cf->f_datalen); } statusbar_push_file_msg(capture_msg); diff --git a/gtk/mtp3_summary.c b/gtk/mtp3_summary.c index 23909bf93e..0c4995cf78 100644 --- a/gtk/mtp3_summary.c +++ b/gtk/mtp3_summary.c @@ -276,7 +276,7 @@ mtp3_sum_gtk_sum_cb(GtkWidget *w _U_, gpointer d _U_) add_string_to_box(string_buff, file_box); /* length */ - g_snprintf(string_buff, SUM_STR_MAX, "Length: %lld", (long long) summary.file_length); + g_snprintf(string_buff, SUM_STR_MAX, "Length: %" G_GINT64_MODIFIER "d", summary.file_length); add_string_to_box(string_buff, file_box); /* format */ diff --git a/gtk/summary_dlg.c b/gtk/summary_dlg.c index 1a765a8aba..a466254e7c 100644 --- a/gtk/summary_dlg.c +++ b/gtk/summary_dlg.c @@ -144,7 +144,7 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_) add_string_to_table(table, &row, "Name:", string_buff); /* length */ - g_snprintf(string_buff, SUM_STR_MAX, "%lld bytes", (long long) summary.file_length); + g_snprintf(string_buff, SUM_STR_MAX, "%" G_GINT64_MODIFIER "d bytes", summary.file_length); add_string_to_table(table, &row, "Length:", string_buff); /* format */ |