From 21b20d007141401ddcd6784bb0e4e8f5af5b47e6 Mon Sep 17 00:00:00 2001 From: flamingcow Date: Tue, 4 Aug 2026 11:27:35 -0700 Subject: [PATCH] Scale integer counts on the panel like every other figure --- render.go | 11 +++++++++++ ui.go | 6 +++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/render.go b/render.go index 9b6de5d..84cbf67 100644 --- a/render.go +++ b/render.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "strconv" "strings" "time" ) @@ -105,6 +106,16 @@ func scaleSI(v float64) string { return fmt.Sprintf("%.2f P", v) } +// The integer counterpart, for whole things counted rather than a rate +// measured. Below a thousand the figure is the count itself, since two decimals +// on a quantity that cannot have them read as precision that is not there. +func scaleCount(v uint64) string { + if v < 1000 { + return strconv.FormatUint(v, 10) + } + return scaleSI(float64(v)) +} + // The same shape for time, whose magnitudes are sixties and twenty-fours. func scaleTime(d time.Duration) string { switch { diff --git a/ui.go b/ui.go index 076272c..4ae5bfb 100644 --- a/ui.go +++ b/ui.go @@ -303,7 +303,7 @@ func (d *display) errCounts(x, w, y int, e errs) int { n := r.get(e) c := errColor(n) cx, cw, cy := d.chipAt(i, x, w, y, d.countChipH(), c) - ty := d.centerIn(d.gridB, cx, cw, cy+chipPadY, commas(n), c) + ty := d.centerIn(d.gridB, cx, cw, cy+chipPadY, scaleCount(n), c) d.centerIn(d.grid, cx, cw, ty, r.label, c) } return y + d.countsH() @@ -343,8 +343,8 @@ func (d *display) render(v view, elapsed time.Duration, cable string) error { x, w = d.panel(d.sincePanel, v.since) d.stats(d.gridB, x, w, d.sinceYs[0], []statCell{ {scaleTime(elapsed), "elapsed", uiFg}, - {scaleSI(float64(v.rxFrames)), "packets", uiFg}, - {scaleSI(float64(v.rxGot)), "bytes", uiFg}, + {scaleCount(v.rxFrames), "packets", uiFg}, + {scaleCount(v.rxGot), "bytes", uiFg}, {cable, "m", uiFg}, }) d.errCounts(x, w, d.sinceYs[1], v.since)