Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: Re: [Wireshark-dev] TCP Graphs and thousands separators ...

From: Jeff Morriss <jeff.morriss.ws@xxxxxxxxx>
Date: Thu, 21 Jun 2012 10:02:39 -0400
Richard Sharpe wrote:
> On Wed, Jun 20, 2012 at 9:22 PM, Richard Sharpe
> <realrichardsharpe@xxxxxxxxx> wrote:
>> Hi folks,
>>
>> I have noticed some complaining about the lack of thousands separators
>> on the ticks, especially on the vertical axis. Certainly, I find it a
>> pain.
>>
>> The following patch might fix the problem. I don't currently have a
>> capture that I can check this with. Perhaps tomorrow I will remember
>> to bring one how that shows more than three digits ...
>>
>> [rsharpe@localhost wireshark]$ svn diff ui/gtk/tcp_graph.c
>> Index: ui/gtk/tcp_graph.c
>> ===================================================================
>> --- ui/gtk/tcp_graph.c  (revision 43186)
>> +++ ui/gtk/tcp_graph.c  (working copy)
>> @@ -2767,7 +2767,7 @@
>>                        break;
>>                y = y - floor (y);
>>        }
>> -       g_snprintf (str, sizeof(str), "%.*f", rdigits, label);
>> +       g_snprintf (str, sizeof(str), "%'*f", rdigits, label);
>>        switch (dir) {
>>        case AXIS_HORIZONTAL:
>>                 layout = gtk_widget_create_pango_layout(axis->g->drawing_area,
>>
> 
> Nope. I was wrong. This does it. Can someone commit it? Do I have to
> create a bug?:
> 
> Index: ui/gtk/io_stat.c
> ===================================================================
> --- ui/gtk/io_stat.c	(revision 43186)
> +++ ui/gtk/io_stat.c	(working copy)
> @@ -962,14 +962,14 @@
>  				if(draw_y_as_time){
>  					print_time_scale_string(label_string, 15, value, value, TRUE);
>  				} else {
> -					g_snprintf(label_string, 15, "%d", value);
> +					g_snprintf(label_string, 15, "%'d", value);
>  				}
>  			} else {
>  				value = (max_y/10)*i;
>  				if(draw_y_as_time){
>  					print_time_scale_string(label_string, 15, value, max_y, FALSE);
>  				} else {
> -					g_snprintf(label_string, 15, "%d", value);
> +					g_snprintf(label_string, 15, "%'d", value);
>  				}
>  			}

Bugs are always better, and I see you opened bug 7389 for this.

But: a quick search for "printf apostrophe portable" brought me here:

http://www.velocityreviews.com/forums/t442370-portability-issues-with-flag-in-printf.html

which indicates that using the apostrophe isn't really portable.

Folllow-ups to the bug.